mirror of
https://github.com/zsh-users/zsh-syntax-highlighting.git
synced 2026-06-19 01:12:48 +02:00
main: check for partial paths separately
It's really annoying to have partial paths appear the same as paths to complete files. However, it is still nice to be able to highlight them. Full paths are now bold while partial paths use plain underline.
This commit is contained in:
parent
1d85c69261
commit
d0794a6f76
2 changed files with 34 additions and 2 deletions
|
|
@ -37,7 +37,8 @@
|
|||
: ${ZSH_HIGHLIGHT_STYLES[precommand]:=fg=green,underline}
|
||||
: ${ZSH_HIGHLIGHT_STYLES[commandseparator]:=none}
|
||||
: ${ZSH_HIGHLIGHT_STYLES[autodirectory]:=fg=green,underline}
|
||||
: ${ZSH_HIGHLIGHT_STYLES[path]:=underline}
|
||||
: ${ZSH_HIGHLIGHT_STYLES[path]:=underline,bold}
|
||||
: ${ZSH_HIGHLIGHT_STYLES[partial-path]:=underline}
|
||||
: ${ZSH_HIGHLIGHT_STYLES[path_pathseparator]:=}
|
||||
: ${ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]:=}
|
||||
: ${ZSH_HIGHLIGHT_STYLES[globbing]:=fg=blue}
|
||||
|
|
@ -1093,6 +1094,8 @@ _zsh_highlight_main_highlighter_highlight_list()
|
|||
else
|
||||
if _zsh_highlight_main_highlighter_check_path $arg 1; then
|
||||
style=$REPLY
|
||||
elif _zsh_highlight_main_highlighter_check_partial_path $arg 1; then
|
||||
style=$REPLY
|
||||
else
|
||||
style=unknown-token
|
||||
fi
|
||||
|
|
@ -1202,9 +1205,33 @@ _zsh_highlight_main_highlighter_highlight_path_separators()
|
|||
# Check if $1 is a path.
|
||||
# If yes, return 0 and in $REPLY the style to use.
|
||||
# Else, return non-zero (and the contents of $REPLY is undefined).
|
||||
_zsh_highlight_main_highlighter_check_path()
|
||||
{
|
||||
setopt localoptions nonomatch
|
||||
_zsh_highlight_main_highlighter_expand_path "$1"
|
||||
local expanded_path="$REPLY" tmp_path
|
||||
integer in_command_position=$2
|
||||
|
||||
if (( in_command_position )); then
|
||||
# ### Currently, this value is never returned: either it's overwritten
|
||||
# ### below, or the return code is non-zero
|
||||
REPLY=arg0
|
||||
else
|
||||
REPLY=path
|
||||
fi
|
||||
|
||||
[[ -z $expanded_path ]] && return 1
|
||||
[[ -e $expanded_path ]] && return 0
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
# Check if $1 is a partial path.
|
||||
# If yes, return 0 and in $REPLY the style to use.
|
||||
# Else, return non-zero (and the contents of $REPLY is undefined).
|
||||
#
|
||||
# $2 should be non-zero iff we're in command position.
|
||||
_zsh_highlight_main_highlighter_check_path()
|
||||
_zsh_highlight_main_highlighter_check_partial_path()
|
||||
{
|
||||
_zsh_highlight_main_highlighter_expand_path "$1"
|
||||
local expanded_path="$REPLY" tmp_path
|
||||
|
|
@ -1449,6 +1476,10 @@ _zsh_highlight_main_highlighter_highlight_argument()
|
|||
base_style=$REPLY
|
||||
_zsh_highlight_main_highlighter_highlight_path_separators $base_style
|
||||
highlights+=($reply)
|
||||
elif _zsh_highlight_main_highlighter_check_partial_path $arg[$1,-1] 0; then
|
||||
base_style=$REPLY
|
||||
_zsh_highlight_main_highlighter_highlight_path_separators $base_style
|
||||
highlights+=($reply)
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue