mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			119 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			119 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:	Z shell (zsh) | ||
|  | " Maintainer:	Felix von Leitner <leitner@math.fu-berlin.de> | ||
|  | " Heavily based on sh.vim by Lennart Schultz | ||
|  | " Last Change:	2003 May 11 | ||
|  | 
 | ||
|  | " For version 5.x: Clear all syntax items | ||
|  | " For version 6.x: Quit when a syntax file was already loaded | ||
|  | if version < 600 | ||
|  |   syntax clear | ||
|  | elseif exists("b:current_syntax") | ||
|  |   finish | ||
|  | endif | ||
|  | 
 | ||
|  | " String and Character contstants | ||
|  | " Highlight special characters (those which have a backslash) differently | ||
|  | syn match   zshSpecial	"\\\d\d\d\|\\[abcfnrtv\\']" | ||
|  | syn region	zshSinglequote	start=+'+ skip=+\\'+ end=+'+ | ||
|  | " A bunch of useful zsh keywords | ||
|  | " syn keyword	zshFunction	function | ||
|  | syn keyword	zshStatement	bg break cd chdir continue echo eval exec | ||
|  | syn keyword	zshStatement	exit export fg getopts hash jobs kill | ||
|  | syn keyword	zshStatement	pwd read readonly return set zshift function | ||
|  | syn keyword	zshStatement	stop suspend test times trap type ulimit | ||
|  | syn keyword	zshStatement	umask unset wait setopt compctl source | ||
|  | syn keyword	zshStatement	whence disown shift which unhash unalias | ||
|  | syn keyword	zshStatement	alias functions unfunction getln disable | ||
|  | syn keyword	zshStatement	vared getopt enable unsetopt autoload | ||
|  | syn keyword	zshStatement	bindkey pushln command limit unlimit fc | ||
|  | syn keyword	zshStatement	print builtin noglob sched r time | ||
|  | syn keyword	zshStatement	typeset declare local integer | ||
|  | 
 | ||
|  | syn keyword	zshConditional	if else esac case then elif fi in | ||
|  | syn keyword	zshRepeat	while for do done | ||
|  | 
 | ||
