forked from git/git
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* fc/zsh-completion: completion: start moving to the new zsh completion completion: add new zsh completion
- Loading branch information
Showing
2 changed files
with
139 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
#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 |