'main': Highlight lone '!' correctly: it's not a history expansion.
While here, also add a test for the '!' reserved word (which is highlighted
since c216242b).
			
			
This commit is contained in:
		
							parent
							
								
									e635f766be
								
							
						
					
					
						commit
						4c23a2fd1b
					
				|  | @ -342,7 +342,9 @@ _zsh_highlight_main_highlighter() | ||||||
|                             # (For array assignments, the command doesn't start until the ")" token.) |                             # (For array assignments, the command doesn't start until the ")" token.) | ||||||
|                             next_word+=':start:' |                             next_word+=':start:' | ||||||
|                           fi |                           fi | ||||||
|                         elif [[ $arg[0,1] == $histchars[0,1] || $arg[0,1] == $histchars[2,2] ]]; then |                         elif [[ $arg[0,1] = $histchars[0,1] ]] && (( $#arg[0,2] == 2 )); then | ||||||
|  |                           style=$ZSH_HIGHLIGHT_STYLES[history-expansion] | ||||||
|  |                         elif [[ $arg[0,1] == $histchars[2,2] ]]; then | ||||||
|                           style=$ZSH_HIGHLIGHT_STYLES[history-expansion] |                           style=$ZSH_HIGHLIGHT_STYLES[history-expansion] | ||||||
|                         elif [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR:#"$arg"} ]]; then |                         elif [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR:#"$arg"} ]]; then | ||||||
|                           if [[ $this_word == *':regular:'* ]]; then |                           if [[ $this_word == *':regular:'* ]]; then | ||||||
|  | @ -414,7 +416,7 @@ _zsh_highlight_main_highlighter() | ||||||
|         [*?]*|*[^\\][*?]*) |         [*?]*|*[^\\][*?]*) | ||||||
|                  $highlight_glob && style=$ZSH_HIGHLIGHT_STYLES[globbing] || style=$ZSH_HIGHLIGHT_STYLES[default];; |                  $highlight_glob && style=$ZSH_HIGHLIGHT_STYLES[globbing] || style=$ZSH_HIGHLIGHT_STYLES[default];; | ||||||
|         *)       if false; then |         *)       if false; then | ||||||
|                  elif [[ $arg[0,1] = $histchars[0,1] ]]; then |                  elif [[ $arg[0,1] = $histchars[0,1] ]] && (( $#arg[0,2] == 2 )); then | ||||||
|                    style=$ZSH_HIGHLIGHT_STYLES[history-expansion] |                    style=$ZSH_HIGHLIGHT_STYLES[history-expansion] | ||||||
|                  elif [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR:#"$arg"} ]]; then |                  elif [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR:#"$arg"} ]]; then | ||||||
|                    if [[ $this_word == *':regular:'* ]]; then |                    if [[ $this_word == *':regular:'* ]]; then | ||||||
|  |  | ||||||
|  | @ -28,10 +28,12 @@ | ||||||
| # ------------------------------------------------------------------------------------------------- | # ------------------------------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| ZSH_HIGHLIGHT_STYLES[default]=$unused_highlight | ZSH_HIGHLIGHT_STYLES[default]=$unused_highlight | ||||||
| BUFFER='!foo bar !baz' | BUFFER='!foo bar !baz ! ; !' | ||||||
| 
 | 
 | ||||||
| expected_region_highlight=( | expected_region_highlight=( | ||||||
|   "1 4 $ZSH_HIGHLIGHT_STYLES[history-expansion]" # !foo |   "1 4 $ZSH_HIGHLIGHT_STYLES[history-expansion]" # !foo | ||||||
|   "6 8 $ZSH_HIGHLIGHT_STYLES[default]" # bar |   "6 8 $ZSH_HIGHLIGHT_STYLES[default]" # bar | ||||||
|   "10 13 $ZSH_HIGHLIGHT_STYLES[history-expansion]" # !baz |   "10 13 $ZSH_HIGHLIGHT_STYLES[history-expansion]" # !baz | ||||||
|  |   "15 15 $ZSH_HIGHLIGHT_STYLES[default]" # ! (before the semicolon) | ||||||
|  |   "19 19 $ZSH_HIGHLIGHT_STYLES[reserved-word]" # ! (after the semicolon) | ||||||
| ) | ) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue