提交 1eb7e2f8 编写于 作者: L Lee Marlow 提交者: Junio C Hamano

bash completion: Add completion for 'git help'

Rename cached __git_commandlist to __git_porcelain_commandlist and
add __git_all_commandlist that only filters out *--* helpers.

Completions for 'git help' will use the __git_all_commandlist, while
the __git_porcelain_commandlist is used for git command completion.

Users who actually read man pages may want to see help for plumbing
commands.
Signed-off-by: NLee Marlow <lee.marlow@gmail.com>
Acked-by: NShawn O. Pearce <spearce@spearce.org>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 6bb9e51b
......@@ -349,14 +349,32 @@ __git_complete_revlist ()
esac
}
__git_commands ()
__git_all_commands ()
{
if [ -n "$__git_commandlist" ]; then
echo "$__git_commandlist"
if [ -n "$__git_all_commandlist" ]; then
echo "$__git_all_commandlist"
return
fi
local i IFS=" "$'\n'
for i in $(git help -a|egrep '^ ')
do
case $i in
*--*) : helper pattern;;
*) echo $i;;
esac
done
}
__git_all_commandlist=
__git_all_commandlist="$(__git_all_commands 2>/dev/null)"
__git_porcelain_commands ()
{
if [ -n "$__git_porcelain_commandlist" ]; then
echo "$__git_porcelain_commandlist"
return
fi
local i IFS=" "$'\n'
for i in "help" $(__git_all_commands)
do
case $i in
*--*) : helper pattern;;
......@@ -427,8 +445,8 @@ __git_commands ()
esac
done
}
__git_commandlist=
__git_commandlist="$(__git_commands 2>/dev/null)"
__git_porcelain_commandlist=
__git_porcelain_commandlist="$(__git_porcelain_commands 2>/dev/null)"
__git_aliases ()
{
......@@ -778,6 +796,18 @@ _git_gc ()
COMPREPLY=()
}
_git_help ()
{
local cur="${COMP_WORDS[COMP_CWORD]}"
case "$cur" in
--*)
__gitcomp "--all --info --man --web"
return
;;
esac
__gitcomp "$(__git_all_commands)"
}
_git_ls_remote ()
{
__gitcomp "$(__git_remotes)"
......@@ -1410,7 +1440,8 @@ _git ()
case "$i" in
--git-dir=*) __git_dir="${i#--git-dir=}" ;;
--bare) __git_dir="." ;;
--version|--help|-p|--paginate) ;;
--version|-p|--paginate) ;;
--help) command="help"; break ;;
*) command="$i"; break ;;
esac
c=$((++c))
......@@ -1430,7 +1461,7 @@ _git ()
--help
"
;;
*) __gitcomp "$(__git_commands) $(__git_aliases)" ;;
*) __gitcomp "$(__git_porcelain_commands) $(__git_aliases)" ;;
esac
return
fi
......@@ -1455,6 +1486,7 @@ _git ()
fetch) _git_fetch ;;
format-patch) _git_format_patch ;;
gc) _git_gc ;;
help) _git_help ;;
log) _git_log ;;
ls-remote) _git_ls_remote ;;
ls-tree) _git_ls_tree ;;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册