Browse Source

completion: add GIT_COMPLETION_SHOW_ALL env var

When set to 1, GIT_COMPLETION_SHOW_ALL causes --git-completion-helper-all
to be passed instead of --git-completion-helper.

Signed-off-by: Ryan Zoeller <rtzoeller@rtzoeller.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Ryan Zoeller 4 years ago committed by Junio C Hamano
parent
commit
c099f579b9
  1. 14
      contrib/completion/git-completion.bash

14
contrib/completion/git-completion.bash

@ -39,6 +39,11 @@ @@ -39,6 +39,11 @@
# When set to "1", do not include "DWIM" suggestions in git-checkout
# and git-switch completion (e.g., completing "foo" when "origin/foo"
# exists).
#
# GIT_COMPLETION_SHOW_ALL
#
# When set to "1" suggest all options, including options which are
# typically hidden (e.g. '--allow-empty' for 'git commit').

case "$COMP_WORDBREAKS" in
*:*) : great ;;
@ -411,10 +416,17 @@ __gitcomp_builtin () @@ -411,10 +416,17 @@ __gitcomp_builtin ()
local options
eval "options=\${$var-}"

local completion_helper
if [ "$GIT_COMPLETION_SHOW_ALL" = "1" ]; then
completion_helper="--git-completion-helper-all"
else
completion_helper="--git-completion-helper"
fi

if [ -z "$options" ]; then
# leading and trailing spaces are significant to make
# option removal work correctly.
options=" $incl $(__git ${cmd/_/ } --git-completion-helper) " || return
options=" $incl $(__git ${cmd/_/ } $completion_helper) " || return

for i in $excl; do
options="${options/ $i / }"

Loading…
Cancel
Save