aliases: Highlight aliases with '=' in their LHS as error. (Part of issue #263.)
This commit is contained in:
parent
5e4b446dee
commit
28932316cc
@ -294,9 +294,28 @@ _zsh_highlight_main_highlighter()
|
||||
*': suffix alias')
|
||||
style=$ZSH_HIGHLIGHT_STYLES[suffix-alias]
|
||||
;;
|
||||
*': alias') style=$ZSH_HIGHLIGHT_STYLES[alias]
|
||||
*': alias') () {
|
||||
integer insane_alias
|
||||
case $arg in
|
||||
# Issue #263: aliases with '=' on their LHS.
|
||||
#
|
||||
# There are three cases:
|
||||
#
|
||||
# - Unsupported, breaks 'alias -L' output, but invokable:
|
||||
('='*) :;;
|
||||
# - Unsupported, not invokable:
|
||||
(*'='*) insane_alias=1;;
|
||||
# - The common case:
|
||||
(*) :;;
|
||||
esac
|
||||
if (( insane_alias )); then
|
||||
style=$ZSH_HIGHLIGHT_STYLES[unknown-token]
|
||||
else
|
||||
style=$ZSH_HIGHLIGHT_STYLES[alias]
|
||||
local aliased_command="${"$(alias -- $arg)"#*=}"
|
||||
[[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$aliased_command"} && -z ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$arg"} ]] && ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS+=($arg)
|
||||
fi
|
||||
}
|
||||
;;
|
||||
*': builtin') style=$ZSH_HIGHLIGHT_STYLES[builtin];;
|
||||
*': function') style=$ZSH_HIGHLIGHT_STYLES[function];;
|
||||
|
@ -34,5 +34,5 @@ ZSH_HIGHLIGHT_STYLES[alias]=$unused_highlight
|
||||
BUFFER='x=y ls'
|
||||
|
||||
expected_region_highlight=(
|
||||
"1 3 $ZSH_HIGHLIGHT_STYLES[unknown-token] 'issue #263, #issuecomment-170579803'" # x=y
|
||||
"1 3 $ZSH_HIGHLIGHT_STYLES[unknown-token]" # x=y
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user