'main': Don't run `_zsh_highlight_main__type` on every non-command word.
Fixes #728, the performance regression from 0.7.1.
This commit is contained in:
		
							parent
							
								
									343ec1061f
								
							
						
					
					
						commit
						06710f3780
					
				|  | @ -273,6 +273,18 @@ _zsh_highlight_main__resolve_alias() { | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | # Return true iff $1 is a global alias | ||||||
|  | _zsh_highlight_main__is_global_alias() { | ||||||
|  |   if zmodload -e zsh/parameter; then | ||||||
|  |     (( ${+galiases[$arg]} )) | ||||||
|  |   elif [[ $arg == '='* ]]; then | ||||||
|  |     # avoid running into «alias -L '=foo'» erroring out with 'bad assignment' | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     alias -L -g -- "$1" >/dev/null | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
| # Check that the top of $braces_stack has the expected value.  If it does, set | # Check that the top of $braces_stack has the expected value.  If it does, set | ||||||
| # the style according to $2; otherwise, set style=unknown-token. | # the style according to $2; otherwise, set style=unknown-token. | ||||||
| # | # | ||||||
|  | @ -1061,7 +1073,7 @@ _zsh_highlight_main_highlighter_highlight_list() | ||||||
|       if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW:#"$arg"} ]]; then |       if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW:#"$arg"} ]]; then | ||||||
|         next_word=':start::start_of_pipeline:' |         next_word=':start::start_of_pipeline:' | ||||||
|       fi |       fi | ||||||
|     elif _zsh_highlight_main__type "$arg"; [[ $REPLY == 'global alias' ]]; then # $arg is a global alias that isn't in command position |     elif _zsh_highlight_main__is_global_alias "$arg"; then # $arg is a global alias that isn't in command position | ||||||
|       style=global-alias |       style=global-alias | ||||||
|     else # $arg is a non-command word |     else # $arg is a non-command word | ||||||
|       case $arg in |       case $arg in | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue