parent
e76f208cf8
commit
693de99a90
@ -47,6 +47,7 @@ This highlighter defines the following styles:
|
|||||||
* `back-dollar-quoted-argument` - back dollar quoted arguments (\x inside $'')
|
* `back-dollar-quoted-argument` - back dollar quoted arguments (\x inside $'')
|
||||||
* `assign` - variable assignments
|
* `assign` - variable assignments
|
||||||
* `redirection` - redirection operators (`<`, `>`, etc)
|
* `redirection` - redirection operators (`<`, `>`, etc)
|
||||||
|
* `comment` - interactive comments, when `setopt INTERACTIVE_COMMENTS` is in effect (`echo # foo`)
|
||||||
* `default` - parts of the buffer that do not match anything
|
* `default` - parts of the buffer that do not match anything
|
||||||
|
|
||||||
To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, for example in `~/.zshrc`:
|
To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, for example in `~/.zshrc`:
|
||||||
|
@ -55,6 +55,7 @@
|
|||||||
: ${ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]:=fg=cyan}
|
: ${ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]:=fg=cyan}
|
||||||
: ${ZSH_HIGHLIGHT_STYLES[assign]:=none}
|
: ${ZSH_HIGHLIGHT_STYLES[assign]:=none}
|
||||||
: ${ZSH_HIGHLIGHT_STYLES[redirection]:=none}
|
: ${ZSH_HIGHLIGHT_STYLES[redirection]:=none}
|
||||||
|
: ${ZSH_HIGHLIGHT_STYLES[comment]:=fg=black,bold}
|
||||||
|
|
||||||
# Whether the highlighter should be called or not.
|
# Whether the highlighter should be called or not.
|
||||||
_zsh_highlight_main_highlighter_predicate()
|
_zsh_highlight_main_highlighter_predicate()
|
||||||
@ -82,6 +83,9 @@ _zsh_highlight_main_add_region_highlight() {
|
|||||||
# Main syntax highlighting function.
|
# Main syntax highlighting function.
|
||||||
_zsh_highlight_main_highlighter()
|
_zsh_highlight_main_highlighter()
|
||||||
{
|
{
|
||||||
|
if [[ -o interactive_comments ]]; then
|
||||||
|
local interactive_comments= # set to empty
|
||||||
|
fi
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
setopt localoptions extendedglob bareglobqual
|
setopt localoptions extendedglob bareglobqual
|
||||||
local start_pos=0 end_pos highlight_glob=true arg style
|
local start_pos=0 end_pos highlight_glob=true arg style
|
||||||
@ -148,7 +152,8 @@ _zsh_highlight_main_highlighter()
|
|||||||
#
|
#
|
||||||
local this_word=':start:' next_word
|
local this_word=':start:' next_word
|
||||||
integer in_redirection
|
integer in_redirection
|
||||||
for arg in ${(z)buf}; do
|
for arg in ${interactive_comments-${(z)buf}} \
|
||||||
|
${interactive_comments+${(zZ+c+)buf}}; do
|
||||||
if (( in_redirection )); then
|
if (( in_redirection )); then
|
||||||
(( --in_redirection ))
|
(( --in_redirection ))
|
||||||
fi
|
fi
|
||||||
@ -184,6 +189,14 @@ _zsh_highlight_main_highlighter()
|
|||||||
((end_pos=$start_pos+${#arg}))
|
((end_pos=$start_pos+${#arg}))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ ${interactive_comments+'set'} && $arg[1] == $histchars[3] ]]; then
|
||||||
|
# TODO: check $this_word
|
||||||
|
style=$ZSH_HIGHLIGHT_STYLES[comment]
|
||||||
|
_zsh_highlight_main_add_region_highlight $start_pos $end_pos $style
|
||||||
|
already_added=1
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
# Parse the sudo command line
|
# Parse the sudo command line
|
||||||
if (( ! in_redirection )); then
|
if (( ! in_redirection )); then
|
||||||
if [[ $this_word == *':sudo_opt:'* ]]; then
|
if [[ $this_word == *':sudo_opt:'* ]]; then
|
||||||
|
@ -33,6 +33,6 @@ setopt interactive_comments
|
|||||||
BUFFER='# echo foo'
|
BUFFER='# echo foo'
|
||||||
|
|
||||||
expected_region_highlight=(
|
expected_region_highlight=(
|
||||||
"1 1 ${(q-)ZSH_HIGHLIGHT_STYLES[comment]} 'issue #163'" # #
|
"1 1 ${(q-)ZSH_HIGHLIGHT_STYLES[comment]}" # #
|
||||||
"2 10 ${(q-)ZSH_HIGHLIGHT_STYLES[comment]} 'issue #163'" # " echo foo"
|
"2 10 ${(q-)ZSH_HIGHLIGHT_STYLES[comment]}" # " echo foo"
|
||||||
)
|
)
|
||||||
|
@ -35,5 +35,5 @@ BUFFER='echo "foo #bar" #baz # quux'
|
|||||||
expected_region_highlight=(
|
expected_region_highlight=(
|
||||||
"1 4 $ZSH_HIGHLIGHT_STYLES[command]" # echo
|
"1 4 $ZSH_HIGHLIGHT_STYLES[command]" # echo
|
||||||
"6 15 $ZSH_HIGHLIGHT_STYLES[double-quoted-argument]" # "foo #bar"
|
"6 15 $ZSH_HIGHLIGHT_STYLES[double-quoted-argument]" # "foo #bar"
|
||||||
"17 27 ${(q-)ZSH_HIGHLIGHT_STYLES[comment]} 'issue #163'" # #baz # quux
|
"17 27 ${(q-)ZSH_HIGHLIGHT_STYLES[comment]}" # #baz # quux
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user