main: Highlight {command,process} substitution delimiters
This commit is contained in:
		
							parent
							
								
									22839d08ef
								
							
						
					
					
						commit
						e86f75a840
					
				|  | @ -33,11 +33,14 @@ This highlighter defines the following styles: | ||||||
| * `globbing` - globbing expressions (`*.txt`) | * `globbing` - globbing expressions (`*.txt`) | ||||||
| * `history-expansion` - history expansion expressions (`!foo` and `^foo^bar`) | * `history-expansion` - history expansion expressions (`!foo` and `^foo^bar`) | ||||||
| * `command-substitution` - command substitutions (`$(echo foo)`) | * `command-substitution` - command substitutions (`$(echo foo)`) | ||||||
|  | * `command-substitution-delimiter` - command substitution delimiters (`$(` and `)`) | ||||||
| * `process-substitution` - process substitutions (`<(echo foo)`) | * `process-substitution` - process substitutions (`<(echo foo)`) | ||||||
|  | * `process-substitution-delimiter` - process substitution delimiters (`<(` and `)`) | ||||||
| * `single-hyphen-option` - single-hyphen options (`-o`) | * `single-hyphen-option` - single-hyphen options (`-o`) | ||||||
| * `double-hyphen-option` - double-hyphen options (`--option`) | * `double-hyphen-option` - double-hyphen options (`--option`) | ||||||
| * `back-quoted-argument` - backtick command substitution (`` `foo` ``) | * `back-quoted-argument` - backtick command substitution (`` `foo` ``) | ||||||
| * `back-quoted-argument-unclosed` - unclosed backtick command substitution (`` `foo ``) | * `back-quoted-argument-unclosed` - unclosed backtick command substitution (`` `foo ``) | ||||||
|  | * `back-quoted-argument-delimiter` - backtick command substitution delimiters (`` ` ``) | ||||||
| * `single-quoted-argument` - single-quoted arguments (`` 'foo' ``) | * `single-quoted-argument` - single-quoted arguments (`` 'foo' ``) | ||||||
| * `single-quoted-argument-unclosed` - unclosed single-quoted arguments (`` 'foo ``) | * `single-quoted-argument-unclosed` - unclosed single-quoted arguments (`` 'foo ``) | ||||||
| * `double-quoted-argument` - double-quoted arguments (`` "foo" ``) | * `double-quoted-argument` - double-quoted arguments (`` "foo" ``) | ||||||
|  |  | ||||||
|  | @ -40,11 +40,14 @@ | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]:=} | : ${ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]:=} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[globbing]:=fg=blue} | : ${ZSH_HIGHLIGHT_STYLES[globbing]:=fg=blue} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[history-expansion]:=fg=blue} | : ${ZSH_HIGHLIGHT_STYLES[history-expansion]:=fg=blue} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[command-substitution]:=fg=magenta} | : ${ZSH_HIGHLIGHT_STYLES[command-substitution]:=none} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[process-substitution]:=fg=magenta} | : ${ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]:=fg=magenta} | ||||||
|  | : ${ZSH_HIGHLIGHT_STYLES[process-substitution]:=none} | ||||||
|  | : ${ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]:=fg=magenta} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[single-hyphen-option]:=none} | : ${ZSH_HIGHLIGHT_STYLES[single-hyphen-option]:=none} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[double-hyphen-option]:=none} | : ${ZSH_HIGHLIGHT_STYLES[double-hyphen-option]:=none} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[back-quoted-argument]:=none} | : ${ZSH_HIGHLIGHT_STYLES[back-quoted-argument]:=none} | ||||||
|  | : ${ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]:=fg=magenta} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[single-quoted-argument]:=fg=yellow} | : ${ZSH_HIGHLIGHT_STYLES[single-quoted-argument]:=fg=yellow} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[double-quoted-argument]:=fg=yellow} | : ${ZSH_HIGHLIGHT_STYLES[double-quoted-argument]:=fg=yellow} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]:=fg=yellow} | : ${ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]:=fg=yellow} | ||||||
|  | @ -103,6 +106,10 @@ _zsh_highlight_main_calculate_fallback() { | ||||||
|       double-quoted-argument{-unclosed,} |       double-quoted-argument{-unclosed,} | ||||||
|       dollar-quoted-argument{-unclosed,} |       dollar-quoted-argument{-unclosed,} | ||||||
|       back-quoted-argument{-unclosed,} |       back-quoted-argument{-unclosed,} | ||||||
|  | 
 | ||||||
|  |       command-substitution{-delimiter,} | ||||||
|  |       process-substitution{-delimiter,} | ||||||
|  |       back-quoted-argument{-delimiter,} | ||||||
|   ) |   ) | ||||||
|   local needle=$1 value |   local needle=$1 value | ||||||
|   reply=($1) |   reply=($1) | ||||||
|  | @ -853,7 +860,7 @@ _zsh_highlight_main_highlighter_check_path() | ||||||
| # 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 | ||||||
| _zsh_highlight_main_highlighter_highlight_argument() | _zsh_highlight_main_highlighter_highlight_argument() | ||||||
| { | { | ||||||
|   local base_style=default i=$1 path_eligible=1 start style |   local base_style=default i=$1 path_eligible=1 ret start style | ||||||
|   local -a highlights |   local -a highlights | ||||||
| 
 | 
 | ||||||
|   local -a match mbegin mend |   local -a match mbegin mend | ||||||
|  | @ -872,8 +879,16 @@ _zsh_highlight_main_highlighter_highlight_argument() | ||||||
|       if [[ $arg[i+1] == $'\x28' ]]; then |       if [[ $arg[i+1] == $'\x28' ]]; then | ||||||
|         (( i += 2 )) |         (( i += 2 )) | ||||||
|         _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,end_pos] |         _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,end_pos] | ||||||
|  |         ret=$? | ||||||
|         (( i += REPLY )) |         (( i += REPLY )) | ||||||
|         highlights+=($(( start_pos + $1 - 1 )) $(( start_pos + i )) process-substitution $reply) |         highlights+=( | ||||||
|  |           $(( start_pos + $1 - 1 )) $(( start_pos + i )) process-substitution | ||||||
|  |           $(( start_pos + $1 - 1 )) $(( start_pos + $1 + 1 )) process-substitution-delimiter | ||||||
|  |           $reply | ||||||
|  |         ) | ||||||
|  |         if (( ret == 0 )); then | ||||||
|  |           highlights+=($(( start_pos + i - 1 )) $(( start_pos + i )) process-substitution-delimiter) | ||||||
|  |         fi | ||||||
|       fi |       fi | ||||||
|   esac |   esac | ||||||
| 
 | 
 | ||||||
|  | @ -907,8 +922,16 @@ _zsh_highlight_main_highlighter_highlight_argument() | ||||||
|           start=$i |           start=$i | ||||||
|           (( i += 2 )) |           (( i += 2 )) | ||||||
|           _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,end_pos] |           _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,end_pos] | ||||||
|  |           ret=$? | ||||||
|           (( i += REPLY )) |           (( i += REPLY )) | ||||||
|           highlights+=($(( start_pos + start - 1)) $(( start_pos + i )) command-substitution $reply) |           highlights+=( | ||||||
|  |             $(( start_pos + start - 1)) $(( start_pos + i )) command-substitution | ||||||
|  |             $(( start_pos + start - 1)) $(( start_pos + start + 1)) command-substitution-delimiter | ||||||
|  |             $reply | ||||||
|  |           ) | ||||||
|  |           if (( ret == 0 )); then | ||||||
|  |             highlights+=($(( start_pos + i - 1)) $(( start_pos + i )) command-substitution-delimiter) | ||||||
|  |           fi | ||||||
|           continue |           continue | ||||||
|         fi |         fi | ||||||
|         while [[ $arg[i+1] == [\^=~#+] ]]; do |         while [[ $arg[i+1] == [\^=~#+] ]]; do | ||||||
|  | @ -922,8 +945,16 @@ _zsh_highlight_main_highlighter_highlight_argument() | ||||||
|           start=$i |           start=$i | ||||||
|           (( i += 2 )) |           (( i += 2 )) | ||||||
|           _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,end_pos] |           _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,end_pos] | ||||||
|  |           ret=$? | ||||||
|           (( i += REPLY )) |           (( i += REPLY )) | ||||||
|           highlights+=($(( start_pos + start - 1)) $(( start_pos + i )) process-substitution $reply) |           highlights+=( | ||||||
|  |             $(( start_pos + start - 1)) $(( start_pos + i )) process-substitution | ||||||
|  |             $(( start_pos + start - 1)) $(( start_pos + start + 1 )) process-substitution-delimiter | ||||||
|  |             $reply | ||||||
|  |           ) | ||||||
|  |           if (( ret == 0 )); then | ||||||
|  |             highlights+=($(( start_pos + i - 1)) $(( start_pos + i )) process-substitution-delimiter) | ||||||
|  |           fi | ||||||
|           continue |           continue | ||||||
|         fi |         fi | ||||||
|         ;| |         ;| | ||||||
|  | @ -988,7 +1019,7 @@ _zsh_highlight_main_highlighter_highlight_double_quote() | ||||||
| { | { | ||||||
|   local -a match mbegin mend saved_reply |   local -a match mbegin mend saved_reply | ||||||
|   local MATCH; integer MBEGIN MEND |   local MATCH; integer MBEGIN MEND | ||||||
|   local i j k style |   local i j k ret style | ||||||
|   reply=() |   reply=() | ||||||
| 
 | 
 | ||||||
|   for (( i = $1 + 1 ; i <= end_pos - start_pos ; i += 1 )) ; do |   for (( i = $1 + 1 ; i <= end_pos - start_pos ; i += 1 )) ; do | ||||||
|  | @ -1022,8 +1053,17 @@ _zsh_highlight_main_highlighter_highlight_double_quote() | ||||||
|               (( i += 2 )) |               (( i += 2 )) | ||||||
|               saved_reply=($reply) |               saved_reply=($reply) | ||||||
|               _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,end_pos] |               _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,end_pos] | ||||||
|  |               ret=$? | ||||||
|               (( i += REPLY )) |               (( i += REPLY )) | ||||||
|               reply=($saved_reply $j $(( start_pos + i )) command-substitution $reply) |               reply=( | ||||||
|  |                 $saved_reply | ||||||
|  |                 $j $(( start_pos + i )) command-substitution | ||||||
|  |                 $j $(( j + 2 )) command-substitution-delimiter | ||||||
|  |                 $reply | ||||||
|  |               ) | ||||||
|  |               if (( ret == 0 )); then | ||||||
|  |                 reply+=($(( start_pos + i - 1 )) $(( start_pos + i )) command-substitution-delimiter) | ||||||
|  |               fi | ||||||
|               continue |               continue | ||||||
|             else |             else | ||||||
|               continue |               continue | ||||||
|  | @ -1124,11 +1164,9 @@ _zsh_highlight_main_highlighter_highlight_backtick() | ||||||
|   # offset is a count of consumed \ (the delta between buf and arg). |   # offset is a count of consumed \ (the delta between buf and arg). | ||||||
|   # offsets is an array indexed by buf offset of when the delta between buf and arg changes. |   # offsets is an array indexed by buf offset of when the delta between buf and arg changes. | ||||||
|   #     It is sparse, so search backwards to the last value |   #     It is sparse, so search backwards to the last value | ||||||
|   # unclosed is an array of one highlight to append to reply if this back-quoted-argument |   local buf highlight style=back-quoted-argument-unclosed style_end | ||||||
|   #     is closed and there is an unclosed back-quoted-argument in buf. |  | ||||||
|   local buf highlight style=back-quoted-argument-unclosed |  | ||||||
|   local -i arg1=$1 end_ i=$1 last offset=0 start subshell_has_end=0 |   local -i arg1=$1 end_ i=$1 last offset=0 start subshell_has_end=0 | ||||||
|   local -a highlight_zone highlights offsets unclosed |   local -a highlight_zone highlights offsets | ||||||
|   reply=() |   reply=() | ||||||
| 
 | 
 | ||||||
|   last=$(( arg1 + 1 )) |   last=$(( arg1 + 1 )) | ||||||
|  | @ -1155,6 +1193,7 @@ _zsh_highlight_main_highlighter_highlight_backtick() | ||||||
|       fi |       fi | ||||||
|     else # it's an unquoted ` and this is the end |     else # it's an unquoted ` and this is the end | ||||||
|       style=back-quoted-argument |       style=back-quoted-argument | ||||||
|  |       style_end=back-quoted-argument-delimiter | ||||||
|       buf=$buf$arg[last,i-1] |       buf=$buf$arg[last,i-1] | ||||||
|       offsets[i-arg1-offset]='' # So we never index past the end |       offsets[i-arg1-offset]='' # So we never index past the end | ||||||
|       break |       break | ||||||
|  | @ -1171,11 +1210,18 @@ _zsh_highlight_main_highlighter_highlight_backtick() | ||||||
|     highlights+=($start $end_ $highlight) |     highlights+=($start $end_ $highlight) | ||||||
|     if [[ $highlight == back-quoted-argument-unclosed && $style == back-quoted-argument ]]; then |     if [[ $highlight == back-quoted-argument-unclosed && $style == back-quoted-argument ]]; then | ||||||
|       # An inner backtick command substitution is unclosed, but this level is closed |       # An inner backtick command substitution is unclosed, but this level is closed | ||||||
|       unclosed=($(( start_pos + i - 1)) $(( start_pos + i )) unknown-token) |       style_end=unknown-token | ||||||
|     fi |     fi | ||||||
|   done |   done | ||||||
| 
 | 
 | ||||||
|   reply=($(( start_pos + arg1 - 1 )) $(( start_pos + i )) $style $highlights $unclosed) |   reply=( | ||||||
|  |     $(( start_pos + arg1 - 1 )) $(( start_pos + i )) $style | ||||||
|  |     $(( start_pos + arg1 - 1 )) $(( start_pos + arg1 )) back-quoted-argument-delimiter | ||||||
|  |     $highlights | ||||||
|  |   ) | ||||||
|  |   if (( $#style_end )); then | ||||||
|  |     reply+=($(( start_pos + i - 1)) $(( start_pos + i )) $style_end) | ||||||
|  |   fi | ||||||
|   REPLY=$i |   REPLY=$i | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -33,17 +33,24 @@ expected_region_highlight=( | ||||||
|   "1 4 builtin" # echo |   "1 4 builtin" # echo | ||||||
|   "6 18 default" # `echo \`42\`` |   "6 18 default" # `echo \`42\`` | ||||||
|   "6 18 back-quoted-argument" # `echo \`42\`` |   "6 18 back-quoted-argument" # `echo \`42\`` | ||||||
|  |   "6 6 back-quoted-argument-delimiter" # ` | ||||||
|   "7 10 builtin" # echo |   "7 10 builtin" # echo | ||||||
|   "12 17 default" # \`42\` |   "12 17 default" # \`42\` | ||||||
|   "12 17 back-quoted-argument" # \`42\` |   "12 17 back-quoted-argument" # \`42\` | ||||||
|  |   "12 13 back-quoted-argument-delimiter" # \` | ||||||
|   "14 15 unknown-token" # 42 |   "14 15 unknown-token" # 42 | ||||||
|  |   "16 17 back-quoted-argument-delimiter" # \` | ||||||
|  |   "18 18 back-quoted-argument-delimiter" # ` | ||||||
|   "20 39 default" # "is `echo equal` to" |   "20 39 default" # "is `echo equal` to" | ||||||
|   "20 39 double-quoted-argument" # "is `echo equal` to" |   "20 39 double-quoted-argument" # "is `echo equal` to" | ||||||
|   "24 35 back-quoted-argument" # `echo equal` |   "24 35 back-quoted-argument" # `echo equal` | ||||||
|  |   "24 24 back-quoted-argument-delimiter" # ` | ||||||
|   "25 28 builtin" # echo |   "25 28 builtin" # echo | ||||||
|   "30 34 default" # equal |   "30 34 default" # equal | ||||||
|  |   "35 35 back-quoted-argument-delimiter" # ` | ||||||
|   "41 55 default" # `echo 6 times 9 |   "41 55 default" # `echo 6 times 9 | ||||||
|   "41 55 back-quoted-argument-unclosed" # `echo 6 times 9 |   "41 55 back-quoted-argument-unclosed" # `echo 6 times 9 | ||||||
|  |   "41 41 back-quoted-argument-delimiter" # ` | ||||||
|   "42 45 builtin" # echo |   "42 45 builtin" # echo | ||||||
|   "47 47 default" # 6 |   "47 47 default" # 6 | ||||||
|   "49 53 default" # times |   "49 53 default" # times | ||||||
|  |  | ||||||
|  | @ -34,7 +34,9 @@ expected_region_highlight=( | ||||||
|   '1 15 assign' # foo=$(echo bar) |   '1 15 assign' # foo=$(echo bar) | ||||||
|   '5 15 default' # $(echo bar) |   '5 15 default' # $(echo bar) | ||||||
|   '5 15 command-substitution' # $(echo bar) |   '5 15 command-substitution' # $(echo bar) | ||||||
|  |   '5 6 command-substitution-delimiter' # $( | ||||||
|   '7 10 builtin' # echo |   '7 10 builtin' # echo | ||||||
|   '12 14 default' # bar |   '12 14 default' # bar | ||||||
|  |   '15 15 command-substitution-delimiter' # ) | ||||||
|   '17 17 builtin' # : |   '17 17 builtin' # : | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -34,6 +34,7 @@ expected_region_highlight=( | ||||||
|   '1 1 builtin' # : |   '1 1 builtin' # : | ||||||
|   '3 15 default' # foo$(echo bar |   '3 15 default' # foo$(echo bar | ||||||
|   '6 15 command-substitution' # $(echo bar |   '6 15 command-substitution' # $(echo bar | ||||||
|  |   '6 7 command-substitution-delimiter' # $( | ||||||
|   '8 11 builtin' # echo |   '8 11 builtin' # echo | ||||||
|   '13 15 default' # bar |   '13 15 default' # bar | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -36,27 +36,35 @@ expected_region_highlight=( | ||||||
|   '1 4 builtin' # echo |   '1 4 builtin' # echo | ||||||
|   '6 113 default' # Ph\'ng`echo lui "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn` |   '6 113 default' # Ph\'ng`echo lui "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn` | ||||||
|   '12 113 back-quoted-argument' # `echo lui "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn` |   '12 113 back-quoted-argument' # `echo lui "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn` | ||||||
|  |   '12 12 back-quoted-argument-delimiter' # ` | ||||||
|   '13 16 builtin' # echo |   '13 16 builtin' # echo | ||||||
|   '18 20 default' # lui |   '18 20 default' # lui | ||||||
|   '22 112 default' # "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn |   '22 112 default' # "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn | ||||||
|   '22 25 double-quoted-argument' # "mg" |   '22 25 double-quoted-argument' # "mg" | ||||||
|   '26 112 back-quoted-argument-unclosed' # \`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn |   '26 112 back-quoted-argument-unclosed' # \`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn | ||||||
|  |   '26 27 back-quoted-argument-delimiter' # \` | ||||||
|   '28 31 builtin' # echo |   '28 31 builtin' # echo | ||||||
|   '33 40 default' # lw\'nafh |   '33 40 default' # lw\'nafh | ||||||
|   '42 62 default' # \\\`echo Cthu"lhu\\\` |   '42 62 default' # \\\`echo Cthu"lhu\\\` | ||||||
|   '42 62 back-quoted-argument' # \\\`echo Cthu"lhu\\\` |   '42 62 back-quoted-argument' # \\\`echo Cthu"lhu\\\` | ||||||
|  |   '42 45 back-quoted-argument-delimiter' # \\\` | ||||||
|   '46 49 builtin' # echo |   '46 49 builtin' # echo | ||||||
|   '51 58 default' # Cthu"lhu |   '51 58 default' # Cthu"lhu | ||||||
|   '55 58 double-quoted-argument-unclosed' # "lhu |   '55 58 double-quoted-argument-unclosed' # "lhu | ||||||
|  |   '59 62 back-quoted-argument-delimiter' # \\\` | ||||||
|   '64 112 default' # R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn |   '64 112 default' # R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn | ||||||
|   '70 109 command-substitution' # $(echo eh wag\\\`echo h\'nag\\\`'l' fht) |   '70 109 command-substitution' # $(echo eh wag\\\`echo h\'nag\\\`'l' fht) | ||||||
|  |   '70 71 command-substitution-delimiter' # $( | ||||||
|   '72 75 builtin' # echo |   '72 75 builtin' # echo | ||||||
|   '77 78 default' # eh |   '77 78 default' # eh | ||||||
|   '80 104 default' # wag\\\`echo h\'nag\\\`'l' |   '80 104 default' # wag\\\`echo h\'nag\\\`'l' | ||||||
|   '83 101 back-quoted-argument' # \\\`echo h\'nag\\\` |   '83 101 back-quoted-argument' # \\\`echo h\'nag\\\` | ||||||
|  |   '83 86 back-quoted-argument-delimiter' # \\\` | ||||||
|   '87 90 builtin' # echo |   '87 90 builtin' # echo | ||||||
|   '92 97 default' # h\'nag |   '92 97 default' # h\'nag | ||||||
|  |   '98 101 back-quoted-argument-delimiter' # \\\` | ||||||
|   '102 104 single-quoted-argument' # 'l' |   '102 104 single-quoted-argument' # 'l' | ||||||
|   '106 108 default' # fht |   '106 108 default' # fht | ||||||
|  |   '109 109 command-substitution-delimiter' # ) | ||||||
|   '113 113 unknown-token' # ` |   '113 113 unknown-token' # ` | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -35,5 +35,7 @@ expected_region_highlight=( | ||||||
|   '3 8 default' # "$(:)" |   '3 8 default' # "$(:)" | ||||||
|   '3 8 double-quoted-argument' # "$(:)" |   '3 8 double-quoted-argument' # "$(:)" | ||||||
|   '4 7 command-substitution' # $(:) |   '4 7 command-substitution' # $(:) | ||||||
|  |   '4 5 command-substitution-delimiter' # $( | ||||||
|   '6 6 builtin' # : |   '6 6 builtin' # : | ||||||
|  |   '7 7 command-substitution-delimiter' # ) | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -34,6 +34,8 @@ expected_region_highlight=( | ||||||
|   '1 1 builtin' # : |   '1 1 builtin' # : | ||||||
|   '3 9 default' # =(<foo) |   '3 9 default' # =(<foo) | ||||||
|   '3 9 process-substitution' # =(<foo) |   '3 9 process-substitution' # =(<foo) | ||||||
|  |   '3 4 process-substitution-delimiter' # =( | ||||||
|   '5 5 redirection' # <foo |   '5 5 redirection' # <foo | ||||||
|   '6 8 default' # foo |   '6 8 default' # foo | ||||||
|  |   '9 9 process-substitution-delimiter' # ) | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -34,8 +34,10 @@ expected_region_highlight=( | ||||||
|   '1 1 builtin' # : |   '1 1 builtin' # : | ||||||
|   '3 19 double-hyphen-option' # --foo=<(echo bar) |   '3 19 double-hyphen-option' # --foo=<(echo bar) | ||||||
|   '9 19 process-substitution' # <(echo bar) |   '9 19 process-substitution' # <(echo bar) | ||||||
|  |   '9 10 process-substitution-delimiter' # <( | ||||||
|   '11 14 builtin' # echo |   '11 14 builtin' # echo | ||||||
|   '16 18 default' # bar |   '16 18 default' # bar | ||||||
|  |   '19 19 process-substitution-delimiter' # ) | ||||||
|   '21 26 default' # "<(:)" |   '21 26 default' # "<(:)" | ||||||
|   '21 26 double-quoted-argument' # "<(:)" |   '21 26 double-quoted-argument' # "<(:)" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -34,14 +34,17 @@ expected_region_highlight=( | ||||||
|   '1 4 builtin' # echo |   '1 4 builtin' # echo | ||||||
|   '6 9 default' # =(:) |   '6 9 default' # =(:) | ||||||
|   '6 9 process-substitution' # =(:) |   '6 9 process-substitution' # =(:) | ||||||
|  |   '6 7 process-substitution-delimiter' # =( | ||||||
|   '8 8 builtin' # : |   '8 8 builtin' # : | ||||||
|  |   '9 9 process-substitution-delimiter' # ) | ||||||
|   '11 15 default' # a=(:) |   '11 15 default' # a=(:) | ||||||
|   '17 26 default' # =(echo foo |   '17 26 default' # =(echo foo | ||||||
|   '17 26 process-substitution' # =(echo foo |   '17 26 process-substitution' # =(echo foo | ||||||
|  |   '17 18 process-substitution-delimiter' # =( | ||||||
|   '19 22 builtin' # echo |   '19 22 builtin' # echo | ||||||
|   '24 26 default' # foo |   '24 26 default' # foo | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| if [[ ${(z):-'$('} == '$( ' ]]; then # ignore zsh 5.0.8 bug | if [[ ${(z):-'$('} == '$( ' ]]; then # ignore zsh 5.0.8 bug | ||||||
|   expected_region_highlight[6]='17 27 default' # =(echo foo |   expected_region_highlight[8]='17 27 default' # =(echo foo | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | @ -34,6 +34,8 @@ expected_region_highlight=( | ||||||
|   '1 1 builtin' # : |   '1 1 builtin' # : | ||||||
|   '3 9 default' # $(<foo) |   '3 9 default' # $(<foo) | ||||||
|   '3 9 command-substitution' # $(<foo) |   '3 9 command-substitution' # $(<foo) | ||||||
|  |   '3 4 command-substitution-delimiter' # $( | ||||||
|   '5 5 redirection' # < |   '5 5 redirection' # < | ||||||
|   '6 8 default' # foo |   '6 8 default' # foo | ||||||
|  |   '9 9 command-substitution-delimiter' # ) | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -33,7 +33,9 @@ expected_region_highlight=( | ||||||
|   "1 2 command" # ls |   "1 2 command" # ls | ||||||
|   "4 8 default" # >(wc) |   "4 8 default" # >(wc) | ||||||
|   "4 8 process-substitution" # >(wc) |   "4 8 process-substitution" # >(wc) | ||||||
|  |   "4 5 process-substitution-delimiter" # >( | ||||||
|   "6 7 command" # wc |   "6 7 command" # wc | ||||||
|  |   "8 8 process-substitution-delimiter" # ) | ||||||
|   "10 10 commandseparator" # | |   "10 10 commandseparator" # | | ||||||
|   "12 13 command" # nl |   "12 13 command" # nl | ||||||
| ) | ) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue