mirror of
				https://github.com/zsh-users/zsh-syntax-highlighting.git
				synced 2025-10-30 15:56:28 +08:00 
			
		
		
		
	Merge 70deca2e2c into 6f1f595e3e
				
					
				
			This commit is contained in:
		
						commit
						dbc33a2ceb
					
				| @ -129,6 +129,18 @@ _zsh_highlight_main_calculate_fallback() { | ||||
|   done | ||||
| } | ||||
| 
 | ||||
| _zsh_highlight_main__test_type_builtin() { | ||||
| 
 | ||||
|   if [[ -n  ${ZSH_HIGHLIGHT_SPECIAL_PATH} ]]; then | ||||
|     if [ "$this_word" = ":sudo_opt::start:" ]; then | ||||
|       # ZSH_HIGHLIGHT_SPECIAL_PATH exist is not empty : "Admin" says that user has access to commands in these paths with sudo | ||||
|       local PATH="${ZSH_HIGHLIGHT_SPECIAL_PATH}" | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   builtin type -w -- $1 | ||||
| } | ||||
| 
 | ||||
| # Get the type of a command. | ||||
| # | ||||
| # Uses the zsh/parameter module if available to avoid forks, and a | ||||
| @ -154,6 +166,24 @@ _zsh_highlight_main__type() { | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   if [[ -v ZSH_HIGHLIGHT_SPECIAL_COMMAND ]]; then | ||||
|     if (( ${ZSH_HIGHLIGHT_SPECIAL_COMMAND[(I)$1]} )); then | ||||
|       # ZSH_HIGHLIGHT_SPECIAL_COMMAND exists : if foo of "sudo foo" is in ZSH_HIGHLIGHT_SPECIAL_COMMAND then "Admin" says that user has access to this command | ||||
|       REPLY=command | ||||
|       return 0 | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   if [[ -v ZSH_HIGHLIGHT_SPECIAL_PATH ]]; then | ||||
|     if [ "$this_word" = ":sudo_opt::start:" ]; then | ||||
|       if [ -z  "${ZSH_HIGHLIGHT_SPECIAL_PATH}" ]; then | ||||
|         # ZSH_HIGHLIGHT_SPECIAL_PATH exist and is empty : "Admin" wants to say that user has no access to sudo : foo in "sudo foo" is red | ||||
|         REPLY=none | ||||
|         return 0 | ||||
|       fi | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   # Main logic | ||||
|   if (( $#options_to_set )); then | ||||
|     setopt localoptions $options_to_set; | ||||
| @ -188,7 +218,7 @@ _zsh_highlight_main__type() { | ||||
|     elif {  [[ $1 != */* ]] || is-at-least 5.3 } && | ||||
|          # Add a subshell to avoid a zsh upstream bug; see issue #606. | ||||
|          # ### Remove the subshell when we stop supporting zsh 5.7.1 (I assume 5.8 will have the bugfix). | ||||
|          ! (builtin type -w -- $1) >/dev/null 2>&1; then | ||||
|          ! (_zsh_highlight_main__test_type_builtin $1) >/dev/null 2>&1; then | ||||
|       REPLY=none | ||||
|     fi | ||||
|   fi | ||||
| @ -203,7 +233,7 @@ _zsh_highlight_main__type() { | ||||
|     # starts with an arithmetic expression [«((…))» as the first thing inside | ||||
|     # «$(…)»], which is area that has had some parsing bugs before 5.6 | ||||
|     # (approximately). | ||||
|     REPLY="${$(:; (( aliases_allowed )) || unalias -- $1 2>/dev/null; LC_ALL=C builtin type -w -- $1 2>/dev/null)##*: }" | ||||
|     REPLY="${$(:; (( aliases_allowed )) || unalias -- $1 2>/dev/null; LC_ALL=C _zsh_highlight_main__test_type_builtin $1 2>/dev/null)##*: }" | ||||
|     if [[ $REPLY == 'alias' ]]; then | ||||
|       may_cache=0 | ||||
|     fi | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Raizo62
						Raizo62