about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Core/.distfiles4
-rw-r--r--Completion/Core/_history36
2 files changed, 38 insertions, 2 deletions
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]}"