|
@ -155,6 +155,20 @@ _zsh_highlight_main__resolve_alias() { |
|
|
fi |
|
|
fi |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
# Check that the top of $braces_stack has the expected value. If it does, set |
|
|
|
|
|
# the style according to $2; otherwise, set style=unknown-token. |
|
|
|
|
|
# |
|
|
|
|
|
# $1: character expected to be at the top of $braces_stack |
|
|
|
|
|
# $2: assignment to execute it if matches |
|
|
|
|
|
_zsh_highlight_main__stack_pop() { |
|
|
|
|
|
if [[ $braces_stack[1] == $1 ]]; then |
|
|
|
|
|
braces_stack=${braces_stack:1} |
|
|
|
|
|
eval "$2" |
|
|
|
|
|
else |
|
|
|
|
|
style=unknown-token |
|
|
|
|
|
fi |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
# Main syntax highlighting function. |
|
|
# Main syntax highlighting function. |
|
|
_zsh_highlight_highlighter_main_paint() |
|
|
_zsh_highlight_highlighter_main_paint() |
|
|
{ |
|
|
{ |
|
@ -194,6 +208,8 @@ _zsh_highlight_highlighter_main_paint() |
|
|
local buf="$PREBUFFER$BUFFER" |
|
|
local buf="$PREBUFFER$BUFFER" |
|
|
integer len="${#buf}" |
|
|
integer len="${#buf}" |
|
|
|
|
|
|
|
|
|
|
|
local braces_stack # "R" for round, "Q" for square, "Y" for curly |
|
|
|
|
|
|
|
|
if (( path_dirs_was_set )); then |
|
|
if (( path_dirs_was_set )); then |
|
|
options_to_set+=( PATH_DIRS ) |
|
|
options_to_set+=( PATH_DIRS ) |
|
|
fi |
|
|
fi |
|
@ -418,7 +434,15 @@ _zsh_highlight_highlighter_main_paint() |
|
|
fi |
|
|
fi |
|
|
} |
|
|
} |
|
|
case $res in |
|
|
case $res in |
|
|
reserved) style=reserved-word;; |
|
|
|
|
|
|
|
|
reserved) # reserved word |
|
|
|
|
|
style=reserved-word |
|
|
|
|
|
if [[ $arg == $'\x7b' ]]; then |
|
|
|
|
|
braces_stack='Y'"$braces_stack" |
|
|
|
|
|
elif [[ $arg == $'\x7d' ]]; then |
|
|
|
|
|
# We're at command word, so no need to check $right_brace_is_recognised_everywhere |
|
|
|
|
|
_zsh_highlight_main__stack_pop 'Y' style=reserved-word |
|
|
|
|
|
fi |
|
|
|
|
|
;; |
|
|
'suffix alias') style=suffix-alias;; |
|
|
'suffix alias') style=suffix-alias;; |
|
|
alias) () { |
|
|
alias) () { |
|
|
integer insane_alias |
|
|
integer insane_alias |
|
@ -488,10 +512,13 @@ _zsh_highlight_highlighter_main_paint() |
|
|
_zsh_highlight_main_add_region_highlight $((end_pos - 2)) $end_pos $style |
|
|
_zsh_highlight_main_add_region_highlight $((end_pos - 2)) $end_pos $style |
|
|
already_added=1 |
|
|
already_added=1 |
|
|
fi |
|
|
fi |
|
|
elif [[ $arg == '()' || $arg == $'\x28' ]]; then |
|
|
|
|
|
|
|
|
elif [[ $arg == '()' ]]; then |
|
|
# anonymous function |
|
|
# anonymous function |
|
|
|
|
|
style=reserved-word |
|
|
|
|
|
elif [[ $arg == $'\x28' ]]; then |
|
|
# subshell |
|
|
# subshell |
|
|
style=reserved-word |
|
|
style=reserved-word |
|
|
|
|
|
braces_stack='R'"$braces_stack" |
|
|
else |
|
|
else |
|
|
if _zsh_highlight_main_highlighter_check_path; then |
|
|
if _zsh_highlight_main_highlighter_check_path; then |
|
|
style=$REPLY |
|
|
style=$REPLY |
|
@ -516,7 +543,7 @@ _zsh_highlight_highlighter_main_paint() |
|
|
in_array_assignment=false |
|
|
in_array_assignment=false |
|
|
next_word+=':start:' |
|
|
next_word+=':start:' |
|
|
else |
|
|
else |
|
|
style=reserved-word |
|
|
|
|
|
|
|
|
_zsh_highlight_main__stack_pop 'R' style=reserved-word |
|
|
fi;; |
|
|
fi;; |
|
|
$'\x7d') # right brace |
|
|
$'\x7d') # right brace |
|
|
# |
|
|
# |
|
@ -525,7 +552,7 @@ _zsh_highlight_highlighter_main_paint() |
|
|
# Additionally, `tt(})' is recognized in any position if neither the |
|
|
# Additionally, `tt(})' is recognized in any position if neither the |
|
|
# tt(IGNORE_BRACES) option nor the tt(IGNORE_CLOSE_BRACES) option is set.""" |
|
|
# tt(IGNORE_BRACES) option nor the tt(IGNORE_CLOSE_BRACES) option is set.""" |
|
|
if $right_brace_is_recognised_everywhere; then |
|
|
if $right_brace_is_recognised_everywhere; then |
|
|
style=reserved-word |
|
|
|
|
|
|
|
|
_zsh_highlight_main__stack_pop 'Y' style=reserved-word |
|
|
else |
|
|
else |
|
|
# Fall through to the catchall case at the end. |
|
|
# Fall through to the catchall case at the end. |
|
|
fi |
|
|
fi |
|
|