diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh index 72b48f0..d0ae014 100755 --- a/highlighters/main/main-highlighter.zsh +++ b/highlighters/main/main-highlighter.zsh @@ -41,6 +41,7 @@ : ${ZSH_HIGHLIGHT_STYLES[commandseparator]:=none} : ${ZSH_HIGHLIGHT_STYLES[hashed-command]:=fg=green} : ${ZSH_HIGHLIGHT_STYLES[path]:=underline} +: ${ZSH_HIGHLIGHT_STYLES[path_separator]:=fg=cyan} : ${ZSH_HIGHLIGHT_STYLES[path_prefix]:=underline} : ${ZSH_HIGHLIGHT_STYLES[path_approx]:=fg=yellow,underline} : ${ZSH_HIGHLIGHT_STYLES[globbing]:=fg=blue} @@ -127,6 +128,7 @@ _zsh_highlight_main_highlighter() style=$ZSH_HIGHLIGHT_STYLES[assign] new_expression=true elif _zsh_highlight_main_highlighter_check_path; then + _zsh_highlight_main_highlighter_highlight_path_separators style=$ZSH_HIGHLIGHT_STYLES[path] elif [[ $arg[0,1] = $histchars[0,1] ]]; then style=$ZSH_HIGHLIGHT_STYLES[history-expansion] @@ -149,6 +151,7 @@ _zsh_highlight_main_highlighter() '`'*'`') style=$ZSH_HIGHLIGHT_STYLES[back-quoted-argument];; *"*"*) $highlight_glob && style=$ZSH_HIGHLIGHT_STYLES[globbing] || style=$ZSH_HIGHLIGHT_STYLES[default];; *) if _zsh_highlight_main_highlighter_check_path; then + _zsh_highlight_main_highlighter_highlight_path_separators style=$ZSH_HIGHLIGHT_STYLES[path] elif [[ $arg[0,1] = $histchars[0,1] ]]; then style=$ZSH_HIGHLIGHT_STYLES[history-expansion] @@ -175,6 +178,19 @@ _zsh_highlight_main_highlighter_check_assign() [[ $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. _zsh_highlight_main_highlighter_check_path() {