119625d8cSopenharmony_ci 219625d8cSopenharmony_ciuse builtin; 319625d8cSopenharmony_ciuse str; 419625d8cSopenharmony_ci 519625d8cSopenharmony_ciset edit:completion:arg-completer[my-app] = {|@words| 619625d8cSopenharmony_ci fn spaces {|n| 719625d8cSopenharmony_ci builtin:repeat $n ' ' | str:join '' 819625d8cSopenharmony_ci } 919625d8cSopenharmony_ci fn cand {|text desc| 1019625d8cSopenharmony_ci edit:complex-candidate $text &display=$text' '(spaces (- 14 (wcswidth $text)))$desc 1119625d8cSopenharmony_ci } 1219625d8cSopenharmony_ci var command = 'my-app' 1319625d8cSopenharmony_ci for word $words[1..-1] { 1419625d8cSopenharmony_ci if (str:has-prefix $word '-') { 1519625d8cSopenharmony_ci break 1619625d8cSopenharmony_ci } 1719625d8cSopenharmony_ci set command = $command';'$word 1819625d8cSopenharmony_ci } 1919625d8cSopenharmony_ci var completions = [ 2019625d8cSopenharmony_ci &'my-app'= { 2119625d8cSopenharmony_ci cand -o 'cmd option' 2219625d8cSopenharmony_ci cand -O 'cmd option' 2319625d8cSopenharmony_ci cand --option 'cmd option' 2419625d8cSopenharmony_ci cand --opt 'cmd option' 2519625d8cSopenharmony_ci cand -f 'cmd flag' 2619625d8cSopenharmony_ci cand -F 'cmd flag' 2719625d8cSopenharmony_ci cand --flag 'cmd flag' 2819625d8cSopenharmony_ci cand --flg 'cmd flag' 2919625d8cSopenharmony_ci cand -h 'Print help' 3019625d8cSopenharmony_ci cand --help 'Print help' 3119625d8cSopenharmony_ci cand -V 'Print version' 3219625d8cSopenharmony_ci cand --version 'Print version' 3319625d8cSopenharmony_ci } 3419625d8cSopenharmony_ci ] 3519625d8cSopenharmony_ci $completions[$command] 3619625d8cSopenharmony_ci} 37