From: Felipe Contreras Date: Tue, 30 Aug 2022 09:31:08 GMT Subject: [PATCH 21/51] completion: zsh: add support for general -C opts Message-ID: <20220830093138.1581538-22-felipe.contreras@gmail.com> In-Reply-To: <20220830093138.1581538-1-felipe.contreras@gmail.com> Signed-off-by: Felipe Contreras --- contrib/completion/git-completion.zsh | 6 ++++++ t/t9904-zsh-completion.sh | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh index 0e72b9add7..e771a2a53a 100644 --- a/contrib/completion/git-completion.zsh +++ b/contrib/completion/git-completion.zsh @@ -211,6 +211,7 @@ __git_zsh_main () { local curcontext="$curcontext" state state_descr line typeset -A opt_args + local -a __git_C_args _arguments -C \ '(-p --paginate --no-pager)'{-p,--paginate}'[pipe all output into ''less'']' \ @@ -226,6 +227,7 @@ __git_zsh_main () '--namespace=[set the git namespace]:' \ '--no-replace-objects[do not use replacement refs to replace git objects]' \ '(- :)--help[prints the synopsis and a list of the most commonly used commands]: :->arg' \ + '*-C[run as if git was started in the given path]: :_directories' \ '(-): :->command' \ '(-)*:: :->arg' && return @@ -248,6 +250,10 @@ __git_zsh_main () __git_dir=${~opt_args[--git-dir]} fi + for x in ${(s.:.)opt_args[-C]}; do + __git_C_args+=('-C' ${~x}) + done + (( $+opt_args[--help] )) && command='help' words=( git ${words[@]} ) diff --git a/t/t9904-zsh-completion.sh b/t/t9904-zsh-completion.sh index dbd0671ab6..cd223b6e2a 100755 --- a/t/t9904-zsh-completion.sh +++ b/t/t9904-zsh-completion.sh @@ -844,7 +844,7 @@ test_expect_success 'checkout completes ref names' ' EOF ' -test_expect_failure 'git -C checkout uses the right repo' ' +test_expect_success 'git -C checkout uses the right repo' ' test_completion "git -C subdir -C subsubdir -C .. -C ../otherrepo checkout b" <<-\EOF branch-in-other Z EOF -- 2.37.2.351.g9bf691b78c.dirty