'main': Tighten condition.
Should rule out brace expansions such as '{foo,bar}' and '{10..20}'.
This commit is contained in:
parent
9870ccc505
commit
ad3a6cb3c9
@ -379,6 +379,8 @@ _zsh_highlight_main_highlighter_highlight_list()
|
|||||||
local -a match mbegin mend list_highlights
|
local -a match mbegin mend list_highlights
|
||||||
# seen_alias is a map of aliases already seen to avoid loops like alias a=b b=a
|
# seen_alias is a map of aliases already seen to avoid loops like alias a=b b=a
|
||||||
local -A seen_alias
|
local -A seen_alias
|
||||||
|
# Pattern for parameter names
|
||||||
|
readonly parameter_name_pattern='([A-Za-z_][A-Za-z0-9_]*|[0-9]+)'
|
||||||
list_highlights=()
|
list_highlights=()
|
||||||
|
|
||||||
# "R" for round
|
# "R" for round
|
||||||
@ -561,7 +563,7 @@ _zsh_highlight_main_highlighter_highlight_list()
|
|||||||
_zsh_highlight_main_add_region_highlight $start_pos $end_pos redirection
|
_zsh_highlight_main_add_region_highlight $start_pos $end_pos redirection
|
||||||
fi
|
fi
|
||||||
continue
|
continue
|
||||||
elif [[ $arg == '{'*'}' ]] && _zsh_highlight_main__is_redirection $args[1]; then
|
elif [[ $arg == '{'${~parameter_name_pattern}'}' ]] && _zsh_highlight_main__is_redirection $args[1]; then
|
||||||
# named file descriptor: {foo}>&2
|
# named file descriptor: {foo}>&2
|
||||||
in_redirection=3
|
in_redirection=3
|
||||||
_zsh_highlight_main_add_region_highlight $start_pos $end_pos named-fd
|
_zsh_highlight_main_add_region_highlight $start_pos $end_pos named-fd
|
||||||
@ -587,7 +589,7 @@ _zsh_highlight_main_highlighter_highlight_list()
|
|||||||
parameter_name=${arg:1}
|
parameter_name=${arg:1}
|
||||||
fi
|
fi
|
||||||
if [[ $res == none ]] && zmodload -e zsh/parameter &&
|
if [[ $res == none ]] && zmodload -e zsh/parameter &&
|
||||||
[[ ${parameter_name} =~ ^([A-Za-z_][A-Za-z0-9_]*|[0-9]+)$ ]] &&
|
[[ ${parameter_name} =~ ^${~parameter_name_pattern}$ ]] &&
|
||||||
(( ${+parameters[(e)${MATCH}]} )) && [[ ${parameters[(e)$MATCH]} != *special* ]]
|
(( ${+parameters[(e)${MATCH}]} )) && [[ ${parameters[(e)$MATCH]} != *special* ]]
|
||||||
then
|
then
|
||||||
# Set $arg.
|
# Set $arg.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user