mirror of
https://github.com/fish-shell/fish-shell
synced 2025-01-27 12:15:08 +00:00
update funced
to use argparse
This commit is contained in:
parent
df65ed8696
commit
6ecd0bcb32
1 changed files with 20 additions and 48 deletions
|
@ -12,49 +12,29 @@ function __funced_md5
|
||||||
end
|
end
|
||||||
|
|
||||||
function funced --description 'Edit function definition'
|
function funced --description 'Edit function definition'
|
||||||
|
set -l options 'h/help' 'e/editor=' 'i/interactive'
|
||||||
|
argparse -n funced --min-args=1 --max-args=1 $options -- $argv
|
||||||
|
or return
|
||||||
|
|
||||||
|
if set -q _flag_help
|
||||||
|
__fish_print_help funced
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
set funcname $argv[1]
|
||||||
|
|
||||||
|
# Check VISUAL first since theoretically EDITOR could be ed.
|
||||||
set -l editor
|
set -l editor
|
||||||
# Check VISUAL first since theoretically EDITOR could be ed
|
if set -q _flag_interactive
|
||||||
if set -q VISUAL
|
set editor fish
|
||||||
|
else if set -q _flag_editor
|
||||||
|
set editor $_flag_editor
|
||||||
|
else if set -q VISUAL
|
||||||
set editor $VISUAL
|
set editor $VISUAL
|
||||||
else if set -q EDITOR
|
else if set -q EDITOR
|
||||||
set editor $EDITOR
|
set editor $EDITOR
|
||||||
end
|
else
|
||||||
set -l interactive
|
set editor fish
|
||||||
set -l funcname
|
|
||||||
while set -q argv[1]
|
|
||||||
switch $argv[1]
|
|
||||||
case -h --help
|
|
||||||
__fish_print_help funced
|
|
||||||
return 0
|
|
||||||
|
|
||||||
case -e --editor
|
|
||||||
set editor $argv[2]
|
|
||||||
set -e argv[2]
|
|
||||||
|
|
||||||
case -i --interactive
|
|
||||||
set interactive 1
|
|
||||||
|
|
||||||
case --
|
|
||||||
set funcname $funcname $argv[2]
|
|
||||||
set -e argv[2]
|
|
||||||
|
|
||||||
case '-*'
|
|
||||||
set_color red
|
|
||||||
printf (_ "%s: Unknown option %s\n") funced $argv[1]
|
|
||||||
set_color normal
|
|
||||||
return 1
|
|
||||||
|
|
||||||
case '*' '.*'
|
|
||||||
set funcname $funcname $argv[1]
|
|
||||||
end
|
|
||||||
set -e argv[1]
|
|
||||||
end
|
|
||||||
|
|
||||||
if test (count $funcname) -ne 1
|
|
||||||
set_color red
|
|
||||||
echo (_ "funced: You must specify one function name")
|
|
||||||
set_color normal
|
|
||||||
return 1
|
|
||||||
end
|
end
|
||||||
|
|
||||||
set -l init
|
set -l init
|
||||||
|
@ -75,15 +55,7 @@ function funced --description 'Edit function definition'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# If no editor is specified, use fish
|
if test "$editor" = fish
|
||||||
if test -z "$editor"
|
|
||||||
set editor fish
|
|
||||||
end
|
|
||||||
|
|
||||||
if begin
|
|
||||||
set -q interactive[1]
|
|
||||||
or test "$editor" = fish
|
|
||||||
end
|
|
||||||
set -l IFS
|
set -l IFS
|
||||||
if functions -q -- $funcname
|
if functions -q -- $funcname
|
||||||
# Shadow IFS here to avoid array splitting in command substitution
|
# Shadow IFS here to avoid array splitting in command substitution
|
||||||
|
|
Loading…
Reference in a new issue