about summary refs log tree commit diff
path: root/Completion/Zsh/Type/_suffix_alias_files
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Zsh/Type/_suffix_alias_files')
-rw-r--r--Completion/Zsh/Type/_suffix_alias_files21
1 files changed, 21 insertions, 0 deletions
diff --git a/Completion/Zsh/Type/_suffix_alias_files b/Completion/Zsh/Type/_suffix_alias_files
new file mode 100644
index 000000000..1c2c8ebb5
--- /dev/null
+++ b/Completion/Zsh/Type/_suffix_alias_files
@@ -0,0 +1,21 @@
+#autoload
+
+# Complete files for which a suffix alias exists.
+
+local expl pat
+
+(( ${#saliases} )) || return 1
+
+if (( ${#saliases} == 1 )); then
+    pat="*.${(kq)saliases}"
+else
+    local -a tmpa
+    # This is so we can quote the alias names against expansion
+    # without quoting the `|' which needs to be active in the pattern
+    # --- remember that an alias name can be pretty much anything.
+    tmpa=(${(kq)saliases})
+    pat="*.(${(kj.|.)tmpa})"
+fi
+
+# _wanted is called for us by _command_names
+_path_files "$@" -g $pat