summary refs log tree commit diff
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.tar.xz
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