Highlight variable assignment

This commit is contained in:
NAKAMURA Yoshitaka 2011-02-14 19:23:23 +09:00
parent 93c9e6a753
commit 390ab0fc32

View File

@ -53,6 +53,7 @@ ZSH_HIGHLIGHT_STYLES=(
dollar-double-quoted-argument 'fg=cyan'
back-double-quoted-argument 'fg=cyan'
bracket-error 'fg=red,bold'
assign 'none'
)
# Colors for bracket levels.
@ -77,6 +78,12 @@ zle_highlight=(
isearch:$ZSH_HIGHLIGHT_STYLES[isearch]
)
# Check if the argument is variable assignment
_zsh_check-assign() {
setopt localoptions extended_glob
[[ ${(Q)arg} == [[:alpha:]_]([[:alnum:]_])#=* ]]
}
# Check if the argument is a path.
_zsh_check-path() {
[[ -z ${(Q)arg} ]] && return 1
@ -139,7 +146,10 @@ _zsh_highlight-zle-buffer() {
*': function') style=$ZSH_HIGHLIGHT_STYLES[function];;
*': command') style=$ZSH_HIGHLIGHT_STYLES[command];;
*': hashed') style=$ZSH_HIGHLIGHT_STYLES[hashed-command];;
*) if _zsh_check-path; then
*) if _zsh_check-assign; then
style=$ZSH_HIGHLIGHT_STYLES[assign]
new_expression=true
elif _zsh_check-path; then
style=$ZSH_HIGHLIGHT_STYLES[path]
elif [[ $arg[0,1] = $histchars[0,1] ]]; then
style=$ZSH_HIGHLIGHT_STYLES[history-expansion]