sudo(8) (and env, nice, and other entries in \$precommand_options) resolve their target command via execvp(3)-style lookup, which never searches \$path for a name containing a slash -- unlike the shell's own PATH_DIRS option. So "sudo foo/bar" was highlighted as a valid command whenever the user had PATH_DIRS set and some \$path element made "foo/bar" resolvable that way, even though sudo itself would fail to find it. :sudo_opt: already marks every word from a recognised precommand up to and including its actual command word (for any precommand in \$precommand_options, not just sudo). Key off that existing marker to shadow PATH_DIRS out of \$options_to_set for just those two _zsh_highlight_main__type calls, via an anonymous-function scope so the shadow reverts automatically and normal command-word classification elsewhere in the line is unaffected. Fixes #595. |
||
|---|---|---|
| .. | ||
| brackets | ||
| cursor | ||
| line | ||
| main | ||
| pattern | ||
| regexp | ||
| root | ||
| README.md | ||
README.md
zsh-syntax-highlighting / highlighters
Navigate into the individual highlighters' documentation to see
what styles ($ZSH_HIGHLIGHT_STYLES keys) each highlighter defines.
Refer to the documentation on highlighters for further information.