bash: support more 'git notes' subcommands and their options

The current completion function for 'git notes' only supported the
'edit' and 'show' subcommands and none of their options.  This patch
adds support for all missing subcommands, options, and their arguments
(files or refs), if any.

The code responsible for completing subcommand looks different
compared to the completion functions of other git commands with
subcommands.  This is because of the '--ref <notes-ref>' option which
comes before the subcommand (i.e. git notes --ref <notes-ref> add).

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
SZEDER Gábor 2010-10-10 23:43:33 +02:00 коммит произвёл Junio C Hamano
Родитель 128191f5ee
Коммит 2a5da75579
1 изменённых файлов: 41 добавлений и 9 удалений

Просмотреть файл

@ -1472,18 +1472,50 @@ _git_name_rev ()
_git_notes ()
{
local subcommands="edit show"
if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then
__gitcomp "$subcommands"
return
fi
local subcommands='add append copy edit list prune remove show'
local subcommand="$(__git_find_on_cmdline "$subcommands")"
local cur="${COMP_WORDS[COMP_CWORD]}"
case "${COMP_WORDS[COMP_CWORD-1]}" in
-m|-F)
COMPREPLY=()
case "$subcommand,$cur" in
,--*)
__gitcomp '--ref'
;;
,*)
case "${COMP_WORDS[COMP_CWORD-1]}" in
--ref)
__gitcomp "$(__git_refs)"
;;
*)
__gitcomp "$subcommands --ref"
;;
esac
;;
add,--reuse-message=*|append,--reuse-message=*)
__gitcomp "$(__git_refs)" "" "${cur##--reuse-message=}"
;;
add,--reedit-message=*|append,--reedit-message=*)
__gitcomp "$(__git_refs)" "" "${cur##--reedit-message=}"
;;
add,--*|append,--*)
__gitcomp '--file= --message= --reedit-message=
--reuse-message='
;;
copy,--*)
__gitcomp '--stdin'
;;
prune,--*)
__gitcomp '--dry-run --verbose'
;;
prune,*)
;;
*)
__gitcomp "$(__git_refs)"
case "${COMP_WORDS[COMP_CWORD-1]}" in
-m|-F)
;;
*)
__gitcomp "$(__git_refs)"
;;
esac
;;
esac
}