diff --git a/clean_files.txt b/clean_files.txt index de0f6c1e..ab127dfb 100644 --- a/clean_files.txt +++ b/clean_files.txt @@ -48,6 +48,7 @@ completion/available/docker.completion.bash completion/available/dotnet.completion.bash completion/available/gcloud.completion.bash completion/available/gem.completion.bash +completion/available/getopt.completion.bash completion/available/git.completion.bash completion/available/github-cli.completion.bash completion/available/go.completion.bash diff --git a/completion/available/getopt.completion.bash b/completion/available/getopt.completion.bash new file mode 100644 index 00000000..5f3554ad --- /dev/null +++ b/completion/available/getopt.completion.bash @@ -0,0 +1,35 @@ +# shellcheck shell=bash + +function _getopt() { + local IFS=$'\n' + local cur=${COMP_WORDS[COMP_CWORD]} + local prev=${COMP_WORDS[COMP_CWORD-1]:-} + + local OPTIONS=('-a' '--alternative' + '-h' '--help' + '-l' '--longoptions' + '-n' '--name' + '-o' '--options' + '-q' '--quiet' + '-Q' '--quiet-output' + '-s' '--shell' + '-T' '--test' + '-u' '--unquoted' + '-V' '--version') + + local SHELL_ARGS=('sh' 'bash' 'csh' 'tcsh') + + case $prev in + -s | --shell) + COMPREPLY=("${SHELL_ARGS[@]}") + ;; + -n | --name) + read -d '' -ra COMPREPLY < <(compgen -A function -- "$cur") + ;; + *) + COMPREPLY=("${OPTIONS[@]}") + ;; + esac +} + +complete -F _getopt -X '!&*' getopt