Highlight subshells and anonymous functions correctly.
Fixes zsh-users/zsh-syntax-highlighting#166. Fixes zsh-users/zsh-syntax-highlighting#194. Builds upon the issue #207 work.
This commit is contained in:
		
							parent
							
								
									c216242b46
								
							
						
					
					
						commit
						0d1bfbcbfa
					
				|  | @ -101,6 +101,9 @@ _zsh_highlight_main_highlighter() | |||
|   # Tokens that, at (naively-determined) "command position", are followed by | ||||
|   # a de jure command position.  All of these are reserved words. | ||||
|   ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW=( | ||||
|     $'\x7b' # block | ||||
|     $'\x28' # subshell | ||||
|     '()' # anonymous function | ||||
|     'while' | ||||
|     'until' | ||||
|     'if' | ||||
|  | @ -247,6 +250,9 @@ _zsh_highlight_main_highlighter() | |||
|                           style=$ZSH_HIGHLIGHT_STYLES[reserved-word] | ||||
|                           _zsh_highlight_main_add_region_highlight $start_pos $((start_pos + 2)) $style | ||||
|                           already_added=1 | ||||
|                         elif [[ $arg == '()' ]]; then | ||||
|                           # anonymous function | ||||
|                           style=$ZSH_HIGHLIGHT_STYLES[reserved-word] | ||||
|                         else | ||||
|                           if _zsh_highlight_main_highlighter_check_path; then | ||||
|                             style=$ZSH_HIGHLIGHT_STYLES[path] | ||||
|  |  | |||
|  | @ -30,11 +30,11 @@ | |||
| BUFFER='() echo hello; () { echo world }' | ||||
| 
 | ||||
| expected_region_highlight=( | ||||
|   "1 2 $ZSH_HIGHLIGHT_STYLES[reserved-word] 'issue #194'" # ()  | ||||
|   "4 7 $ZSH_HIGHLIGHT_STYLES[command] 'issue #194'" # echo | ||||
|   "1 2 $ZSH_HIGHLIGHT_STYLES[reserved-word]" # ()  | ||||
|   "4 7 $ZSH_HIGHLIGHT_STYLES[command]" # echo | ||||
|   "9 13 $ZSH_HIGHLIGHT_STYLES[default]" # hello | ||||
|   "14 14 $ZSH_HIGHLIGHT_STYLES[commandseparator]" # ; | ||||
|   "16 17 $ZSH_HIGHLIGHT_STYLES[reserved-word] 'issue #194'" # () | ||||
|   "19 19 $ZSH_HIGHLIGHT_STYLES[reserved-word] 'issue #194'" # { | ||||
|   "21 24 $ZSH_HIGHLIGHT_STYLES[command] 'issue #194'" # echo | ||||
|   "16 17 $ZSH_HIGHLIGHT_STYLES[reserved-word]" # () | ||||
|   "19 19 $ZSH_HIGHLIGHT_STYLES[reserved-word]" # { | ||||
|   "21 24 $ZSH_HIGHLIGHT_STYLES[command]" # echo | ||||
| ) | ||||
|  |  | |||
|  | @ -31,6 +31,6 @@ BUFFER='tar cf - * | (cd /target; tar xfp -)' | |||
| 
 | ||||
| expected_region_highlight=( | ||||
|   "1 3 $ZSH_HIGHLIGHT_STYLES[command]" # tar | ||||
|   "15 16 $ZSH_HIGHLIGHT_STYLES[command] 'issue #166'" # cd | ||||
|   "15 16 $ZSH_HIGHLIGHT_STYLES[command]" # cd | ||||
|   "27 29 $ZSH_HIGHLIGHT_STYLES[command]" # tar | ||||
| ) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue