'main': Highlight the 'command' precommand.

Fixes #343.
This commit is contained in:
Daniel Shahaf 2016-07-28 07:50:38 +00:00 committed by Matthew Martin
parent 4c7db4e886
commit 5694221939
2 changed files with 7 additions and 6 deletions

View File

@ -242,6 +242,7 @@ _zsh_highlight_highlighter_main_paint()
# for that precommand.
local -A precommand_options
precommand_options=(
'command' ''
'sudo' Cgprtu
)
@ -263,7 +264,7 @@ _zsh_highlight_highlighter_main_paint()
# ';;' ';&' ';|'
)
ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS=(
'builtin' 'command' 'exec' 'nocorrect' 'noglob'
'builtin' 'exec' 'nocorrect' 'noglob'
'pkexec' # immune to #121 because it's usually not passed --option flags
)
@ -572,14 +573,14 @@ _zsh_highlight_main_highlighter_highlight_list()
style=reserved-word # de facto a reserved word, although not de jure
next_word=':start:'
elif [[ $this_word == *':start:'* ]] && (( in_redirection == 0 )); then # $arg is the command word
if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$arg"} ]]; then
style=precommand
elif (( ${+precommand_options[$arg]} )) && { _zsh_highlight_main__type $arg; [[ -n $REPLY && $REPLY != "none" ]] }; then
if (( ${+precommand_options[$arg]} )) && { _zsh_highlight_main__type $arg; [[ -n $REPLY && $REPLY != "none" ]] }; then
style=precommand
flags_with_argument=${precommand_options[$arg]}
next_word=${next_word//:regular:/}
next_word+=':sudo_opt:'
next_word+=':start:'
elif [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$arg"} ]]; then
style=precommand
else
case $res in
reserved) # reserved word

View File

@ -31,6 +31,6 @@ BUFFER='command -v ls'
expected_region_highlight=(
"1 7 precommand" # command
"9 10 single-hyphen-option 'issue #343'" # -v
"12 13 command 'issue #343'" # ls
"9 10 single-hyphen-option" # -v
"12 13 command" # ls
)