mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-25 12:23:09 +00:00
New helper functions __fish_is_first_arg
and __fish_prev_arg_in
For usage in completion scripts. Unlike `__fish_is_first_token` (which is probably not correctly named), `__fish_is_first_arg` returns true regardless of whether existing tokens start with `-` or not, to be used when an arg cannot be used with any other argument. `__fish_prev_arg_in` is similar to `__fish_seen_...` but it explicitly tests the preceding token only, for arguments that take only a single parameter.
This commit is contained in:
parent
d652b9b606
commit
6dc74d3b6c
2 changed files with 21 additions and 0 deletions
5
share/functions/__fish_is_first_arg.fish
Normal file
5
share/functions/__fish_is_first_arg.fish
Normal file
|
@ -0,0 +1,5 @@
|
|||
# determine if this is the very first argument (regardless if switch or not)
|
||||
function __fish_is_first_arg
|
||||
set -l tokens (commandline -co)
|
||||
test (count $tokens) -eq 1
|
||||
end
|
16
share/functions/__fish_prev_arg_in.fish
Normal file
16
share/functions/__fish_prev_arg_in.fish
Normal file
|
@ -0,0 +1,16 @@
|
|||
# returns 0 only if previous argument is one of the supplied arguments
|
||||
function __fish_prev_arg_in
|
||||
set -l tokens (commandline -co)
|
||||
set -l tokenCount (count $tokens)
|
||||
if test $tokenCount -lt 2
|
||||
# need at least cmd and prev argument
|
||||
return 1
|
||||
end
|
||||
for arg in $argv
|
||||
if string match -q -- $tokens[-1] $arg
|
||||
return 0
|
||||
end
|
||||
end
|
||||
|
||||
return 1
|
||||
end
|
Loading…
Reference in a new issue