diff options
Diffstat (limited to 'Completion/Base/_command_names')
-rw-r--r-- | Completion/Base/_command_names | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/Completion/Base/_command_names b/Completion/Base/_command_names index d3b8a109a..844f190a6 100644 --- a/Completion/Base/_command_names +++ b/Completion/Base/_command_names @@ -1,3 +1,31 @@ -#defcomp -command- +#compdef -command- -complist -c +# The option `-e' if given as the first argument says that we should +# complete only external commands and executable files. This and a +# `-' as the first argument is then removed from the arguments. + +local args defs + +defs=( + 'commands:external command:compadd -k commands' + 'executables:executable file or directory:_path_files -/g \*\(-\*\)' +) + +if [[ "$1" = -e ]]; then + shift +else + [[ "$1" = - ]] && shift + + defs=( "$defs[@]" + 'builtins:builtin command:compadd -k builtins' + 'functions:shell function:compadd -k functions' + 'aliases:alias:compadd -k aliases' + 'reserved-words:reserved word:compadd -k reswords' + 'jobs:: _jobs -t' + 'parameters:: _parameters -qS= -r "\n\t\- =["' + ) +fi + +args=( "$@" ) + +_alternative -O args "$defs[@]" |