[02/11] completion: complete more values of more 'color.*' configuration variables
diff mbox series

Message ID 20190813122652.16468-3-szeder.dev@gmail.com
State New
Headers show
  • completion: complete configuration variables and values after 'git -c <TAB>'
Related show

Commit Message

SZEDER Gábor Aug. 13, 2019, 12:26 p.m. UTC
Most 'color.*' configuration variables, with the sole exception of
'color.pager', accept the same set of values, but our completion
script recognizes only about half of them.  We could explicitly add
all those missing variables, but let's try to reduce future
maintenance burden, and use the catch-all 'color.*' pattern instead,
so this list won't get out of sync when a similar new configuration
variable accepting the same values is introduced [1].

Furthermore, their documentation explicitly mentions that they all
accept the standard boolean values 'false' and 'true' as well, so list
these, too, among the possible values.

[1] OTOH, there will be a maintenance burden if ever a new
    'color.something' is introduced which doesn't accept the same set
    of values.  We'll see which one happens first...

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>

    I find the documentation of these configuration variables confusing.
    A so-called "boolean" (quoting the docs), that besides 'false' and
    'true' (and their standard 0,no,1,yes and non-standard 'never'/'auto'
    synonyms) can have a third possible value 'always', too, is, well, not
    a boolean.

 contrib/completion/git-completion.bash | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff mbox series

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index cd9d8e1940..c59347daee 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2277,11 +2277,6 @@  _git_config ()
 		__gitcomp "$__git_merge_strategies"
-	color.branch|color.diff|color.interactive|\
-	color.showbranch|color.status|color.ui)
-		__gitcomp "always never auto"
-		return
-		;;
 		__gitcomp "false true"
@@ -2293,6 +2288,10 @@  _git_config ()
+	color.*)
+		__gitcomp "false true always never auto"
+		return
+		;;
 		__gitcomp "$__git_diff_submodule_formats"