diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 01:03:18 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 01:03:18 +0000 |
commit | f2621414ee5f2f601424c22f00e207903e3b6104 (patch) | |
tree | 56a856dafd1ca684bb23263cacaa723ee4f404fc /completions/declare | |
parent | Adding debian version 1:2.11-8. (diff) | |
download | bash-completion-f2621414ee5f2f601424c22f00e207903e3b6104.tar.xz bash-completion-f2621414ee5f2f601424c22f00e207903e3b6104.zip |
Merging upstream version 1:2.12.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'completions/declare')
-rw-r--r-- | completions/declare | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/completions/declare b/completions/declare new file mode 100644 index 0000000..128cb30 --- /dev/null +++ b/completions/declare @@ -0,0 +1,41 @@ +# bash declare completion -*- shell-script -*- + +_comp_cmd_declare() +{ + local cur prev words cword comp_args + _comp_initialize -n := -- "$@" || return + + if [[ $cur == [-+]* ]]; then + local opts + _comp_compgen -Rv opts usage -c help -s "$1" + # Most options also have a '+' form. + # We'll exclude the ones that don't with compgen. + opts+=("${opts[@]/-/+}") + _comp_compgen -- -W "${opts[*]}" -X '+[Ffgp]' + return + fi + + local i=1 + while [[ ${words[i]} == [-+]* ]]; do + case ${words[i]} in + -*[aA]*) + _comp_compgen -- -A arrayvar + return + ;; + -*[fF]*) + _comp_compgen -- -A function + return + ;; + esac + ((i++)) + done + if ((i > 1)); then + # There was at least one option and it was not one that limited + # operations to functions and array variables + _comp_variable_assignments "$cur" && return + _comp_compgen -- -A variable + fi +} && + complete -F _comp_cmd_declare declare typeset + +# ex: filetype=sh |