diff options
Diffstat (limited to 'plugins/gitfast/_git')
-rw-r--r-- | plugins/gitfast/_git | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/plugins/gitfast/_git b/plugins/gitfast/_git index 6ca63ed87..aaea581d5 100644 --- a/plugins/gitfast/_git +++ b/plugins/gitfast/_git @@ -27,19 +27,26 @@ zstyle -T ':completion:*:*:git:*' tag-order && \ zstyle -s ":completion:*:*:git:*" script script if [ -z "$script" ]; then local -a locations - local e + local e bash_completion + + bash_completion=$(pkg-config --variable=completionsdir bash-completion 2>/dev/null) || + bash_completion='/usr/share/bash-completion/completions/' + locations=( "$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash "$HOME/.local/share/bash-completion/completions/git" - "$(pkg-config --variable=completionsdir bash-completion)"/git - '/usr/share/bash-completion/completions/git' + "$bash_completion/git" '/etc/bash_completion.d/git' # old debian ) for e in $locations; do test -f $e && script="$e" && break done fi + +local old_complete="$functions[complete]" +functions[complete]=: GIT_SOURCING_ZSH_COMPLETION=y . "$script" +functions[complete]="$old_complete" __gitcomp () { @@ -105,26 +112,26 @@ __gitcomp_nl () compadd -Q -S "${4- }" -p "${2-}" -- ${(f)1} && _ret=0 } -__gitcomp_nl_append () +__gitcomp_file () { emulate -L zsh - compset -P '*[=:]' - compadd -Q -S "${4- }" -p "${2-}" -- ${(f)1} && _ret=0 + compadd -f -p "${2-}" -- ${(f)1} && _ret=0 } -__gitcomp_file_direct () +__gitcomp_direct_append () { - emulate -L zsh - - compadd -f -- ${(f)1} && _ret=0 + __gitcomp_direct "$@" } -__gitcomp_file () +__gitcomp_nl_append () { - emulate -L zsh + __gitcomp_nl "$@" +} - compadd -f -p "${2-}" -- ${(f)1} && _ret=0 +__gitcomp_file_direct () +{ + __gitcomp_file "$1" "" } _git_zsh () |