main: Move alias handling up.
This will set style=alias before the great fork.
This commit is contained in:
parent
57386f30ae
commit
c138123397
@ -500,8 +500,6 @@ _zsh_highlight_main_highlighter_highlight_list()
|
||||
|
||||
if [[ $this_word == *:start:* ]] && ! (( in_redirection )); then
|
||||
# Expand aliases.
|
||||
# TODO: the entire 'alias' branch of the 'case' statement should
|
||||
# be done here.
|
||||
_zsh_highlight_main__type "$arg"
|
||||
local res="$REPLY"
|
||||
if [[ $res == "alias" ]]; then
|
||||
@ -528,6 +526,34 @@ _zsh_highlight_main_highlighter_highlight_list()
|
||||
}
|
||||
_zsh_highlight_main_highlighter_expand_path $arg
|
||||
arg=$REPLY
|
||||
() {
|
||||
# Make sure to use $arg_raw here, rather than $arg.
|
||||
integer insane_alias
|
||||
case $arg_raw 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=unknown-token
|
||||
# Calling 'type' again; since __type memoizes the answer, this call is just a hash lookup.
|
||||
elif _zsh_highlight_main__type "$arg" && [[ $REPLY == 'none' ]]; then
|
||||
style=unknown-token
|
||||
else
|
||||
# The common case.
|
||||
style=alias
|
||||
if (( ${+precommand_options[(re)"$arg"]} )) && (( ! ${+precommand_options[(re)"$arg_raw"]} )); then
|
||||
precommand_options[$arg_raw]=$precommand_options[$arg]
|
||||
fi
|
||||
fi
|
||||
}
|
||||
else
|
||||
_zsh_highlight_main_highlighter_expand_path $arg
|
||||
arg=$REPLY
|
||||
@ -685,35 +711,7 @@ _zsh_highlight_main_highlighter_highlight_list()
|
||||
esac
|
||||
;;
|
||||
'suffix alias') style=suffix-alias;;
|
||||
alias) () {
|
||||
# Make sure to use $arg_raw here, rather than $arg.
|
||||
integer insane_alias
|
||||
case $arg_raw 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=unknown-token
|
||||
# Calling 'type' again; since __type memoizes the answer, this call is just a hash lookup.
|
||||
elif _zsh_highlight_main__type "$arg" && [[ $REPLY == 'none' ]]; then
|
||||
style=unknown-token
|
||||
else
|
||||
# The common case.
|
||||
style=alias
|
||||
if (( ${+precommand_options[(re)"$arg"]} )) && (( ! ${+precommand_options[(re)"$arg_raw"]} )); then
|
||||
precommand_options[$arg_raw]=$precommand_options[$arg]
|
||||
fi
|
||||
fi
|
||||
}
|
||||
;;
|
||||
alias) :;;
|
||||
builtin) style=builtin;;
|
||||
function) style=function;;
|
||||
command) style=command;;
|
||||
|
Loading…
Reference in New Issue
Block a user