main: Simplify interface to __stack_pop
This commit is contained in:
		
							parent
							
								
									b1eb0358fa
								
							
						
					
					
						commit
						49cc5e25b8
					
				|  | @ -198,13 +198,18 @@ _zsh_highlight_main__resolve_alias() { | ||||||
| # the style according to $2; otherwise, set style=unknown-token. | # the style according to $2; otherwise, set style=unknown-token. | ||||||
| # | # | ||||||
| # $1: character expected to be at the top of $braces_stack | # $1: character expected to be at the top of $braces_stack | ||||||
| # $2: assignment to execute it if matches | # $2: optional assignment to style it if matches | ||||||
|  | # return value is 0 if there is a match else 1 | ||||||
| _zsh_highlight_main__stack_pop() { | _zsh_highlight_main__stack_pop() { | ||||||
|   if [[ $braces_stack[1] == $1 ]]; then |   if [[ $braces_stack[1] == $1 ]]; then | ||||||
|     braces_stack=${braces_stack:1} |     braces_stack=${braces_stack:1} | ||||||
|     eval "$2" |     if (( $+2 )); then | ||||||
|  |       style=$2 | ||||||
|  |     fi | ||||||
|  |     return 0 | ||||||
|   else |   else | ||||||
|     style=unknown-token |     style=unknown-token | ||||||
|  |     return 1 | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -512,7 +517,7 @@ _zsh_highlight_highlighter_main_paint() | ||||||
|                             ;; |                             ;; | ||||||
|                           ($'\x7d') |                           ($'\x7d') | ||||||
|                             # We're at command word, so no need to check $right_brace_is_recognised_everywhere |                             # We're at command word, so no need to check $right_brace_is_recognised_everywhere | ||||||
|                             _zsh_highlight_main__stack_pop 'Y' style=reserved-word |                             _zsh_highlight_main__stack_pop 'Y' reserved-word | ||||||
|                             if [[ $style == reserved-word ]]; then |                             if [[ $style == reserved-word ]]; then | ||||||
|                               next_word+=':always:' |                               next_word+=':always:' | ||||||
|                             fi |                             fi | ||||||
|  | @ -521,13 +526,13 @@ _zsh_highlight_highlighter_main_paint() | ||||||
|                             braces_stack='D'"$braces_stack" |                             braces_stack='D'"$braces_stack" | ||||||
|                             ;; |                             ;; | ||||||
|                           ('done') |                           ('done') | ||||||
|                             _zsh_highlight_main__stack_pop 'D' style=reserved-word |                             _zsh_highlight_main__stack_pop 'D' reserved-word | ||||||
|                             ;; |                             ;; | ||||||
|                           ('if') |                           ('if') | ||||||
|                             braces_stack=':?'"$braces_stack" |                             braces_stack=':?'"$braces_stack" | ||||||
|                             ;; |                             ;; | ||||||
|                           ('then') |                           ('then') | ||||||
|                             _zsh_highlight_main__stack_pop ':' style=reserved-word |                             _zsh_highlight_main__stack_pop ':' reserved-word | ||||||
|                             ;; |                             ;; | ||||||
|                           ('elif') |                           ('elif') | ||||||
|                             if [[ ${braces_stack[1]} == '?' ]]; then |                             if [[ ${braces_stack[1]} == '?' ]]; then | ||||||
|  | @ -544,13 +549,13 @@ _zsh_highlight_highlighter_main_paint() | ||||||
|                             fi |                             fi | ||||||
|                             ;; |                             ;; | ||||||
|                           ('fi') |                           ('fi') | ||||||
|                             _zsh_highlight_main__stack_pop '?' "" |                             _zsh_highlight_main__stack_pop '?' | ||||||
|                             ;; |                             ;; | ||||||
|                           ('foreach') |                           ('foreach') | ||||||
|                             braces_stack='$'"$braces_stack" |                             braces_stack='$'"$braces_stack" | ||||||
|                             ;; |                             ;; | ||||||
|                           ('end') |                           ('end') | ||||||
|                             _zsh_highlight_main__stack_pop '$' style=reserved-word |                             _zsh_highlight_main__stack_pop '$' reserved-word | ||||||
|                             ;; |                             ;; | ||||||
|                         esac |                         esac | ||||||
|                         ;; |                         ;; | ||||||
|  | @ -633,7 +638,7 @@ _zsh_highlight_highlighter_main_paint() | ||||||
|                           braces_stack='R'"$braces_stack" |                           braces_stack='R'"$braces_stack" | ||||||
|                         elif [[ $arg == $'\x29' ]]; then |                         elif [[ $arg == $'\x29' ]]; then | ||||||
|                           # end of subshell |                           # end of subshell | ||||||
|                           _zsh_highlight_main__stack_pop 'R' style=reserved-word |                           _zsh_highlight_main__stack_pop 'R' reserved-word | ||||||
|                         else |                         else | ||||||
|                           if _zsh_highlight_main_highlighter_check_path; then |                           if _zsh_highlight_main_highlighter_check_path; then | ||||||
|                             style=$REPLY |                             style=$REPLY | ||||||
|  | @ -658,7 +663,7 @@ _zsh_highlight_highlighter_main_paint() | ||||||
|                    in_array_assignment=false |                    in_array_assignment=false | ||||||
|                    next_word+=':start:' |                    next_word+=':start:' | ||||||
|                  else |                  else | ||||||
|                    _zsh_highlight_main__stack_pop 'R' style=reserved-word |                    _zsh_highlight_main__stack_pop 'R' reserved-word | ||||||
|                  fi;; |                  fi;; | ||||||
|         $'\x28\x29') # possibly a function definition |         $'\x28\x29') # possibly a function definition | ||||||
|                  if [[ $zsyh_user_options[multifuncdef] == on ]] || false # TODO: or if the previous word was a command word |                  if [[ $zsyh_user_options[multifuncdef] == on ]] || false # TODO: or if the previous word was a command word | ||||||
|  | @ -673,7 +678,7 @@ _zsh_highlight_highlighter_main_paint() | ||||||
|                    # |                    # | ||||||
|                    #     Additionally, `tt(})' is recognized in any position if neither the |                    #     Additionally, `tt(})' is recognized in any position if neither the | ||||||
|                    #     tt(IGNORE_BRACES) option nor the tt(IGNORE_CLOSE_BRACES) option is set. |                    #     tt(IGNORE_BRACES) option nor the tt(IGNORE_CLOSE_BRACES) option is set. | ||||||
|                    _zsh_highlight_main__stack_pop 'Y' style=reserved-word |                    _zsh_highlight_main__stack_pop 'Y' reserved-word | ||||||
|                    if [[ $style == reserved-word ]]; then |                    if [[ $style == reserved-word ]]; then | ||||||
|                      next_word+=':always:' |                      next_word+=':always:' | ||||||
|                    fi |                    fi | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue