fish-shell/share/functions/__fish_complete_subcommand.fish
ridiculousfish a5fd0b317e Revert "Switch to bare vars in our math invocations"
This reverts commit bd18736ee5.

Bare variables should only be used in commands that must
manipulate the variable stack, such as `set`.
2017-09-09 23:35:47 -07:00

45 lines
977 B
Fish

function __fish_complete_subcommand -d "Complete subcommand" --no-scope-shadowing
set -l skip_next 1
set -l test
switch "$argv[1]"
case '--fcs-skip=*'
set -l rest
string replace -a = ' ' -- $argv[1] | read test skip_next
set -e argv[1]
end
set -l res ""
set -l had_cmd 0
set -l cmd (commandline -cop) (commandline -ct)
for i in $cmd
if test $skip_next -gt 0
set skip_next (math $skip_next - 1)
continue
end
if test "$had_cmd" = 1
set res "$res $i"
else
if contains -- $i $argv
set skip_next (math $skip_next + 1)
continue
end
switch $i
case '-*'
case '*=*'
case '*'
set had_cmd 1
set res $i
end
end
end
printf "%s\n" (complete -C$res)
end