diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-06-25 12:23:27 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-06-25 12:23:27 -0700 |
commit | af6ba0eb9e7d39df135e818fc98629dec473306c (patch) | |
tree | 4ceb9b813db2d4878b7904b2312936384e14e81d /contrib | |
parent | 2a20f4b7e298891c9f02eb924ec9ddf4c35ae8ce (diff) | |
parent | 56f24e80f0af4dd3591c8f143183b59cf9a34620 (diff) | |
download | git-af6ba0eb9e7d39df135e818fc98629dec473306c.tar.gz git-af6ba0eb9e7d39df135e818fc98629dec473306c.tar.xz |
Merge branch 'sp/complete-ext-alias'
* sp/complete-ext-alias:
completion: handle '!f() { ... }; f' and "!sh -c '...' -" aliases
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/completion/git-completion.bash | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 019026efc..7a6e1d797 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -21,6 +21,12 @@ # source ~/.git-completion.sh # 3) Consider changing your PS1 to also show the current branch, # see git-prompt.sh for details. +# +# If you use complex aliases of form '!f() { ... }; f', you can use the null +# command ':' as the first command in the function body to declare the desired +# completion style. For example '!f() { : git commit ; ... }; f' will +# tell the completion to use commit completion. This also works with aliases +# of form "!sh -c '...'". For example, "!sh -c ': git commit ; ... '". case "$COMP_WORDBREAKS" in *:*) : great ;; @@ -781,6 +787,10 @@ __git_aliased_command () -*) : option ;; *=*) : setting env ;; git) : git itself ;; + \(\)) : skip parens of shell function definition ;; + {) : skip start of shell helper function ;; + :) : skip null command ;; + \'*) : skip opening quote after sh -c ;; *) echo "$word" return |