mirror of
				https://github.com/zsh-users/zsh-syntax-highlighting.git
				synced 2025-10-30 15:56:28 +08:00 
			
		
		
		
	'main': Highlight backslash escape sequences outside quotes.
Fixes #631. WIP: test expectations should be updated (12 failures including cthulhu)
This commit is contained in:
		
							parent
							
								
									6fd92e1bbd
								
							
						
					
					
						commit
						c8f5d10dfe
					
				| @ -56,6 +56,7 @@ This highlighter defines the following styles: | |||||||
| * `dollar-quoted-argument-unclosed` - unclosed dollar-quoted arguments (`` $'foo ``) | * `dollar-quoted-argument-unclosed` - unclosed dollar-quoted arguments (`` $'foo ``) | ||||||
| * `rc-quote` - two single quotes inside single quotes when the `RC_QUOTES` option is set (`` 'foo''bar' ``) | * `rc-quote` - two single quotes inside single quotes when the `RC_QUOTES` option is set (`` 'foo''bar' ``) | ||||||
| * `dollar-double-quoted-argument` - parameter expansion inside double quotes (`$foo` inside `""`) | * `dollar-double-quoted-argument` - parameter expansion inside double quotes (`$foo` inside `""`) | ||||||
|  | * `back-un-quoted-argument` -  backslash escape sequences outside quotes (`\"` in `print -r \"bar\"`) | ||||||
| * `back-double-quoted-argument` -  backslash escape sequences inside double-quoted arguments (`\"` in `"foo\"bar"`) | * `back-double-quoted-argument` -  backslash escape sequences inside double-quoted arguments (`\"` in `"foo\"bar"`) | ||||||
| * `back-dollar-quoted-argument` -  backslash escape sequences inside dollar-quoted arguments (`\x` in `$'\x48'`) | * `back-dollar-quoted-argument` -  backslash escape sequences inside dollar-quoted arguments (`\x` in `$'\x48'`) | ||||||
| * `assign` - parameter assignments (`x=foo` and `x=( )`) | * `assign` - parameter assignments (`x=foo` and `x=( )`) | ||||||
|  | |||||||
| @ -55,6 +55,7 @@ | |||||||
| : ${ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]:=fg=yellow} | : ${ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]:=fg=yellow} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[rc-quote]:=fg=cyan} | : ${ZSH_HIGHLIGHT_STYLES[rc-quote]:=fg=cyan} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]:=fg=cyan} | : ${ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]:=fg=cyan} | ||||||
|  | : ${ZSH_HIGHLIGHT_STYLES[back-un-quoted-argument]:=fg=cyan} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]:=fg=cyan} | : ${ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]:=fg=cyan} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]:=fg=cyan} | : ${ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]:=fg=cyan} | ||||||
| : ${ZSH_HIGHLIGHT_STYLES[assign]:=none} | : ${ZSH_HIGHLIGHT_STYLES[assign]:=none} | ||||||
| @ -1328,7 +1329,13 @@ _zsh_highlight_main_highlighter_highlight_argument() | |||||||
|     i=${arg[(ib.i.)[\\\'\"\`\$\<\>\*\?]]} |     i=${arg[(ib.i.)[\\\'\"\`\$\<\>\*\?]]} | ||||||
|     case "$arg[$i]" in |     case "$arg[$i]" in | ||||||
|       "") break;; |       "") break;; | ||||||
|       "\\") (( i += 1 )); continue;; |       "\\")  | ||||||
|  |         highlights+=( | ||||||
|  |           $(( start_pos + i - 1 )) $((start_pos + i + 1)) back-un-quoted-argument | ||||||
|  |         ) | ||||||
|  |         (( i += 1 )) | ||||||
|  |         continue | ||||||
|  |         ;; | ||||||
|       "'") |       "'") | ||||||
|         _zsh_highlight_main_highlighter_highlight_single_quote $i |         _zsh_highlight_main_highlighter_highlight_single_quote $i | ||||||
|         (( i = REPLY )) |         (( i = REPLY )) | ||||||
|  | |||||||
| @ -34,4 +34,5 @@ expected_region_highlight=( | |||||||
|   '1 4 builtin' # echo |   '1 4 builtin' # echo | ||||||
|   '6 18 default "issue #705"' # foo\\\nbar"baz" |   '6 18 default "issue #705"' # foo\\\nbar"baz" | ||||||
|   '14 18 double-quoted-argument "issue #705"' # "baz" |   '14 18 double-quoted-argument "issue #705"' # "baz" | ||||||
|  |   # TODO: when fixing this, see if we can highlight the backslash-newline sequence as a comment. | ||||||
| ) | ) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Daniel Shahaf
						Daniel Shahaf