mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-25 20:33:08 +00:00
Add __fish_can_complete_switches
& __fish_should_complete_switches
To be used by completions to directly determine whether it is either possible or preferable to complete a switch (instead of a subcommand), (presuming that switches must come before subcommands). * __fish_can_complete_switches: we are in a position where a switch may be placed. * __fish_should_complete_switches: we're in a position to accept a switch and the current token starts with `-` so we have no choice but to do so.
This commit is contained in:
parent
342d0644ac
commit
7db0958804
2 changed files with 26 additions and 0 deletions
14
share/functions/__fish_can_complete_switches.fish
Normal file
14
share/functions/__fish_can_complete_switches.fish
Normal file
|
@ -0,0 +1,14 @@
|
|||
# Returns whether it is at all possible (even if not recommended)
|
||||
# to complete a -s or --long argument.
|
||||
function __fish_can_complete_switches
|
||||
# Search backwards
|
||||
for arg in (commandline -ct)[-1..1]
|
||||
if test "$arg" = ""
|
||||
continue
|
||||
else if not string match -qr -- "^-\S*\$" "$arg"
|
||||
return 1
|
||||
end
|
||||
end
|
||||
|
||||
return 0
|
||||
end
|
12
share/functions/__fish_should_complete_switches.fish
Normal file
12
share/functions/__fish_should_complete_switches.fish
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Returns whether we *should* complete a -s or --long argument.
|
||||
# The preference is NOT to do so, i.e. prefer subcommands over switches.
|
||||
function __fish_should_complete_switches
|
||||
if not __fish_can_complete_switches
|
||||
return 1
|
||||
end
|
||||
if string match -qr -- "^-" (commandline -ct)[-1]
|
||||
return 0
|
||||
end
|
||||
|
||||
return 1
|
||||
end
|
Loading…
Reference in a new issue