command word: Start fixing issue #207, "Word following certain reserved words should be a command word".
This commit is contained in:
parent
87deac3062
commit
b397b12ac1
|
@ -87,6 +87,7 @@ _zsh_highlight_main_highlighter()
|
|||
local start_pos=0 end_pos highlight_glob=true arg style
|
||||
typeset -a ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR
|
||||
typeset -a ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS
|
||||
typeset -a ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW
|
||||
local buf="$PREBUFFER$BUFFER"
|
||||
region_highlight=()
|
||||
|
||||
|
@ -97,6 +98,15 @@ _zsh_highlight_main_highlighter()
|
|||
'builtin' 'command' 'exec' 'nocorrect' 'noglob'
|
||||
)
|
||||
|
||||
# Tokens that, at (naively-determined) "command position", are followed by
|
||||
# a de jure command position.
|
||||
ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW=(
|
||||
'while'
|
||||
'if'
|
||||
'then'
|
||||
'do'
|
||||
)
|
||||
|
||||
# State machine
|
||||
#
|
||||
# The states are:
|
||||
|
@ -284,6 +294,7 @@ _zsh_highlight_main_highlighter()
|
|||
# TODO maybe check *':regular:'* here?
|
||||
next_word=':start:'
|
||||
elif
|
||||
[[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW:#"$arg"} && $this_word == *':start:' ]] ||
|
||||
[[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$arg"} && $this_word == *':start:' ]]; then
|
||||
next_word=':start:'
|
||||
fi
|
||||
|
|
|
@ -32,15 +32,15 @@ BUFFER='while if echo Hello; then ls /; fi; do stat "x"; done'
|
|||
|
||||
expected_region_highlight+=(
|
||||
"1 5 $ZSH_HIGHLIGHT_STYLES[reserved-word]" # while
|
||||
"7 8 $ZSH_HIGHLIGHT_STYLES[reserved-word] 'issue #207'" # if
|
||||
"10 13 $ZSH_HIGHLIGHT_STYLES[builtin] 'issue #207'" # echo
|
||||
"7 8 $ZSH_HIGHLIGHT_STYLES[reserved-word]" # if
|
||||
"10 13 $ZSH_HIGHLIGHT_STYLES[builtin]" # echo
|
||||
"15 19 $ZSH_HIGHLIGHT_STYLES[default]" # Hello
|
||||
"22 25 $ZSH_HIGHLIGHT_STYLES[reserved-word]" # then
|
||||
"27 28 $ZSH_HIGHLIGHT_STYLES[command] 'issue #207'" # ls
|
||||
"27 28 $ZSH_HIGHLIGHT_STYLES[command]" # ls
|
||||
"30 30 $ZSH_HIGHLIGHT_STYLES[path]" # /
|
||||
"33 34 $ZSH_HIGHLIGHT_STYLES[reserved-word]" # fi
|
||||
"37 38 $ZSH_HIGHLIGHT_STYLES[reserved-word]" # do
|
||||
"40 43 $ZSH_HIGHLIGHT_STYLES[command] 'issue #207'" # stat
|
||||
"40 43 $ZSH_HIGHLIGHT_STYLES[command]" # stat
|
||||
"45 47 $ZSH_HIGHLIGHT_STYLES[double-quoted-argument]" # "x"
|
||||
"50 53 $ZSH_HIGHLIGHT_STYLES[reserved-word]" # done
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue
Block a user