summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2000-04-27 14:16:15 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2000-04-27 14:16:15 +0000
commit37d14cab88e2aa09e6279bb96995e9f4521887a5 (patch)
tree26cc1a59714ff6dbd6c2c560850783922d6a2e99
parenta35472cb31cc6747a38b290fd9930c2e2a2b787b (diff)
downloadzsh-37d14cab88e2aa09e6279bb96995e9f4521887a5.tar.gz
zsh-37d14cab88e2aa09e6279bb96995e9f4521887a5.zip
new _history completer (10979)
-rw-r--r--ChangeLog3
-rw-r--r--Completion/Core/.distfiles4
-rw-r--r--Completion/Core/_history36
-rw-r--r--Doc/Zsh/compsys.yo8
4 files changed, 49 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index ce6ae483e..2cd99d32b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2000-04-27 Sven Wischnowsky <wischnow@informatik.hu-berlin.de>
+ * 10979: originally from Felix: 10894: Completion/Core/.distfiles,
+ Completion/Core/_history, Doc/Zsh/compsys.yo: new _history completer
+
* 10978: Src/Zle/complist.c: better wrap around for cursor
movement widgets; avoid flicker when leaving menu-selection
diff --git a/Completion/Core/.distfiles b/Completion/Core/.distfiles
index 9ddf7f523..aaf844598 100644
--- a/Completion/Core/.distfiles
+++ b/Completion/Core/.distfiles
@@ -2,8 +2,8 @@ DISTFILES_SRC='
.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
diff --git a/Completion/Core/_history b/Completion/Core/_history
new file mode 100644
index 000000000..978a75400
--- /dev/null
+++ b/Completion/Core/_history
@@ -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]}"
diff --git a/Doc/Zsh/compsys.yo b/Doc/Zsh/compsys.yo
index 66d56f078..1e077d8ad 100644
--- a/Doc/Zsh/compsys.yo
+++ b/Doc/Zsh/compsys.yo
@@ -2138,6 +2138,14 @@ at all.
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