mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-27 03:13:37 +08:00
c1140bc436
Use string split instead of cut - which we'd fork for 2*signal count times in a loop when tab was first pressed. Noticably faster If giving a signal num, what works everywhere is -NUM, if giving a signal name, what works everywhere is -s NAME - don't show -sNUM or -NAME completions; that only works on GNU and it's redundant anyhow as we show the signal number in the description field for -s or the signal name for the -NUM case in the pager. Sort -sNAME completions by the signal number not alphabetical Shorten descriptions
24 lines
914 B
Fish
24 lines
914 B
Fish
__fish_make_completion_signals
|
|
|
|
for sig in $__kill_signals[-1..1]
|
|
set number (string split ' ' $sig)[1]
|
|
set name (string split ' ' $sig)[2]
|
|
complete -c kill -o $number -d $name
|
|
complete -c kill -k -s s -x -a "$name\t$number"
|
|
end
|
|
|
|
complete -c kill -xa '(__fish_complete_pids)'
|
|
|
|
if kill -L >/dev/null 2>/dev/null
|
|
complete -c kill -s s -l signal -d "Signal to send"
|
|
complete -c kill -s l -l list -d "List signal names"
|
|
complete -c kill -s L -l table -d "List signal names and their #s"
|
|
complete -c kill -s a -l all -d "Resolve PIDs from other users' too"
|
|
complete -c kill -s p -l pid -d "Show resolved PID, don't send signal"
|
|
complete -c kill -s q -l queue -d "Use sigqueue(2) rather than kill(2)"
|
|
complete -c kill -l verbose -d "Print PIDs and signals sent"
|
|
else # non-GNU
|
|
complete -c kill -s s -d "Signal to send"
|
|
complete -c kill -s l -d "List signal names"
|
|
end
|