[RFC/PATCH] completion: complete pretty format placeholders
From: Stephen Boyd <hidden>
Date: 2016-06-15 22:46:47
Subsystem:
the rest · Maintainer:
Linus Torvalds
---
This seems to work most of the time.
This
git log --pretty=format:%ad:%<TAB>
becomes
git log --pretty=format:%ad:%ad:%
which is wrong.
But in quotes
git log --pretty=format:"%ad:%<TAB>
works.
I'm not sure why.
Also git log --pretty=%<TAB> doesn't work. I'm not sure how to support
that without encountering the same breakage as above.
contrib/completion/git-completion.bash | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index ad26b7c..3819c73 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash@@ -1117,6 +1117,9 @@ __git_log_shortlog_options=" __git_log_pretty_formats="oneline short medium full fuller email raw format:" __git_log_date_formats="relative iso8601 rfc2822 short local default raw" +__git_log_format_placeholders="ad aD ae aE ai an aN ar at b Cblue cd cD ce cE +Cgreen ci cn cN cr Cred Creset ct d e f h H m n p P s t T x +" _git_log () {
@@ -1129,6 +1132,17 @@ _git_log () merge="--merge" fi case "$cur" in + --pretty=format:*%*|--format=format:*%*) + local pfx="${cur%\%*}%" + pfx="${pfx#*:}" + cur="${cur##*%}" + __gitcomp "$__git_log_format_placeholders + " "$pfx" "$cur" + return + ;; + --pretty=format:*|--format=format:*) + return + ;; --pretty=*) __gitcomp "$__git_log_pretty_formats " "" "${cur##--pretty=}"
@@ -1814,6 +1828,17 @@ _git_show () local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in + --pretty=format:*%*|--format=format:*%*) + local pfx="${cur%\%*}%" + pfx="${pfx#*:}" + cur="${cur##*%}" + __gitcomp "$__git_log_format_placeholders + " "$pfx" "$cur" + return + ;; + --pretty=format:*|--format=format:*) + return + ;; --pretty=*) __gitcomp "$__git_log_pretty_formats " "" "${cur##--pretty=}"
--
1.6.3.1.9.g95405b