blob: 128cb30517ac2173d94d21bd6efaefd36ed861e3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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
|