diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh index e97b8b8..9ac15e9 100644 --- a/highlighters/main/main-highlighter.zsh +++ b/highlighters/main/main-highlighter.zsh @@ -662,12 +662,9 @@ _zsh_highlight_main_highlighter_highlight_list() next_word+=':start:' next_word+=':sudo_opt:' elif [[ $arg == '-'* ]]; then - # Unknown flag + # Unknown flag. We don't know whether it takes an argument or not, + # so we don't modify $next_word. this_word=':sudo_opt:' - next_word+=':start:' - next_word+=':sudo_opt:' - _zsh_highlight_main_add_region_highlight $start_pos $end_pos unknown-token - continue else # Not an option flag; nothing to do. (If the command line is # syntactically valid, ${this_word//:sudo_opt:/} should be diff --git a/highlighters/main/test-data/precommand-unknown-option.zsh b/highlighters/main/test-data/precommand-unknown-option.zsh index 1fba1b9..cd94233 100644 --- a/highlighters/main/test-data/precommand-unknown-option.zsh +++ b/highlighters/main/test-data/precommand-unknown-option.zsh @@ -38,6 +38,6 @@ expected_region_highlight=( '10 11 command' # ls '12 12 commandseparator' # ; '14 17 precommand' # sudo - '19 20 unknown-token' # -x - '22 23 command' # ls + '19 20 single-hyphen-option' # -x + '22 23 default' # ls ) diff --git a/highlighters/main/test-data/sudo-longopt.zsh b/highlighters/main/test-data/sudo-longopt.zsh index 8c39142..7a2ea9d 100644 --- a/highlighters/main/test-data/sudo-longopt.zsh +++ b/highlighters/main/test-data/sudo-longopt.zsh @@ -32,6 +32,6 @@ BUFFER='sudo --askpass ls' expected_region_highlight=( '1 4 precommand' # sudo - '6 14 double-hyphen-option "issues #641 and #658"' # --askpass - '16 17 default "issues #641 and #658"' # ls (we don't know whether --askpass takes an argument) + '6 14 double-hyphen-option' # --askpass + '16 17 default' # ls (we don't know whether --askpass takes an argument) )