mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-24 19:52:58 -08:00
38 lines
1.2 KiB
Bash
38 lines
1.2 KiB
Bash
# bash shell function completion -*- shell-script -*-
|
|
|
|
_function()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
if [[ $1 == @(declare|typeset) ]]; then
|
|
if [[ $cur == [-+]* ]]; then
|
|
local opts
|
|
opts=($(_parse_usage "$1"))
|
|
# Most options also have a '+' form. We'll exclude the ones that don't with compgen.
|
|
opts+=(${opts[*]/-/+})
|
|
COMPREPLY=($(compgen -W "${opts[*]}" -X '+[Ffgp]' -- "$cur"))
|
|
else
|
|
local i=1
|
|
while [[ ${words[i]} == [-+]* ]]; do
|
|
if [[ ${words[i]} == -*[fF]* ]]; then
|
|
COMPREPLY=($(compgen -A function -- "$cur"))
|
|
return
|
|
fi
|
|
((i++))
|
|
done
|
|
if ((i > 1)); then
|
|
# There was at least one option and it was not one that limited operations to functions
|
|
COMPREPLY=($(compgen -A variable -- "$cur"))
|
|
fi
|
|
fi
|
|
elif ((cword == 1)); then
|
|
COMPREPLY=($(compgen -A function -- "$cur"))
|
|
else
|
|
COMPREPLY=("() $(type -- ${words[1]} | command sed -e 1,2d)")
|
|
fi
|
|
} &&
|
|
complete -F _function function declare typeset
|
|
|
|
# ex: filetype=sh
|