Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: Re: Proposed _history completer
- X-seq: zsh-workers 10979
- From: Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx
- Subject: PATCH: Re: Proposed _history completer
- Date: Thu, 27 Apr 2000 16:14:29 +0200 (MET DST)
- In-reply-to: Felix Rosencrantz's message of Wed, 26 Apr 2000 23:50:04 -0700 (PDT)
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
Felix Rosencrantz wrote:
> I'm not currently doing any work on the _history completer. So if you
> want to commit the changes that would be fine with me. Though I think
> my testing is pretty limited (e.g. I don't use NUMERIC arguments, and I didn't
> try various zstyle configurations.) I was thinking that in case there were
> any obvious problems with the completer (e.g. _wanted shouldn't be used in
> a completer) someone would post that feedback.
>
> Also, I don't have a lot of time to work on it, this completer has been on my
> list for a while. So if other people want work on it I would be happy.
I'll be committing it in a second. As everyone can see by the patch
below, I haven't changed it yet, apart from adding a comment to the
top. That's because it really looks like one of our functions that
just generate matches of a certain type. And it could be used like
that, but using it as a completer is certainly sensible, too.
Bye
Sven
Index: Completion/Core/.distfiles
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Core/.distfiles,v
retrieving revision 1.4
diff -u -r1.4 .distfiles
--- Completion/Core/.distfiles 2000/04/20 00:48:28 1.4
+++ Completion/Core/.distfiles 2000/04/27 14:10:39
@@ -2,8 +2,8 @@
.distfiles
_all_labels _alternative _approximate
_call _compalso _complete _correct _description _expand
- _file_descriptors _files _funcall _ignored _list _main_complete _match
- _menu _multi_parts _message _next_label _normal _oldlist _options
+ _file_descriptors _files _funcall _history _ignored _list _main_complete
+ _match _menu _multi_parts _message _next_label _normal _oldlist _options
_parameters _path_files _prefix _requested _sep_parts
_set_options _setup _sort_tags _tags
_unset_options _wanted
Index: Completion/Core/_history
===================================================================
RCS file: _history
diff -N _history
--- /dev/null Tue May 5 13:32:27 1998
+++ _history Thu Apr 27 07:10:39 2000
@@ -0,0 +1,36 @@
+#autoload
+
+# Hm, this *can* sensibly be used as a completer. But it could also be used
+# as a utility function, so maybe it should be moved into another directory.
+# Or maybe not. Hm.
+#
+#
+# Complete words from the history
+#
+# Code taken from _history_complete_words.
+#
+# Available styles:
+#
+# :history-words:sort -- sort matches lexically (default is to sort by age)
+# :history-words:remove-all-dups --
+# remove /all/ duplicate matches rather than just
+# consecutives
+
+local opt expl
+
+if zstyle -t ":completion:${curcontext}:" remove-all-dups; then
+ opt=-
+else
+ opt=-1
+fi
+
+if zstyle -t ":completion:${curcontext}:" sort; then
+ opt="${opt}J"
+else
+ opt="${opt}V"
+fi
+
+# We skip the first element of historywords so the current word doesn't
+# interfere with the completion
+_wanted "$opt" history-words expl 'history word' \
+ compadd -Q - "${(@)historywords[2,-1]}"
Index: Doc/Zsh/compsys.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/compsys.yo,v
retrieving revision 1.24
diff -u -r1.24 compsys.yo
--- Doc/Zsh/compsys.yo 2000/04/27 09:24:38 1.24
+++ Doc/Zsh/compsys.yo 2000/04/27 14:10:41
@@ -2138,6 +2138,14 @@
In a different mode selected by the tt(completions) style, all
em(completions) generated for the string on the line are inserted.
)
+findex(_history)
+item(tt(_history))(
+Complete words from the shell's command history. This completer
+uses the tt(remove-all-dups), and tt(sort) styles also used by the
+tt(_history_complete_word) bindable command, see
+ifzman(the section `Completion System Configuration' above)\
+ifnzman(noderef(Completion System Configuration)).
+)
findex(_list)
item(tt(_list))(
This completer allows one to delay the insertion of matches until
--
Sven Wischnowsky wischnow@xxxxxxxxxxxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author