1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-09 10:16:08 +02:00

Merge branch 'bk/complete-dirname-for-am-and-format-patch' into seen

Command line completion support (in contrib/) has been
updated for a few commands to complete directory names where a
directory name is expected.

* bk/complete-dirname-for-am-and-format-patch:
  completion: dir-type optargs for am, format-patch
This commit is contained in:
Junio C Hamano 2024-04-26 09:28:35 -07:00
commit e729936f3b

View File

@ -1431,6 +1431,29 @@ __git_count_arguments ()
printf "%d" $c
}
# Complete actual dir (not pathspec), respecting any -C options.
#
# Usage: __git_complete_refs [<option>]...
# --cur=<word>: The current dir to be completed. Defaults to the current word.
__git_complete_dir ()
{
local cur_="$cur"
while test $# != 0; do
case "$1" in
--cur=*) cur_="${1##--cur=}" ;;
*) return 1 ;;
esac
shift
done
# This rev-parse invocation amounts to a pwd which respects -C options
local context_dir=$(__git rev-parse --show-toplevel --show-prefix 2>/dev/null | paste -s -d '/' 2>/dev/null)
[ -d "$context_dir" ] || return 1
COMPREPLY=$(cd "$context_dir" 2>/dev/null && compgen -d -- "$cur_")
}
__git_whitespacelist="nowarn warn error error-all fix"
__git_patchformat="mbox stgit stgit-series hg mboxrd"
__git_showcurrentpatch="diff raw"
@ -1449,6 +1472,10 @@ _git_am ()
__gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
return
;;
--directory=*)
__git_complete_dir --cur="${cur##--directory=}"
return
;;
--patch-format=*)
__gitcomp "$__git_patchformat" "" "${cur##--patch-format=}"
return
@ -1980,7 +2007,17 @@ __git_format_patch_extra_options="
_git_format_patch ()
{
case "$prev,$cur" in
-o,*)
__git_complete_dir
return
;;
esac
case "$cur" in
--output-directory=*)
__git_complete_dir --cur="${cur##--output-directory=}"
return
;;
--thread=*)
__gitcomp "
deep shallow