You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.4 KiB
78 lines
1.4 KiB
#compdef git gitk |
|
|
|
# zsh completion wrapper for git |
|
# |
|
# You need git's bash completion script installed somewhere, by default on the |
|
# same directory as this script. |
|
# |
|
# If your script is on ~/.git-completion.sh instead, you can configure it on |
|
# your ~/.zshrc: |
|
# |
|
# zstyle ':completion:*:*:git:*' script ~/.git-completion.sh |
|
# |
|
# The recommended way to install this script is to copy to |
|
# '~/.zsh/completion/_git', and then add the following to your ~/.zshrc file: |
|
# |
|
# fpath=(~/.zsh/completion $fpath) |
|
|
|
complete () |
|
{ |
|
# do nothing |
|
return 0 |
|
} |
|
|
|
zstyle -s ":completion:*:*:git:*" script script |
|
test -z "$script" && script="$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash |
|
ZSH_VERSION='' . "$script" |
|
|
|
__gitcomp () |
|
{ |
|
emulate -L zsh |
|
|
|
local cur_="${3-$cur}" |
|
|
|
case "$cur_" in |
|
--*=) |
|
;; |
|
*) |
|
local c IFS=$' \t\n' |
|
local -a array |
|
for c in ${=1}; do |
|
c="$c${4-}" |
|
case $c in |
|
--*=*|*.) ;; |
|
*) c="$c " ;; |
|
esac |
|
array+=("$c") |
|
done |
|
compset -P '*[=:]' |
|
compadd -Q -S '' -p "${2-}" -a -- array && _ret=0 |
|
;; |
|
esac |
|
} |
|
|
|
__gitcomp_nl () |
|
{ |
|
emulate -L zsh |
|
|
|
local IFS=$'\n' |
|
compset -P '*[=:]' |
|
compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0 |
|
} |
|
|
|
_git () |
|
{ |
|
local _ret=1 |
|
() { |
|
emulate -L ksh |
|
local cur cword prev |
|
cur=${words[CURRENT-1]} |
|
prev=${words[CURRENT-2]} |
|
let cword=CURRENT-1 |
|
__${service}_main |
|
} |
|
let _ret && _default -S '' && _ret=0 |
|
return _ret |
|
} |
|
|
|
_git
|
|
|