Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: PATCH: zstyle to control completion of functions/parameters beginning with underscore
- X-seq: zsh-workers 28846
- From: Greg Klanderman <gak@xxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: Re: PATCH: zstyle to control completion of functions/parameters beginning with underscore
- Date: Thu, 03 Mar 2011 11:11:13 -0500
- In-reply-to: <m339n4uskj.fsf@klanderman.net> (Greg Klanderman's message of "Thu, 03 Mar 2011 10:33:48 -0500")
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <1238890030-4683-1-git-send-email-ft@bewatermyfriend.org> <090404193718.ZM19801@torch.brasslantern.com> <20090405191304.1908fca8@pws-pc> <090405151115.ZM13159@torch.brasslantern.com> <20090406100929.505617e2@news01> <2d460de70905270930j681da6a5kf7848d67d89f0c69@mail.gmail.com> <20090527175941.3bbe2eba@news01> <m37i02cqd9.fsf@klanderman.net> <2d460de70905280148iebfcegcb4143c33e510efd@mail.gmail.com> <m3ei6qvalg.fsf_-_@klanderman.net> <7658.1299027908@thecus> <m38vwxuzml.fsf@klanderman.net> <110302153027.ZM10605@torch.brasslantern.com> <m339n4uskj.fsf@klanderman.net>
- Reply-to: gak@xxxxxxxxxxxxxx
Here's a new patch for the easier option (without 'auto').
Let me know what you think..
cheers,
Greg
Index: Completion/Zsh/Type/_functions
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Zsh/Type/_functions,v
retrieving revision 1.3
diff -u -r1.3 _functions
--- Completion/Zsh/Type/_functions 8 Jun 2005 12:45:36 -0000 1.3
+++ Completion/Zsh/Type/_functions 3 Mar 2011 16:08:17 -0000
@@ -1,5 +1,9 @@
#compdef unfunction
-local expl
+local expl ffilt
-_wanted functions expl 'shell function' compadd -k "$@" - functions
+zstyle -t ":completion:${curcontext}:functions" prefix-needed && \
+ [[ $PREFIX != [_.]* ]] && \
+ ffilt='[(I)[^_.]*]'
+
+_wanted functions expl 'shell function' compadd -k "$@" - "functions$ffilt"
Index: Completion/Zsh/Type/_command_names
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Zsh/Type/_command_names,v
retrieving revision 1.9
diff -u -r1.9 _command_names
--- Completion/Zsh/Type/_command_names 19 Aug 2007 23:31:31 -0000 1.9
+++ Completion/Zsh/Type/_command_names 3 Mar 2011 16:08:17 -0000
@@ -4,10 +4,14 @@
# complete only external commands and executable files. This and a
# `-' as the first argument is then removed from the arguments.
-local args defs
+local args defs ffilt
zstyle -t ":completion:${curcontext}:commands" rehash && rehash
+zstyle -t ":completion:${curcontext}:functions" prefix-needed && \
+ [[ $PREFIX != [_.]* ]] && \
+ ffilt='[(I)[^_.]*]'
+
defs=(
'commands:external command:_path_commands'
)
@@ -24,7 +28,7 @@
defs=( "$defs[@]"
'builtins:builtin command:compadd -k builtins'
- 'functions:shell function:compadd -k functions'
+ "functions:shell function:compadd -k functions$ffilt"
'aliases:alias:compadd -k aliases'
'suffix-aliases:suffix alias:_suffix_alias_files'
'reserved-words:reserved word:compadd -k reswords'
Index: Completion/Zsh/Type/_parameters
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Zsh/Type/_parameters,v
retrieving revision 1.1
diff -u -r1.1 _parameters
--- Completion/Zsh/Type/_parameters 2 Apr 2001 11:20:15 -0000 1.1
+++ Completion/Zsh/Type/_parameters 3 Mar 2011 16:08:17 -0000
@@ -6,7 +6,7 @@
# If you specify a -g option with a pattern, the pattern will be used to
# restrict the type of parameters matched.
-local expl pattern fakes faked tmp
+local expl pattern fakes faked tmp pfilt
pattern=(-g \*)
zparseopts -D -K -E g:=pattern
@@ -23,8 +23,12 @@
done
fi
+zstyle -t ":completion:${curcontext}:parameters" prefix-needed && \
+ [[ $PREFIX != [_.]* ]] && \
+ pfilt='[^_.]'
+
_wanted parameters expl parameter \
compadd "$@" -Q - \
- "${(@k)parameters[(R)${pattern[2]}~*local*]}" \
+ "${(@M)${(@k)parameters[(R)${pattern[2]}~*local*]}:#${~pfilt}*}" \
"$fakes[@]" \
"${(@)${(@M)faked:#${~pattern[2]}}%%:*}"
Index: Doc/Zsh/compsys.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/compsys.yo,v
retrieving revision 1.232
diff -u -r1.232 compsys.yo
--- Doc/Zsh/compsys.yo 17 Dec 2010 17:10:48 -0000 1.232
+++ Doc/Zsh/compsys.yo 3 Mar 2011 16:08:17 -0000
@@ -2298,13 +2298,29 @@
)
kindex(prefix-needed, completion style)
item(tt(prefix-needed))(
-This, too, is used for matches with a common prefix. If it is set to
-`true' this common prefix must be typed by the user to generate the
-matches. In the case of command options, this means that the initial
-`tt(-)', `tt(+)', or `tt(-)tt(-)' must be typed explicitly before option
-names will be completed.
+This style is also relevant for matches with a common prefix. If it is
+set to `true' this common prefix must be typed by the user to generate
+the matches.
-The default value for this style is `true'.
+The style is applicable to the tt(options), tt(signals), tt(jobs),
+tt(functions), and tt(parameters) completion tags.
+
+For command options, this means that the initial `tt(-)', `tt(+)', or
+`tt(-)tt(-)' must be typed explicitly before option names will be
+completed.
+
+For signals, an initial `tt(-)' is required before signal names will
+be completed.
+
+For jobs, an initial `tt(%)' is required before job names will be
+completed.
+
+For function and parameter names, an initial `tt(_)' or `tt(.)' is
+required before function or parameter names starting with those
+characters will be completed.
+
+The default value for this style is `false' for tt(function) and
+tt(parameter) completions, and `true' otherwise.
)
kindex(preserve-prefix, completion style)
item(tt(preserve-prefix))(
Messages sorted by:
Reverse Date,
Date,
Thread,
Author