summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--Completion/Commands/_generic11
-rw-r--r--Doc/Zsh/compsys.yo14
3 files changed, 33 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 13a6fcc51..3503be782 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2000-06-13  Sven Wischnowsky  <wischnow@zsh.org>
 
+	* ?????: Completion/Commands/_generic, Doc/Zsh/compsys.yo: new
+	_generic widget to call completion with $WIDGET in function field
+	of context
+	
+	* ?????: Completion/Core/_main_complete, Doc/Zsh/compsys.yo: allow 
+	insert-tab style to contain `pending[=num]' to handle the case
+	when there is pending input
+
 	* ?????: Completion/Core/_expand, Doc/Zsh/compsys.yo: new style
 	`suffix', use accept-exact style in _expand
 	
diff --git a/Completion/Commands/_generic b/Completion/Commands/_generic
new file mode 100644
index 000000000..9a6b4401f
--- /dev/null
+++ b/Completion/Commands/_generic
@@ -0,0 +1,11 @@
+#autoload
+
+local curcontext="$curcontext"
+
+if [[ -z "$curcontext" ]]; then
+  curcontext="${WIDGET}:::"
+else
+  curcontext="${WIDGET}:${curcontext#*:}"
+fi
+
+_main_complete
diff --git a/Doc/Zsh/compsys.yo b/Doc/Zsh/compsys.yo
index f23f993fd..5167c626b 100644
--- a/Doc/Zsh/compsys.yo
+++ b/Doc/Zsh/compsys.yo
@@ -2452,6 +2452,20 @@ Unlike tt(_expand) this uses a `tt(1)' (one) as the default
 value for the tt(substitute) and tt(glob) styles, so both types of
 expansion will normally be performed.
 )
+findex(_generic)
+item(tt(_generic))(
+This function is not defined as a widget and not bound by
+default. However, it can be used to define a widget and will then
+store the name of the widget in the var(function) field of the context 
+and call the completion system. This allows to easily define custom
+completion widgets with their own sets of style settings. For example, 
+to define a widget that does normal completion and starts
+menu-selection, one could do:
+
+example(zle -C foo complete-word _generic
+bindkey '...' foo
+zstyle ':completion:foo:*' menu yes select=1)
+)
 findex(_history_complete_word) (\e/))
 item(tt(_history_complete_word) (\e/))(
 Complete words from the shell's command history. This uses the