Teach bash how to complete git-format-patch.
Provide completion for currently known long options supported by git-format-patch as well as the revision list specification argument, which is generally either a refname or in the form a..b. Since _git_log was the only code that knew how to complete a..b, but we want to start adding option support to _git_log also refactor the a..b completion logic out into its own function. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
d3d717a4ad
commit
f53352fbaf
@ -144,6 +144,26 @@ __git_complete_file ()
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__git_complete_revlist ()
|
||||||
|
{
|
||||||
|
local pfx cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
case "$cur" in
|
||||||
|
*...*)
|
||||||
|
pfx="${cur%...*}..."
|
||||||
|
cur="${cur#*...}"
|
||||||
|
COMPREPLY=($(compgen -P "$pfx" -W "$(__git_refs)" -- "$cur"))
|
||||||
|
;;
|
||||||
|
*..*)
|
||||||
|
pfx="${cur%..*}.."
|
||||||
|
cur="${cur#*..}"
|
||||||
|
COMPREPLY=($(compgen -P "$pfx" -W "$(__git_refs)" -- "$cur"))
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=($(compgen -W "$(__git_refs)" -- "$cur"))
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
__git_commands ()
|
__git_commands ()
|
||||||
{
|
{
|
||||||
local i IFS=" "$'\n'
|
local i IFS=" "$'\n'
|
||||||
@ -290,6 +310,26 @@ _git_fetch ()
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_git_format_patch ()
|
||||||
|
{
|
||||||
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
case "$cur" in
|
||||||
|
--*)
|
||||||
|
COMPREPLY=($(compgen -W "
|
||||||
|
--stdout --attach --thread
|
||||||
|
--output-directory
|
||||||
|
--numbered --start-number
|
||||||
|
--keep-subject
|
||||||
|
--signoff
|
||||||
|
--in-reply-to=
|
||||||
|
--full-index --binary
|
||||||
|
" -- "$cur"))
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
__git_complete_revlist
|
||||||
|
}
|
||||||
|
|
||||||
_git_ls_remote ()
|
_git_ls_remote ()
|
||||||
{
|
{
|
||||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
@ -303,22 +343,7 @@ _git_ls_tree ()
|
|||||||
|
|
||||||
_git_log ()
|
_git_log ()
|
||||||
{
|
{
|
||||||
local pfx cur="${COMP_WORDS[COMP_CWORD]}"
|
__git_complete_revlist
|
||||||
case "$cur" in
|
|
||||||
*...*)
|
|
||||||
pfx="${cur%...*}..."
|
|
||||||
cur="${cur#*...}"
|
|
||||||
COMPREPLY=($(compgen -P "$pfx" -W "$(__git_refs)" -- "$cur"))
|
|
||||||
;;
|
|
||||||
*..*)
|
|
||||||
pfx="${cur%..*}.."
|
|
||||||
cur="${cur#*..}"
|
|
||||||
COMPREPLY=($(compgen -P "$pfx" -W "$(__git_refs)" -- "$cur"))
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
COMPREPLY=($(compgen -W "$(__git_refs)" -- "$cur"))
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_git_merge ()
|
_git_merge ()
|
||||||
@ -450,6 +475,7 @@ _git ()
|
|||||||
diff) _git_diff ;;
|
diff) _git_diff ;;
|
||||||
diff-tree) _git_diff_tree ;;
|
diff-tree) _git_diff_tree ;;
|
||||||
fetch) _git_fetch ;;
|
fetch) _git_fetch ;;
|
||||||
|
format-patch) _git_format_patch ;;
|
||||||
log) _git_log ;;
|
log) _git_log ;;
|
||||||
ls-remote) _git_ls_remote ;;
|
ls-remote) _git_ls_remote ;;
|
||||||
ls-tree) _git_ls_tree ;;
|
ls-tree) _git_ls_tree ;;
|
||||||
@ -480,6 +506,7 @@ complete -o default -F _git_checkout git-checkout
|
|||||||
complete -o default -o nospace -F _git_diff git-diff
|
complete -o default -o nospace -F _git_diff git-diff
|
||||||
complete -o default -F _git_diff_tree git-diff-tree
|
complete -o default -F _git_diff_tree git-diff-tree
|
||||||
complete -o default -o nospace -F _git_fetch git-fetch
|
complete -o default -o nospace -F _git_fetch git-fetch
|
||||||
|
complete -o default -o nospace -F _git_format_patch git-format-patch
|
||||||
complete -o default -o nospace -F _git_log git-log
|
complete -o default -o nospace -F _git_log git-log
|
||||||
complete -o default -F _git_ls_remote git-ls-remote
|
complete -o default -F _git_ls_remote git-ls-remote
|
||||||
complete -o default -o nospace -F _git_ls_tree git-ls-tree
|
complete -o default -o nospace -F _git_ls_tree git-ls-tree
|
||||||
@ -503,6 +530,7 @@ complete -o default -F _git_branch git-branch.exe
|
|||||||
complete -o default -o nospace -F _git_cat_file git-cat-file.exe
|
complete -o default -o nospace -F _git_cat_file git-cat-file.exe
|
||||||
complete -o default -o nospace -F _git_diff git-diff.exe
|
complete -o default -o nospace -F _git_diff git-diff.exe
|
||||||
complete -o default -o nospace -F _git_diff_tree git-diff-tree.exe
|
complete -o default -o nospace -F _git_diff_tree git-diff-tree.exe
|
||||||
|
complete -o default -o nospace -F _git_format_patch git-format-patch.exe
|
||||||
complete -o default -o nospace -F _git_log git-log.exe
|
complete -o default -o nospace -F _git_log git-log.exe
|
||||||
complete -o default -o nospace -F _git_ls_tree git-ls-tree.exe
|
complete -o default -o nospace -F _git_ls_tree git-ls-tree.exe
|
||||||
complete -o default -F _git_merge_base git-merge-base.exe
|
complete -o default -F _git_merge_base git-merge-base.exe
|
||||||
|
Loading…
Reference in New Issue
Block a user