Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: brace in alias name and compsys

On Dec 15,  2:36am, Phil Pennock wrote:
} Given this:
}     % alias ztrace{='() { setopt localoptions xtrace; '
} However, tab-completing 'ztrace{' yields 'ztrace\{'.

This is coming directly from "compadd -k aliases" which in turn is
hardwired in the "defs" array in _command_names.

There's a similar problem with e.g. completing the builtin "!" "command".
It always gets turned into "\!" instead.

Can anyone think of a situation in which the following is wrong?

diff --git a/Completion/Zsh/Type/_command_names b/Completion/Zsh/Type/_command_names
index 24933c2..d9fc62d 100644
--- a/Completion/Zsh/Type/_command_names
+++ b/Completion/Zsh/Type/_command_names
@@ -27,11 +27,11 @@ else
   [[ "$1" = - ]] && shift
   defs=( "$defs[@]"
-    'builtins:builtin command:compadd -k builtins'
+    'builtins:builtin command:compadd -Qk builtins'
     "functions:shell function:compadd -k 'functions$ffilt'"
-    'aliases:alias:compadd -k aliases'
+    'aliases:alias:compadd -Qk aliases'
     'suffix-aliases:suffix alias:_suffix_alias_files'
-    'reserved-words:reserved word:compadd -k reswords'
+    'reserved-words:reserved word:compadd -Qk reswords'
     'jobs:: _jobs -t'
     'parameters:: _parameters -g "^*readonly*" -qS= -r "\n\t\- =["'

While we're on the subject, completing after "[" or "[[" in command
position (no intervening whitespace) incorrectly attempts subscript
completion.  This appears to be a bug somewhere in the internals,
because compstate[context] has been set to 'subscript' and there's no
assignment to that in _complete_debug output.

Aside:  Zsh is unique, I think, in allowing alias names to contain
characters that are not legal in identifiers.

Messages sorted by: Reverse Date, Date, Thread, Author