forked from aniani/vim
		
	
		
			
	
	
		
			213 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			213 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:	Icon | ||
|  | " Maintainer:	Wendell Turner <wendell@adsi-m4.com> | ||
|  | " URL:		ftp://ftp.halcyon.com/pub/users/wturner/icon.vim | ||
|  | " 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 | ||
|  | 
 | ||
|  | syn keyword  iconFunction   abs acos any args asin atan bal | ||
|  | syn keyword  iconFunction   callout center char chdir close collect copy | ||
|  | syn keyword  iconFunction   cos cset delay delete detab display dtor | ||
|  | syn keyword  iconFunction   entab errorclear exit exp find flush function | ||
|  | syn keyword  iconFunction   get getch getche getenv iand icom image | ||
|  | syn keyword  iconFunction   insert integer ior ishift ixor kbhit key | ||
|  | syn keyword  iconFunction   left list loadfunc log many map match | ||
|  | syn keyword  iconFunction   member move name numeric open ord pop | ||
|  | syn keyword  iconFunction   pos proc pull push put read reads | ||
|  | syn keyword  iconFunction   real remove rename repl reverse right rtod | ||
|  | syn keyword  iconFunction   runerr save seek seq set sin sort | ||
|  | syn keyword  iconFunction   sortf sqrt stop string system tab table | ||
|  | syn keyword  iconFunction   tan trim type upto variable where write writes | ||
|  | 
 | ||
|  | " Keywords | ||
|  | syn match iconKeyword "&allocated" | ||
|  | syn match iconKeyword "&ascii" | ||
|  | syn match iconKeyword "&clock" | ||
|  | syn match iconKeyword "&collections" | ||
|  | syn match iconKeyword "&cset" | ||
|  | syn match iconKeyword "¤t" | ||
|  | syn match iconKeyword "&date" | ||
|  | syn match iconKeyword "&dateline" | ||
|  | syn match iconKeyword "&digits" | ||
|  | syn match iconKeyword "&dump" | ||
|  | syn match iconKeyword "&e" | ||
|  | syn match iconKeyword "&error" | ||
|  | syn match iconKeyword "&errornumber" | ||
|  | syn match iconKeyword "&errortext" | ||
|  | syn match iconKeyword "&errorvalue" | ||
|  | syn match iconKeyword "&errout" | ||
|  | syn match iconKeyword "&fail" | ||
|  | syn match iconKeyword "&features" | ||
|  | syn match iconKeyword "&file" | ||
|  | syn match iconKeyword "&host" | ||
|  | syn match iconKeyword "&input" | ||
|  | syn match iconKeyword "&lcase" | ||
|  | syn match iconKeyword "&letters" | ||
|  | syn match iconKeyword "&level" | ||
|  | syn match iconKeyword "&line" | ||
|  | syn match iconKeyword "&main" | ||
|  | syn match iconKeyword "&null" | ||
|  | syn match iconKeyword "&output" | ||
|  | syn match iconKeyword "&phi" | ||
|  | syn match iconKeyword "&pi" | ||
|  | syn match iconKeyword "&pos" | ||
|  | syn match iconKeyword "&progname" | ||
|  | syn match iconKeyword "&random" | ||
|  | syn match iconKeyword "®ions" | ||
|  | syn match iconKeyword "&source" | ||
|  | syn match iconKeyword "&storage" | ||
|  | syn match iconKeyword "&subject" | ||
|  | syn match iconKeyword "&time" | ||
|  | syn match iconKeyword "&trace" | ||
|  | syn match iconKeyword "&ucase" | ||
|  | syn match iconKeyword "&version" | ||
|  | 
 | ||
|  | " Reserved words | ||
|  | syn keyword iconReserved break by case create default do | ||
|  | syn keyword iconReserved else end every fail if | ||
|  | syn keyword iconReserved initial link next not of | ||
|  | syn keyword iconReserved procedure repeat return suspend | ||
|  | syn keyword iconReserved then to until while | ||
|  | 
 | ||
|  | " Storage class reserved words | ||
|  | syn keyword	iconStorageClass	global static local record | ||
|  | 
 | ||
|  | syn keyword	iconTodo	contained TODO FIXME XXX BUG | ||
|  | 
 | ||
|  | " String and Character constants | ||
|  | " Highlight special characters (those which have a backslash) differently | ||
|  | syn match iconSpecial contained "\\x\x\{2}\|\\\o\{3\}\|\\[bdeflnrtv\"\'\\]\|\\^c[a-zA-Z0-9]\|\\$" | ||
|  | syn region	iconString	start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=iconSpecial | ||
|  | syn region	iconCset	start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=iconSpecial | ||
|  | syn match	iconCharacter	"'[^\\]'" | ||
|  | 
 | ||
|  | " not sure about these | ||
|  | "syn match	iconSpecialCharacter "'\\[bdeflnrtv]'" | ||
|  | "syn match	iconSpecialCharacter "'\\\o\{3\}'" | ||
|  | "syn match	iconSpecialCharacter "'\\x\x\{2}'" | ||
|  | "syn match	iconSpecialCharacter "'\\^c\[a-zA-Z0-9]'" | ||
|  | 
 | ||
|  | "when wanted, highlight trailing white space | ||
|  | if exists("icon_space_errors") | ||
|  |   syn match	iconSpaceError	"\s*$" | ||
|  |   syn match	iconSpaceError	" \+\t"me=e-1 | ||
|  | endif | ||
|  | 
 | ||
