2012-06-15 17:30:10 -07:00
function __fish_complete_pgrep -d 'Complete pgrep/pkill' --argument-names cmd
2018-10-25 12:08:54 +02:00
# Some implementations only track the first X characters of a process name
# (with linux having the lowest X = 15).
# Just cut at 15 for all, and put the rest in the description.
complete -c $cmd -xa '(__fish_complete_proc | string replace -r "(.{15})(.+)" "\$1\\t\$2")'
2013-04-01 10:49:02 -07:00
complete -c $cmd -s f -d 'Match pattern against full command line'
2012-06-15 17:30:10 -07:00
complete -c $cmd -s g -d 'Only match processes in the process group' -xa '(__fish_complete_list , __fish_complete_groups)'
2016-11-27 21:27:22 -08:00
complete -c $cmd -s G -d " Only match processes whose real group ID is listed. Group 0 is translated into $cmd \'s own process group " -xa '(__fish_complete_list , __fish_complete_groups)'
2013-04-01 10:49:02 -07:00
complete -c $cmd -s n -d 'Select only the newest process'
complete -c $cmd -s o -d 'Select only the oldest process'
2012-06-15 17:30:10 -07:00
complete -c $cmd -s P -d 'Only match processes whose parent process ID is listed' -xa '(__fish_complete_list , __fish_complete_pids)'
complete -c $cmd -s s -d " Only match processes whose process session ID is listed. Session ID 0 is translated into $cmd \'s own session ID. "
complete -c $cmd -s t -d 'Only match processes whose controlling terminal is listed. The terminal name should be specified without the "/dev/" prefix' -r
complete -c $cmd -s u -d 'Only match processes whose effective user ID is listed' -xa '(__fish_complete_list , __fish_complete_users)'
2016-11-27 21:27:22 -08:00
complete -c $cmd -s U -d 'Only match processes whose real user ID is listed' -xa '(__fish_complete_list , __fish_complete_users)'
2012-06-15 17:30:10 -07:00
complete -c $cmd -s v -d 'Negates the matching'
complete -c $cmd -s x -d ' Only match processes whose name (or command line if -f is specified) exactly match the pattern'
end