[PATCH v2 08/29] completion: zsh: fix for command aliasing
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- Oct 25, 2020, 03:13 UTC
- Message-ID
- <20201025031343.346913-9-felipe.contreras@gmail.com>
- In-Reply-To
- <20201025031343.346913-1-felipe.contreras@gmail.com>
A lot of people want to define aliases like gc='git commit', and zsh allows that (when not using 'complete_aliases'), but we need to handle services that call a function other than the main one.
With this patch we can do:
compdef _git gc=git_commit
Additionally, add compatibility for Zsh Git functions which have the form git-commit (with dash, not underscore).
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- contrib/completion/git-completion.zsh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh index ba41525373..17041d0b23 100644 --- a/contrib/completion/git-completion.zsh +++ b/contrib/completion/git-completion.zsh @@ -240,8 +240,12 @@ _git () if (( $+functions[__${service}_zsh_main] )); then __${service}_zsh_main - else + elif (( $+functions[__${service}_main] )); then emulate ksh -c __${service}_main + elif (( $+functions[_${service}] )); then + emulate ksh -c _${service} + elif (( $+functions[_${service//-/_}] )); then + emulate ksh -c _${service//-/_} fi let _ret && _default && _ret=0
-- 2.29.0