|  | " Following is worth to notice: command substitution, file redirection and functions (so these features turns red) | ||
|  | syn match	zshFunctionName	"\h\w*\s*()" | ||
|  | syn region	zshCommandSub	start=+`+ skip=+\\`+ end=+`+ | ||
|  | " contains=ALLBUT,zshFunction | ||
|  | syn match	zshRedir	"\d\=\(<\|<<\|>\|>>\)\(|\|&\d\)\=" | ||
|  | 
 | ||
|  | syn keyword	zshTodo contained TODO | ||
|  | 
 | ||
|  | syn keyword	zshShellVariables	USER LOGNAME HOME PATH CDPATH SHELL | ||
|  | syn keyword	zshShellVariables	LC_TYPE LC_MESSAGE MAIL MAILCHECK | ||
|  | syn keyword	zshShellVariables	PS1 PS2 IFS EGID EUID ERRNO GID UID | ||
|  | syn keyword	zshShellVariables	HOST LINENO MACHTYPE OLDPWD OPTARG | ||
|  | syn keyword	zshShellVariables	OPTIND OSTYPE PPID PWD RANDOM SECONDS | ||
|  | syn keyword	zshShellVariables	SHLVL TTY signals TTYIDLE USERNAME | ||
|  | syn keyword	zshShellVariables	VENDOR ZSH_NAME ZSH_VERSION ARGV0 | ||
|  | syn keyword	zshShellVariables	BAUD COLUMNS cdpath DIRSTACKSIZE | ||
|  | syn keyword	zshShellVariables	FCEDIT fignore fpath histchars HISTCHARS | ||
|  | syn keyword	zshShellVariables	HISTFILE HISTSIZE KEYTIMEOUT LANG | ||
|  | syn keyword	zshShellVariables	LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES | ||
|  | syn keyword	zshShellVariables	LC_TIME LINES LISTMAX LOGCHECK mailpath | ||
|  | syn keyword	zshShellVariables	MAILPATH MANPATH manpath module_path | ||
|  | syn keyword	zshShellVariables	MODULE_PATH NULLCMD path POSTEDIT | ||
|  | syn keyword	zshShellVariables	PS3 PS4 PROMPT PROMPT2 PROMPT3 PROMPT4 | ||
|  | syn keyword	zshShellVariables	psvar PSVAR prompt READNULLCMD | ||
|  | syn keyword	zshShellVariables	REPORTTIME RPROMPT RPS1 SAVEHIST | ||
|  | syn keyword	zshShellVariables	SPROMPT STTY TIMEFMT TMOUT TMPPREFIX | ||
|  | syn keyword	zshShellVariables	watch WATCH WATCHFMT WORDCHARS ZDOTDIR | ||
|  | syn match	zshSpecialShellVar	"\$[-#@*$?!0-9]" | ||
|  | syn keyword	zshSetVariables		ignoreeof noclobber | ||
|  | syn region	zshDerefOpr	start="\${" end="}" contains=zshShellVariables | ||
|  | syn match	zshDerefIdentifier	"\$[a-zA-Z_][a-zA-Z0-9_]*\>" | ||
|  | syn match	zshOperator		"[][}{&;|)(]" | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | syn match  zshNumber		"-\=\<\d\+\>" | ||
|  | syn match  zshComment	"#.*$" contains=zshNumber,zshTodo | ||
|  | 
 | ||
|  | 
 | ||
|  | syn match zshTestOpr	"-\<[oeaznlg][tfqet]\=\>\|!\==\|-\<[b-gkLprsStuwjxOG]\>" | ||
|  | "syn region zshTest	      start="\[" skip="\\$" end="\]" contains=zshString,zshTestOpr,zshDerefIdentifier,zshDerefOpr | ||
|  | syn region  zshString	start=+"+  skip=+\\"+  end=+"+  contains=zshSpecial,zshOperator,zshDerefIdentifier,zshDerefOpr,zshSpecialShellVar,zshSinglequote,zshCommandSub | ||
|  | 
 | ||
|  | " Define the default highlighting. | ||
|  | " For version 5.7 and earlier: only when not done already | ||
|  | " For version 5.8 and later: only when an item doesn't have highlighting yet | ||
|  | if version >= 508 || !exists("did_zsh_syntax_inits") | ||
|  |   if version < 508 | ||
|  |     let did_zsh_syntax_inits = 1 | ||
|  |     command -nargs=+ HiLink hi link <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   endif | ||
|  | 
 | ||
|  |   HiLink zshSinglequote		zshString | ||
|  |   HiLink zshConditional		zshStatement | ||
|  |   HiLink zshRepeat		zshStatement | ||
|  |   HiLink zshFunctionName	zshFunction | ||
|  |   HiLink zshCommandSub		zshOperator | ||
|  |   HiLink zshRedir		zshOperator | ||
|  |   HiLink zshSetVariables	zshShellVariables | ||
|  |   HiLink zshSpecialShellVar	zshShellVariables | ||
|  |   HiLink zshTestOpr		zshOperator | ||
|  |   HiLink zshDerefOpr		zshSpecial | ||
|  |   HiLink zshDerefIdentifier	zshShellVariables | ||
|  |   HiLink zshOperator		Operator | ||
|  |   HiLink zshStatement		Statement | ||
|  |   HiLink zshNumber		Number | ||
|  |   HiLink zshString		String | ||
|  |   HiLink zshComment		Comment | ||
|  |   HiLink zshSpecial		Special | ||
|  |   HiLink zshTodo		Todo | ||
|  |   HiLink zshShellVariables	Special | ||
|  | "  hi zshOperator		term=underline ctermfg=6 guifg=Purple gui=bold | ||
|  | "  hi zshShellVariables	term=underline ctermfg=2 guifg=SeaGreen gui=bold | ||
|  | "  hi zshFunction		term=bold ctermbg=1 guifg=Red | ||
|  | 
 | ||
|  |   delcommand HiLink | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "zsh" | ||
|  | 
 | ||
|  | " vim: ts=8 |