Merge pull request #669 from danielshahaf/cdpath-and-nonexecutable-in-command-position-v1
Command position: non-executable files, non-cdable directories, CDPATH false positives
This commit is contained in:
commit
e4f24f8901
@ -27,6 +27,7 @@ This highlighter defines the following styles:
|
|||||||
* `precommand` - precommand modifiers (e.g., `noglob`, `builtin`)
|
* `precommand` - precommand modifiers (e.g., `noglob`, `builtin`)
|
||||||
* `commandseparator` - command separation tokens (`;`, `&&`)
|
* `commandseparator` - command separation tokens (`;`, `&&`)
|
||||||
* `hashed-command` - hashed commands
|
* `hashed-command` - hashed commands
|
||||||
|
* `autodirectory` - a directory name in command position when the `AUTO_CD` option is set
|
||||||
* `path` - existing filenames
|
* `path` - existing filenames
|
||||||
* `path_pathseparator` - path separators in filenames (`/`); if unset, `path` is used (default)
|
* `path_pathseparator` - path separators in filenames (`/`); if unset, `path` is used (default)
|
||||||
* `path_prefix` - prefixes of existing filenames
|
* `path_prefix` - prefixes of existing filenames
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
: ${ZSH_HIGHLIGHT_STYLES[global-alias]:=fg=cyan}
|
: ${ZSH_HIGHLIGHT_STYLES[global-alias]:=fg=cyan}
|
||||||
: ${ZSH_HIGHLIGHT_STYLES[precommand]:=fg=green,underline}
|
: ${ZSH_HIGHLIGHT_STYLES[precommand]:=fg=green,underline}
|
||||||
: ${ZSH_HIGHLIGHT_STYLES[commandseparator]:=none}
|
: ${ZSH_HIGHLIGHT_STYLES[commandseparator]:=none}
|
||||||
|
: ${ZSH_HIGHLIGHT_STYLES[autodirectory]:=fg=green,underline}
|
||||||
: ${ZSH_HIGHLIGHT_STYLES[path]:=underline}
|
: ${ZSH_HIGHLIGHT_STYLES[path]:=underline}
|
||||||
: ${ZSH_HIGHLIGHT_STYLES[path_pathseparator]:=}
|
: ${ZSH_HIGHLIGHT_STYLES[path_pathseparator]:=}
|
||||||
: ${ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]:=}
|
: ${ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]:=}
|
||||||
@ -113,6 +114,7 @@ _zsh_highlight_main_calculate_fallback() {
|
|||||||
command arg0
|
command arg0
|
||||||
precommand arg0
|
precommand arg0
|
||||||
hashed-command arg0
|
hashed-command arg0
|
||||||
|
autodirectory arg0
|
||||||
arg0_\* arg0
|
arg0_\* arg0
|
||||||
|
|
||||||
# TODO: Maybe these? —
|
# TODO: Maybe these? —
|
||||||
@ -1016,7 +1018,7 @@ _zsh_highlight_main_highlighter_highlight_list()
|
|||||||
fi
|
fi
|
||||||
_zsh_highlight_main__stack_pop 'R' reserved-word
|
_zsh_highlight_main__stack_pop 'R' reserved-word
|
||||||
else
|
else
|
||||||
if _zsh_highlight_main_highlighter_check_path $arg; then
|
if _zsh_highlight_main_highlighter_check_path $arg 1; then
|
||||||
style=$REPLY
|
style=$REPLY
|
||||||
else
|
else
|
||||||
style=unknown-token
|
style=unknown-token
|
||||||
@ -1125,12 +1127,27 @@ _zsh_highlight_main_highlighter_highlight_path_separators()
|
|||||||
# Check if $1 is a path.
|
# Check if $1 is a path.
|
||||||
# If yes, return 0 and in $REPLY the style to use.
|
# If yes, return 0 and in $REPLY the style to use.
|
||||||
# Else, return non-zero (and the contents of $REPLY is undefined).
|
# 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_path()
|
||||||
{
|
{
|
||||||
_zsh_highlight_main_highlighter_expand_path "$1"
|
_zsh_highlight_main_highlighter_expand_path "$1"
|
||||||
local expanded_path="$REPLY" tmp_path
|
local expanded_path="$REPLY" tmp_path
|
||||||
|
integer in_command_position=$2
|
||||||
|
|
||||||
REPLY=path
|
if [[ $zsyh_user_options[autocd] == on ]]; then
|
||||||
|
integer autocd=1
|
||||||
|
else
|
||||||
|
integer autocd=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
if [[ ${1[1]} == '=' && $1 == ??* && ${1[2]} != $'\x28' && $zsyh_user_options[equals] == 'on' && $expanded_path[1] != '/' ]]; then
|
if [[ ${1[1]} == '=' && $1 == ??* && ${1[2]} != $'\x28' && $zsyh_user_options[equals] == 'on' && $expanded_path[1] != '/' ]]; then
|
||||||
REPLY=unknown-token # will error out if executed
|
REPLY=unknown-token # will error out if executed
|
||||||
@ -1152,15 +1169,35 @@ _zsh_highlight_main_highlighter_check_path()
|
|||||||
tmp_path=$tmp_path:h
|
tmp_path=$tmp_path:h
|
||||||
done
|
done
|
||||||
|
|
||||||
[[ -L $expanded_path ]] && return 0
|
if (( in_command_position )); then
|
||||||
[[ -e $expanded_path ]] && return 0
|
if [[ -x $expanded_path ]]; then
|
||||||
|
if (( autocd )); then
|
||||||
|
if [[ -d $expanded_path ]]; then
|
||||||
|
REPLY=autodirectory
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
elif [[ ! -d $expanded_path ]]; then
|
||||||
|
# ### This seems unreachable for the current callers
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [[ -L $expanded_path || -e $expanded_path ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Search the path in CDPATH
|
# Search the path in CDPATH
|
||||||
if [[ $expanded_path != /* ]]; then
|
if [[ $expanded_path != /* ]] && (( autocd || ! in_command_position )); then
|
||||||
local cdpath_dir
|
|
||||||
# TODO: When we've dropped support for pre-5.0.6 zsh, use the *(Y1) glob qualifier here.
|
# TODO: When we've dropped support for pre-5.0.6 zsh, use the *(Y1) glob qualifier here.
|
||||||
|
local cdpath_dir
|
||||||
for cdpath_dir in $cdpath ; do
|
for cdpath_dir in $cdpath ; do
|
||||||
[[ -e "$cdpath_dir/$expanded_path" ]] && return 0
|
if [[ -d "$cdpath_dir/$expanded_path" && -x "$cdpath_dir/$expanded_path" ]]; then
|
||||||
|
if (( in_command_position && autocd )); then
|
||||||
|
REPLY=autodirectory
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -1169,10 +1206,18 @@ _zsh_highlight_main_highlighter_check_path()
|
|||||||
|
|
||||||
# If this word ends the buffer, check if it's the prefix of a valid path.
|
# If this word ends the buffer, check if it's the prefix of a valid path.
|
||||||
if (( has_end && (len == end_pos) )) &&
|
if (( has_end && (len == end_pos) )) &&
|
||||||
|
(( ! in_alias )) &&
|
||||||
[[ $WIDGET != zle-line-finish ]]; then
|
[[ $WIDGET != zle-line-finish ]]; then
|
||||||
# TODO: When we've dropped support for pre-5.0.6 zsh, use the *(Y1) glob qualifier here.
|
# TODO: When we've dropped support for pre-5.0.6 zsh, use the *(Y1) glob qualifier here.
|
||||||
local -a tmp
|
local -a tmp
|
||||||
tmp=( ${expanded_path}*(N) )
|
if (( in_command_position )); then
|
||||||
|
# We include directories even when autocd is enabled, because those
|
||||||
|
# directories might contain executable files: e.g., BUFFER="/bi" en route
|
||||||
|
# to typing "/bin/sh".
|
||||||
|
tmp=( ${expanded_path}*(N-*,N-/) )
|
||||||
|
else
|
||||||
|
tmp=( ${expanded_path}*(N) )
|
||||||
|
fi
|
||||||
(( ${+tmp[1]} )) && REPLY=path_prefix && return 0
|
(( ${+tmp[1]} )) && REPLY=path_prefix && return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -1183,6 +1228,8 @@ _zsh_highlight_main_highlighter_check_path()
|
|||||||
# Highlight an argument and possibly special chars in quotes starting at $1 in $arg
|
# Highlight an argument and possibly special chars in quotes starting at $1 in $arg
|
||||||
# This command will at least highlight $1 to end_pos with the default style
|
# This command will at least highlight $1 to end_pos with the default style
|
||||||
# If $2 is set to 0, the argument cannot be highlighted as an option.
|
# If $2 is set to 0, the argument cannot be highlighted as an option.
|
||||||
|
#
|
||||||
|
# This function currently assumes it's never called for the command word.
|
||||||
_zsh_highlight_main_highlighter_highlight_argument()
|
_zsh_highlight_main_highlighter_highlight_argument()
|
||||||
{
|
{
|
||||||
local base_style=default i=$1 option_eligible=${2:-1} path_eligible=1 ret start style
|
local base_style=default i=$1 option_eligible=${2:-1} path_eligible=1 ret start style
|
||||||
@ -1317,7 +1364,8 @@ _zsh_highlight_main_highlighter_highlight_argument()
|
|||||||
else
|
else
|
||||||
base_style=numeric-fd
|
base_style=numeric-fd
|
||||||
fi
|
fi
|
||||||
elif _zsh_highlight_main_highlighter_check_path $arg[$1,-1]; then
|
# This function is currently never called for the command word, so $2 is hard-coded as 0.
|
||||||
|
elif _zsh_highlight_main_highlighter_check_path $arg[$1,-1] 0; then
|
||||||
base_style=$REPLY
|
base_style=$REPLY
|
||||||
_zsh_highlight_main_highlighter_highlight_path_separators $base_style
|
_zsh_highlight_main_highlighter_highlight_path_separators $base_style
|
||||||
highlights+=($reply)
|
highlights+=($reply)
|
||||||
|
@ -31,5 +31,5 @@
|
|||||||
BUFFER=$'/'
|
BUFFER=$'/'
|
||||||
|
|
||||||
expected_region_highlight=(
|
expected_region_highlight=(
|
||||||
'1 1 path' # /
|
'1 1 path_prefix' # /
|
||||||
)
|
)
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2020 zsh-syntax-highlighting contributors
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||||
|
# provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# * Redistributions of source code must retain the above copyright notice, this list of conditions
|
||||||
|
# and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright notice, this list of
|
||||||
|
# conditions and the following disclaimer in the documentation and/or other materials provided
|
||||||
|
# with the distribution.
|
||||||
|
# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
|
||||||
|
# may be used to endorse or promote products derived from this software without specific prior
|
||||||
|
# written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
||||||
|
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||||
|
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
|
||||||
|
# vim: ft=zsh sw=2 ts=2 et
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
setopt autocd
|
||||||
|
BUFFER=$'/'
|
||||||
|
|
||||||
|
expected_region_highlight=(
|
||||||
|
'1 1 autodirectory' # /
|
||||||
|
)
|
@ -28,8 +28,10 @@
|
|||||||
# vim: ft=zsh sw=2 ts=2 et
|
# vim: ft=zsh sw=2 ts=2 et
|
||||||
# -------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
BUFFER=$'/bin'
|
BUFFER=$'/bin; /bin'
|
||||||
|
|
||||||
expected_region_highlight=(
|
expected_region_highlight=(
|
||||||
'1 4 path' # /bin
|
'1 4 unknown-token' # /bin (in middle)
|
||||||
|
'5 5 commandseparator' # ;
|
||||||
|
'7 10 path_prefix' # /bin (at end)
|
||||||
)
|
)
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2020 zsh-syntax-highlighting contributors
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||||
|
# provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# * Redistributions of source code must retain the above copyright notice, this list of conditions
|
||||||
|
# and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright notice, this list of
|
||||||
|
# conditions and the following disclaimer in the documentation and/or other materials provided
|
||||||
|
# with the distribution.
|
||||||
|
# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
|
||||||
|
# may be used to endorse or promote products derived from this software without specific prior
|
||||||
|
# written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
||||||
|
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||||
|
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
|
||||||
|
# vim: ft=zsh sw=2 ts=2 et
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
setopt autocd
|
||||||
|
BUFFER=$'/bin; /bin'
|
||||||
|
|
||||||
|
expected_region_highlight=(
|
||||||
|
'1 4 autodirectory' # /bin (in middle)
|
||||||
|
'5 5 commandseparator' # ;
|
||||||
|
'7 10 autodirectory' # /bin (at end)
|
||||||
|
)
|
@ -32,5 +32,5 @@ alias x=/
|
|||||||
BUFFER=$'x'
|
BUFFER=$'x'
|
||||||
|
|
||||||
expected_region_highlight=(
|
expected_region_highlight=(
|
||||||
'1 1 unknown-token "issue #668"' # x (/)
|
'1 1 unknown-token' # x (/)
|
||||||
)
|
)
|
||||||
|
37
highlighters/main/test-data/alias-to-dir1b.zsh
Normal file
37
highlighters/main/test-data/alias-to-dir1b.zsh
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2020 zsh-syntax-highlighting contributors
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||||
|
# provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# * Redistributions of source code must retain the above copyright notice, this list of conditions
|
||||||
|
# and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright notice, this list of
|
||||||
|
# conditions and the following disclaimer in the documentation and/or other materials provided
|
||||||
|
# with the distribution.
|
||||||
|
# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
|
||||||
|
# may be used to endorse or promote products derived from this software without specific prior
|
||||||
|
# written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
||||||
|
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||||
|
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
|
||||||
|
# vim: ft=zsh sw=2 ts=2 et
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
setopt autocd
|
||||||
|
alias x=/
|
||||||
|
BUFFER=$'x'
|
||||||
|
|
||||||
|
expected_region_highlight=(
|
||||||
|
'1 1 alias' # x
|
||||||
|
)
|
@ -34,7 +34,7 @@
|
|||||||
BUFFER='$PWD; ${PWD}'
|
BUFFER='$PWD; ${PWD}'
|
||||||
|
|
||||||
expected_region_highlight=(
|
expected_region_highlight=(
|
||||||
"1 4 path" # $PWD
|
"1 4 unknown-token" # $PWD (without AUTO_CD)
|
||||||
"5 5 commandseparator" # ;
|
"5 5 commandseparator" # ;
|
||||||
"7 12 path" # ${PWD}
|
"7 12 path_prefix" # ${PWD}
|
||||||
)
|
)
|
||||||
|
38
highlighters/main/test-data/path-dollared-word3b.zsh
Normal file
38
highlighters/main/test-data/path-dollared-word3b.zsh
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2020 zsh-syntax-highlighting contributors
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||||
|
# provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# * Redistributions of source code must retain the above copyright notice, this list of conditions
|
||||||
|
# and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright notice, this list of
|
||||||
|
# conditions and the following disclaimer in the documentation and/or other materials provided
|
||||||
|
# with the distribution.
|
||||||
|
# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
|
||||||
|
# may be used to endorse or promote products derived from this software without specific prior
|
||||||
|
# written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
||||||
|
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||||
|
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
|
||||||
|
# vim: ft=zsh sw=2 ts=2 et
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
setopt autocd
|
||||||
|
BUFFER=$'$PWD; ${PWD}'
|
||||||
|
|
||||||
|
expected_region_highlight=(
|
||||||
|
'1 4 autodirectory' # $PWD
|
||||||
|
'5 5 commandseparator' # ;
|
||||||
|
'7 12 autodirectory' # ${PWD}
|
||||||
|
)
|
@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2020 zsh-syntax-highlighting contributors
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||||
|
# provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# * Redistributions of source code must retain the above copyright notice, this list of conditions
|
||||||
|
# and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright notice, this list of
|
||||||
|
# conditions and the following disclaimer in the documentation and/or other materials provided
|
||||||
|
# with the distribution.
|
||||||
|
# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
|
||||||
|
# may be used to endorse or promote products derived from this software without specific prior
|
||||||
|
# written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
||||||
|
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||||
|
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
|
||||||
|
# vim: ft=zsh sw=2 ts=2 et
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
touch foo
|
||||||
|
chmod -x foo
|
||||||
|
BUFFER=$'./foo; ./foo'
|
||||||
|
|
||||||
|
expected_region_highlight=(
|
||||||
|
'1 5 unknown-token' # ./foo (in middle)
|
||||||
|
'6 6 commandseparator' # ;
|
||||||
|
'8 12 unknown-token' # ./foo (at end)
|
||||||
|
)
|
Loading…
Reference in New Issue
Block a user