|  | "catch errors caused by wrong parenthesis | ||
|  | syn cluster	iconParenGroup contains=iconParenError,iconIncluded,iconSpecial,iconTodo,iconUserCont,iconUserLabel,iconBitField | ||
|  | 
 | ||
|  | syn region	iconParen	transparent start='(' end=')' contains=ALLBUT,@iconParenGroup | ||
|  | syn match	iconParenError	")" | ||
|  | syn match	iconInParen	contained "[{}]" | ||
|  | 
 | ||
|  | 
 | ||
|  | syn case ignore | ||
|  | 
 | ||
|  | "integer number, or floating point number without a dot | ||
|  | syn match	iconNumber		"\<\d\+\>" | ||
|  | 
 | ||
|  | "floating point number, with dot, optional exponent | ||
|  | syn match	iconFloat		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=\>" | ||
|  | 
 | ||
|  | "floating point number, starting with a dot, optional exponent | ||
|  | syn match	iconFloat		"\.\d\+\(e[-+]\=\d\+\)\=\>" | ||
|  | 
 | ||
|  | "floating point number, without dot, with exponent | ||
|  | syn match	iconFloat		"\<\d\+e[-+]\=\d\+\>" | ||
|  | 
 | ||
|  | "radix number | ||
|  | syn match	iconRadix		"\<\d\{1,2}[rR][a-zA-Z0-9]\+\>" | ||
|  | 
 | ||
|  | 
 | ||
|  | " syn match iconIdentifier	"\<[a-z_][a-z0-9_]*\>" | ||
|  | 
 | ||
|  | syn case match | ||
|  | 
 | ||
|  | " Comment | ||
|  | syn match	iconComment	"#.*" contains=iconTodo,iconSpaceError | ||
|  | 
 | ||
|  | syn region	iconPreCondit start="^\s*$\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=iconComment,iconString,iconCharacter,iconNumber,iconCommentError,iconSpaceError | ||
|  | 
 | ||
|  | syn region	iconIncluded	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ | ||
|  | syn match	iconIncluded	contained "<[^>]*>" | ||
|  | syn match	iconInclude	"^\s*$\s*include\>\s*["<]" contains=iconIncluded | ||
|  | "syn match iconLineSkip	"\\$" | ||
|  | 
 | ||
|  | syn cluster	iconPreProcGroup contains=iconPreCondit,iconIncluded,iconInclude,iconDefine,iconInParen,iconUserLabel | ||
|  | 
 | ||
|  | syn region	iconDefine	start="^\s*$\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,@iconPreProcGroup | ||
|  | 
 | ||
|  | "wt:syn region	iconPreProc "start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" "end="$" contains=ALLBUT,@iconPreProcGroup | ||
|  | 
 | ||
|  | " Highlight User Labels | ||
|  | 
 | ||
|  | " syn cluster	iconMultiGroup contains=iconIncluded,iconSpecial,iconTodo,iconUserCont,iconUserLabel,iconBitField | ||
|  | 
 | ||
|  | if !exists("icon_minlines") | ||
|  |   let icon_minlines = 15 | ||
|  | endif | ||
|  | exec "syn sync ccomment iconComment minlines=" . icon_minlines | ||
|  | 
 | ||
|  | " 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 | ||
|  | if version >= 508 || !exists("did_icon_syn_inits") | ||
|  |   if version < 508 | ||
|  |     let did_icon_syn_inits = 1 | ||
|  |     command -nargs=+ HiLink hi link <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   endif | ||
|  | 
 | ||
|  |   " The default methods for highlighting.  Can be overridden later | ||
|  | 
 | ||
|  |   " HiLink iconSpecialCharacter	iconSpecial | ||
|  | 
 | ||
|  |   HiLink iconOctalError		iconError | ||
|  |   HiLink iconParenError		iconError | ||
|  |   HiLink iconInParen		iconError | ||
|  |   HiLink iconCommentError	iconError | ||
|  |   HiLink iconSpaceError		iconError | ||
|  |   HiLink iconCommentError	iconError | ||
|  |   HiLink iconIncluded		iconString | ||
|  |   HiLink iconCommentString	iconString | ||
|  |   HiLink iconComment2String	iconString | ||
|  |   HiLink iconCommentSkip	iconComment | ||
|  | 
 | ||
|  |   HiLink iconUserLabel		Label | ||
|  |   HiLink iconCharacter		Character | ||
|  |   HiLink iconNumber			Number | ||
|  |   HiLink iconRadix			Number | ||
|  |   HiLink iconFloat			Float | ||
|  |   HiLink iconInclude		Include | ||
|  |   HiLink iconPreProc		PreProc | ||
|  |   HiLink iconDefine			Macro | ||
|  |   HiLink iconError			Error | ||
|  |   HiLink iconStatement		Statement | ||
|  |   HiLink iconPreCondit		PreCondit | ||
|  |   HiLink iconString			String | ||
|  |   HiLink iconCset			String | ||
|  |   HiLink iconComment		Comment | ||
|  |   HiLink iconSpecial		SpecialChar | ||
|  |   HiLink iconTodo			Todo | ||
|  |   HiLink iconStorageClass	StorageClass | ||
|  |   HiLink iconFunction		Statement | ||
|  |   HiLink iconReserved		Label | ||
|  |   HiLink iconKeyword		Operator | ||
|  | 
 | ||
|  |   "HiLink iconIdentifier	Identifier | ||
|  | 
 | ||
|  |   delcommand HiLink | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "icon" | ||
|  | 
 |