mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-21 00:01:26 +01:00
Jörg Sommer: 25819: improve module parameter completion.
First, do not embedd the = in the parameter by define it a parameter‐value separator; -S =. Second, look for already given parameters in all words; -w. Third, use the curcontext variable; -C. Forth, distinct between boolean and non‐boolean parameters, i.e. do not append a = to the end. And include the type of the parameter in the help message. This information is only given in the full output of modinfo, not in the narrowed output with --field.
This commit is contained in:
parent
8538c98ddf
commit
e6e5d2eb1d
2 changed files with 13 additions and 3 deletions
|
@ -1,5 +1,8 @@
|
|||
2008-10-07 Clint Adams <clint@zsh.org>
|
||||
|
||||
* Jörg Sommer: 25819: Completion/Linux/Command/_modutils: improve
|
||||
module parameter completion.
|
||||
|
||||
* Jörg Sommer: 25822: Completion/Linux/Command/_modutils: declare
|
||||
val_args as local array.
|
||||
|
||||
|
|
|
@ -95,10 +95,17 @@ case "$state" in
|
|||
if compset -P '*='; then
|
||||
_message -e value 'parameter value'
|
||||
else
|
||||
typeset -A val_args
|
||||
local params
|
||||
params=( ${${(M)${(f)"$(_call_program module_parameter modinfo "$words[2]" 2>/dev/null)"}:#parm:*}##parm:[[:space:]]##} )
|
||||
if [[ $#params -eq 0 ]]; then
|
||||
_message -e parameter "This modules doesn't have parameters"
|
||||
else
|
||||
typeset -A val_args
|
||||
|
||||
_values 'module parameter' \
|
||||
${(f)^"$(_call_program module_parameter modinfo -F parm "$words[2]" 2>/dev/null)"//:/\=[}\] && ret=0
|
||||
_values -S = -C -w 'module parameter' \
|
||||
${${${(M)params:#*(:bool|\(bool\))}/:/[}/(bool| \(bool\))/]} \
|
||||
${^${params:#*(:bool|\(bool\))}/:/[}"]:auto added argument: " && ret=0
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
|
Loading…
Reference in a new issue