Browse Source

Merge branch 'au/complete-restore-s'

The command line completion (in contrib/) learned that "git restore
-s <TAB>" is often followed by a refname.

* au/complete-restore-s:
  completion: complete refs after 'git restore -s'
  completion: use "prev" variable instead of introducing "prevword"
maint
Junio C Hamano 4 years ago
parent
commit
741f1f8131
  1. 73
      contrib/completion/git-completion.bash

73
contrib/completion/git-completion.bash

@ -1508,6 +1508,22 @@ _git_checkout ()
{ {
__git_has_doubledash && return __git_has_doubledash && return


local dwim_opt="$(__git_checkout_default_dwim_mode)"

case "$prev" in
-b|-B|--orphan)
# Complete local branches (and DWIM branch
# remote branch names) for an option argument
# specifying a new branch name. This is for
# convenience, assuming new branches are
# possibly based on pre-existing branch names.
__git_complete_refs $dwim_opt --mode="heads"
return
;;
*)
;;
esac

case "$cur" in case "$cur" in
--conflict=*) --conflict=*)
__gitcomp "diff3 merge" "" "${cur##--conflict=}" __gitcomp "diff3 merge" "" "${cur##--conflict=}"
@ -1516,23 +1532,6 @@ _git_checkout ()
__gitcomp_builtin checkout __gitcomp_builtin checkout
;; ;;
*) *)
local dwim_opt="$(__git_checkout_default_dwim_mode)"
local prevword prevword="${words[cword-1]}"

case "$prevword" in
-b|-B|--orphan)
# Complete local branches (and DWIM branch
# remote branch names) for an option argument
# specifying a new branch name. This is for
# convenience, assuming new branches are
# possibly based on pre-existing branch names.
__git_complete_refs $dwim_opt --mode="heads"
return
;;
*)
;;
esac

# At this point, we've already handled special completion for # At this point, we've already handled special completion for
# the arguments to -b/-B, and --orphan. There are 3 main # the arguments to -b/-B, and --orphan. There are 3 main
# things left we can possibly complete: # things left we can possibly complete:
@ -2392,6 +2391,22 @@ _git_status ()


_git_switch () _git_switch ()
{ {
local dwim_opt="$(__git_checkout_default_dwim_mode)"

case "$prev" in
-c|-C|--orphan)
# Complete local branches (and DWIM branch
# remote branch names) for an option argument
# specifying a new branch name. This is for
# convenience, assuming new branches are
# possibly based on pre-existing branch names.
__git_complete_refs $dwim_opt --mode="heads"
return
;;
*)
;;
esac

case "$cur" in case "$cur" in
--conflict=*) --conflict=*)
__gitcomp "diff3 merge" "" "${cur##--conflict=}" __gitcomp "diff3 merge" "" "${cur##--conflict=}"
@ -2400,23 +2415,6 @@ _git_switch ()
__gitcomp_builtin switch __gitcomp_builtin switch
;; ;;
*) *)
local dwim_opt="$(__git_checkout_default_dwim_mode)"
local prevword prevword="${words[cword-1]}"

case "$prevword" in
-c|-C|--orphan)
# Complete local branches (and DWIM branch
# remote branch names) for an option argument
# specifying a new branch name. This is for
# convenience, assuming new branches are
# possibly based on pre-existing branch names.
__git_complete_refs $dwim_opt --mode="heads"
return
;;
*)
;;
esac

# Unlike in git checkout, git switch --orphan does not take # Unlike in git checkout, git switch --orphan does not take
# a start point. Thus we really have nothing to complete after # a start point. Thus we really have nothing to complete after
# the branch name. # the branch name.
@ -2843,6 +2841,13 @@ _git_reset ()


_git_restore () _git_restore ()
{ {
case "$prev" in
-s)
__git_complete_refs
return
;;
esac

case "$cur" in case "$cur" in
--conflict=*) --conflict=*)
__gitcomp "diff3 merge" "" "${cur##--conflict=}" __gitcomp "diff3 merge" "" "${cur##--conflict=}"

Loading…
Cancel
Save