Commit f38ab8af authored by Ramkumar Ramachandra's avatar Ramkumar Ramachandra Committed by Arnaldo Carvalho de Melo

perf completion: Introduce zsh support

__perfcomp(), __perfcomp_colon(), and _perf() have to be overridden.
Inspired by the way the git.git completion system is structured.
Signed-off-by: default avatarRamkumar Ramachandra <artagnon@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1384704807-15779-5-git-send-email-artagnon@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 37e72c31
# perf completion
# perf bash and zsh completion
# Taken from git.git's completion script.
__my_reassemble_comp_words_by_ref()
......@@ -129,6 +129,67 @@ __perf_main ()
fi
}
if [[ -n ${ZSH_VERSION-} ]]; then
autoload -U +X compinit && compinit
__perfcomp ()
{
emulate -L zsh
local c IFS=$' \t\n'
local -a array
for c in ${=1}; do
case $c in
--*=*|*.) ;;
*) c="$c " ;;
esac
array[${#array[@]}+1]="$c"
done
compset -P '*[=:]'
compadd -Q -S '' -a -- array && _ret=0
}
__perfcomp_colon ()
{
emulate -L zsh
local cur_="${2-$cur}"
local c IFS=$' \t\n'
local -a array
if [[ "$cur_" == *:* ]]; then
local colon_word=${cur_%"${cur_##*:}"}
fi
for c in ${=1}; do
case $c in
--*=*|*.) ;;
*) c="$c " ;;
esac
array[$#array+1]=${c#"$colon_word"}
done
compset -P '*[=:]'
compadd -Q -S '' -a -- array && _ret=0
}
_perf ()
{
local _ret=1 cur cword prev
cur=${words[CURRENT]}
prev=${words[CURRENT-1]}
let cword=CURRENT-1
emulate ksh -c __perf_main
let _ret && _default && _ret=0
return _ret
}
compdef _perf perf
return
fi
type perf &>/dev/null &&
_perf()
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment