From b2048275358b4a73c987b5a4e9370dd82f11d609 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Tue, 21 Sep 1999 01:42:21 +0000 Subject: zsh-workers/7953 --- Completion/Commands/_expand_word | 3 +++ Completion/Core/_expand | 8 ++++++++ Doc/Zsh/compsys.yo | 14 +++++++++++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Completion/Commands/_expand_word b/Completion/Commands/_expand_word index 570f06987..d8f5f42f8 100644 --- a/Completion/Commands/_expand_word +++ b/Completion/Commands/_expand_word @@ -10,12 +10,14 @@ local oeg="$compconfig[expand_glob]" local oem="$compconfig[expand_menu]" local oeo="$compconfig[expand_original]" local oep="$compconfig[expand_prompt]" +local oec="$compconfig[expand_completions]" compconfig[expand_substitute]="${compconfig[expandword_substitute]}" compconfig[expand_glob]="${compconfig[expandword_glob]-$oeg}" compconfig[expand_menu]="${compconfig[expandword_menu]-$oem}" compconfig[expand_original]="${compconfig[expandword_original]-$oeo}" compconfig[expand_prompt]="${compconfig[expandword_prompt]-$oep}" +compconfig[expand_completions]="${compconfig[expandword_completions]-$oec}" _main_complete _expand @@ -24,3 +26,4 @@ compconfig[expand_glob]="$oeg" compconfig[expand_menu]="$oem" compconfig[expand_original]="$oeo" compconfig[expand_prompt]="$oep" +compconfig[expand_completions]="$oec" diff --git a/Completion/Core/_expand b/Completion/Core/_expand index 0b8083845..5018a6871 100644 --- a/Completion/Core/_expand +++ b/Completion/Core/_expand @@ -58,6 +58,14 @@ local exp word="$PREFIX$SUFFIX" group=-V expl expl2 disp +# First, see if we should insert all *completions*. + +if [[ -n "$compconfig[expand_completions]" && + "${(e):-\$[$compconfig[expand_substitute]]}" -eq 1 ]]; then + compstate[insert]=all + return 1 +fi + # Do this only for the first global matcher. [[ "$compstate[matcher]" -le 1 ]] || return 1 diff --git a/Doc/Zsh/compsys.yo b/Doc/Zsh/compsys.yo index 4b4716a48..36c148404 100644 --- a/Doc/Zsh/compsys.yo +++ b/Doc/Zsh/compsys.yo @@ -479,6 +479,10 @@ tt(expand_menu), tt(expand_original), and tt(expand_prompt), see ifzman(the section `Completion System Configuration' below)\ ifnzman(noderef(Completion System Configuration)). +In a different mode selected by the tt(expand_completions) +configuration key, all em(completions) generated for the string on the +line are inserted. + None of these configuration keys has a default value. ) item(tt(_list))( @@ -1323,8 +1327,16 @@ tt(compadd) and thus may contain the control sequences `tt(%n)', `tt(%B)', etc. Also, the sequence `tt(%o)' in this string will be replaced by the original string. ) +item(tt(expand_completions))( +If this is set and non-empty, its value will be evaluated in the same +way as tt(expand_substitute) and if the result is `tt(1)', no +expansions will be generated, but instead the completions will be +generated as normal and all of them will be inserted in the command +line. +) item(tt(expandword_substitute), tt(expandword_glob), -tt(expandword_menu),tt(expandword_original), tt(expandword_prompt))( +tt(expandword_menu), tt(expandword_original), tt(expandword_prompt), +tt(expandword_completions))( If these keys are set, they are used by the tt(_expand_word) bindable command to override the values for the configuration keys with the tt(expand_) prefix. -- cgit 1.4.1