highlight path separators

This commit is contained in:
Jorge Israel Peña 2014-01-30 23:54:16 -05:00
parent 5320f1e18d
commit 4b6fbaa221

View File

@ -41,6 +41,7 @@
: ${ZSH_HIGHLIGHT_STYLES[commandseparator]:=none} : ${ZSH_HIGHLIGHT_STYLES[commandseparator]:=none}
: ${ZSH_HIGHLIGHT_STYLES[hashed-command]:=fg=green} : ${ZSH_HIGHLIGHT_STYLES[hashed-command]:=fg=green}
: ${ZSH_HIGHLIGHT_STYLES[path]:=underline} : ${ZSH_HIGHLIGHT_STYLES[path]:=underline}
: ${ZSH_HIGHLIGHT_STYLES[path_separator]:=fg=cyan}
: ${ZSH_HIGHLIGHT_STYLES[path_prefix]:=underline} : ${ZSH_HIGHLIGHT_STYLES[path_prefix]:=underline}
: ${ZSH_HIGHLIGHT_STYLES[path_approx]:=fg=yellow,underline} : ${ZSH_HIGHLIGHT_STYLES[path_approx]:=fg=yellow,underline}
: ${ZSH_HIGHLIGHT_STYLES[globbing]:=fg=blue} : ${ZSH_HIGHLIGHT_STYLES[globbing]:=fg=blue}
@ -127,6 +128,7 @@ _zsh_highlight_main_highlighter()
style=$ZSH_HIGHLIGHT_STYLES[assign] style=$ZSH_HIGHLIGHT_STYLES[assign]
new_expression=true new_expression=true
elif _zsh_highlight_main_highlighter_check_path; then elif _zsh_highlight_main_highlighter_check_path; then
_zsh_highlight_main_highlighter_highlight_path_separators
style=$ZSH_HIGHLIGHT_STYLES[path] style=$ZSH_HIGHLIGHT_STYLES[path]
elif [[ $arg[0,1] = $histchars[0,1] ]]; then elif [[ $arg[0,1] = $histchars[0,1] ]]; then
style=$ZSH_HIGHLIGHT_STYLES[history-expansion] style=$ZSH_HIGHLIGHT_STYLES[history-expansion]
@ -149,6 +151,7 @@ _zsh_highlight_main_highlighter()
'`'*'`') style=$ZSH_HIGHLIGHT_STYLES[back-quoted-argument];; '`'*'`') style=$ZSH_HIGHLIGHT_STYLES[back-quoted-argument];;
*"*"*) $highlight_glob && style=$ZSH_HIGHLIGHT_STYLES[globbing] || style=$ZSH_HIGHLIGHT_STYLES[default];; *"*"*) $highlight_glob && style=$ZSH_HIGHLIGHT_STYLES[globbing] || style=$ZSH_HIGHLIGHT_STYLES[default];;
*) if _zsh_highlight_main_highlighter_check_path; then *) if _zsh_highlight_main_highlighter_check_path; then
_zsh_highlight_main_highlighter_highlight_path_separators
style=$ZSH_HIGHLIGHT_STYLES[path] style=$ZSH_HIGHLIGHT_STYLES[path]
elif [[ $arg[0,1] = $histchars[0,1] ]]; then elif [[ $arg[0,1] = $histchars[0,1] ]]; then
style=$ZSH_HIGHLIGHT_STYLES[history-expansion] style=$ZSH_HIGHLIGHT_STYLES[history-expansion]
@ -175,6 +178,19 @@ _zsh_highlight_main_highlighter_check_assign()
[[ $arg == [[:alpha:]_][[:alnum:]_]#(|\[*\])=* ]] [[ $arg == [[:alpha:]_][[:alnum:]_]#(|\[*\])=* ]]
} }
_zsh_highlight_main_highlighter_highlight_path_separators()
{
local pos style
style=$ZSH_HIGHLIGHT_STYLES[path_separator]
for (( pos = 0; $pos < ${#BUFFER}; pos++ )) ; do
local char="$BUFFER[pos+1]"
if [[ "$char" == "/" ]]; then
region_highlight+=("$pos $((pos + 1)) $style")
fi
done
}
# Check if the argument is a path. # Check if the argument is a path.
_zsh_highlight_main_highlighter_check_path() _zsh_highlight_main_highlighter_check_path()
{ {