| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " Language:	C# | 
					
						
							| 
									
										
										
										
											2006-05-03 21:26:49 +00:00
										 |  |  | " Maintainer:	Anduin Withers <awithers@anduin.com> | 
					
						
							|  |  |  | " Former Maintainer:	Johannes Zellner <johannes@zellner.org> | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " Last Change:	Fri Aug 14 13:56:37 PDT 2009 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Filenames:	*.cs | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " $Id: cs.vim,v 1.4 2006/05/03 21:20:02 vimboss Exp $ | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " | 
					
						
							|  |  |  | " REFERENCES: | 
					
						
							|  |  |  | " [1] ECMA TC39: C# Language Specification (WD13Oct01.doc) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if exists("b:current_syntax") | 
					
						
							|  |  |  |     finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let s:cs_cpo_save = &cpo | 
					
						
							|  |  |  | set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " type | 
					
						
							|  |  |  | syn keyword csType			bool byte char decimal double float int long object sbyte short string uint ulong ushort void | 
					
						
							|  |  |  | " storage | 
					
						
							|  |  |  | syn keyword csStorage			class delegate enum interface namespace struct | 
					
						
							| 
									
										
										
										
											2006-04-25 22:13:59 +00:00
										 |  |  | " repeat / condition / label | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn keyword csRepeat			break continue do for foreach goto return while | 
					
						
							|  |  |  | syn keyword csConditional		else if switch | 
					
						
							|  |  |  | syn keyword csLabel			case default | 
					
						
							|  |  |  | " there's no :: operator in C# | 
					
						
							|  |  |  | syn match csOperatorError		display +::+ | 
					
						
							|  |  |  | " user labels (see [1] 8.6 Statements) | 
					
						
							|  |  |  | syn match   csLabel			display +^\s*\I\i*\s*:\([^:]\)\@=+ | 
					
						
							|  |  |  | " modifier | 
					
						
							|  |  |  | syn keyword csModifier			abstract const extern internal override private protected public readonly sealed static virtual volatile | 
					
						
							|  |  |  | " constant | 
					
						
							|  |  |  | syn keyword csConstant			false null true | 
					
						
							|  |  |  | " exception | 
					
						
							|  |  |  | syn keyword csException			try catch finally throw | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " TODO: | 
					
						
							|  |  |  | syn keyword csUnspecifiedStatement	as base checked event fixed in is lock new operator out params ref sizeof stackalloc this typeof unchecked unsafe using | 
					
						
							|  |  |  | " TODO: | 
					
						
							| 
									
										
										
										
											2006-05-03 21:26:49 +00:00
										 |  |  | syn keyword csUnsupportedStatement	add remove value | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " TODO: | 
					
						
							|  |  |  | syn keyword csUnspecifiedKeyword	explicit implicit | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-05-03 21:26:49 +00:00
										 |  |  | " Contextual Keywords | 
					
						
							|  |  |  | syn match csContextualStatement	/\<yield[[:space:]\n]\+\(return\|break\)/me=s+5 | 
					
						
							|  |  |  | syn match csContextualStatement	/\<partial[[:space:]\n]\+\(class\|struct\|interface\)/me=s+7 | 
					
						
							|  |  |  | syn match csContextualStatement	/\<\(get\|set\)[[:space:]\n]*{/me=s+3 | 
					
						
							|  |  |  | syn match csContextualStatement	/\<where\>[^:]\+:/me=s+5 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Comments | 
					
						
							|  |  |  | " | 
					
						
							|  |  |  | " PROVIDES: @csCommentHook | 
					
						
							|  |  |  | " | 
					
						
							|  |  |  | " TODO: include strings ? | 
					
						
							|  |  |  | " | 
					
						
							|  |  |  | syn keyword csTodo		contained TODO FIXME XXX NOTE | 
					
						
							| 
									
										
										
										
											2006-04-25 22:13:59 +00:00
										 |  |  | syn region  csComment		start="/\*"  end="\*/" contains=@csCommentHook,csTodo,@Spell | 
					
						
							|  |  |  | syn match   csComment		"//.*$" contains=@csCommentHook,csTodo,@Spell | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " xml markup inside '///' comments | 
					
						
							|  |  |  | syn cluster xmlRegionHook	add=csXmlCommentLeader | 
					
						
							|  |  |  | syn cluster xmlCdataHook	add=csXmlCommentLeader | 
					
						
							|  |  |  | syn cluster xmlStartTagHook	add=csXmlCommentLeader | 
					
						
							|  |  |  | syn keyword csXmlTag		contained Libraries Packages Types Excluded ExcludedTypeName ExcludedLibraryName | 
					
						
							|  |  |  | syn keyword csXmlTag		contained ExcludedBucketName TypeExcluded Type TypeKind TypeSignature AssemblyInfo | 
					
						
							|  |  |  | syn keyword csXmlTag		contained AssemblyName AssemblyPublicKey AssemblyVersion AssemblyCulture Base | 
					
						
							|  |  |  | syn keyword csXmlTag		contained BaseTypeName Interfaces Interface InterfaceName Attributes Attribute | 
					
						
							|  |  |  | syn keyword csXmlTag		contained AttributeName Members Member MemberSignature MemberType MemberValue | 
					
						
							|  |  |  | syn keyword csXmlTag		contained ReturnValue ReturnType Parameters Parameter MemberOfPackage | 
					
						
							|  |  |  | syn keyword csXmlTag		contained ThreadingSafetyStatement Docs devdoc example overload remarks returns summary | 
					
						
							|  |  |  | syn keyword csXmlTag		contained threadsafe value internalonly nodoc exception param permission platnote | 
					
						
							|  |  |  | syn keyword csXmlTag		contained seealso b c i pre sub sup block code note paramref see subscript superscript | 
					
						
							|  |  |  | syn keyword csXmlTag		contained list listheader item term description altcompliant altmember | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn cluster xmlTagHook add=csXmlTag | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match   csXmlCommentLeader	+\/\/\/+    contained | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | syn match   csXmlComment	+\/\/\/.*$+ contains=csXmlCommentLeader,@csXml,@Spell | 
					
						
							|  |  |  | syntax include @csXml syntax/xml.vim | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | hi def link xmlRegion Comment | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " [1] 9.5 Pre-processing directives | 
					
						
							|  |  |  | syn region	csPreCondit | 
					
						
							| 
									
										
										
										
											2006-05-03 21:26:49 +00:00
										 |  |  |     \ start="^\s*#\s*\(define\|undef\|if\|elif\|else\|endif\|line\|error\|warning\)" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |     \ skip="\\$" end="$" contains=csComment keepend | 
					
						
							| 
									
										
										
										
											2006-05-03 21:26:49 +00:00
										 |  |  | syn region	csRegion matchgroup=csPreCondit start="^\s*#\s*region.*$" | 
					
						
							|  |  |  |     \ end="^\s*#\s*endregion" transparent fold contains=TOP | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Strings and constants | 
					
						
							|  |  |  | syn match   csSpecialError	contained "\\." | 
					
						
							|  |  |  | syn match   csSpecialCharError	contained "[^']" | 
					
						
							|  |  |  | " [1] 9.4.4.4 Character literals | 
					
						
							|  |  |  | syn match   csSpecialChar	contained +\\["\\'0abfnrtvx]+ | 
					
						
							|  |  |  | " unicode characters | 
					
						
							|  |  |  | syn match   csUnicodeNumber	+\\\(u\x\{4}\|U\x\{8}\)+ contained contains=csUnicodeSpecifier | 
					
						
							|  |  |  | syn match   csUnicodeSpecifier	+\\[uU]+ contained | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | syn region  csVerbatimString	start=+@"+ end=+"+ skip=+""+ contains=csVerbatimSpec,@Spell | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn match   csVerbatimSpec	+@"+he=s+1 contained | 
					
						
							| 
									
										
										
										
											2006-04-25 22:13:59 +00:00
										 |  |  | syn region  csString		start=+"+  end=+"+ end=+$+ contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn match   csCharacter		"'[^']*'" contains=csSpecialChar,csSpecialCharError | 
					
						
							|  |  |  | syn match   csCharacter		"'\\''" contains=csSpecialChar | 
					
						
							|  |  |  | syn match   csCharacter		"'[^\\]'" | 
					
						
							|  |  |  | syn match   csNumber		"\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" | 
					
						
							|  |  |  | syn match   csNumber		"\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" | 
					
						
							|  |  |  | syn match   csNumber		"\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" | 
					
						
							|  |  |  | syn match   csNumber		"\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " The default highlighting. | 
					
						
							|  |  |  | hi def link csType			Type | 
					
						
							|  |  |  | hi def link csStorage			StorageClass | 
					
						
							|  |  |  | hi def link csRepeat			Repeat | 
					
						
							|  |  |  | hi def link csConditional		Conditional | 
					
						
							|  |  |  | hi def link csLabel			Label | 
					
						
							|  |  |  | hi def link csModifier			StorageClass | 
					
						
							|  |  |  | hi def link csConstant			Constant | 
					
						
							|  |  |  | hi def link csException			Exception | 
					
						
							|  |  |  | hi def link csUnspecifiedStatement	Statement | 
					
						
							|  |  |  | hi def link csUnsupportedStatement	Statement | 
					
						
							|  |  |  | hi def link csUnspecifiedKeyword	Keyword | 
					
						
							| 
									
										
										
										
											2006-05-03 21:26:49 +00:00
										 |  |  | hi def link csContextualStatement	Statement | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | hi def link csOperatorError		Error | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | hi def link csTodo			Todo | 
					
						
							|  |  |  | hi def link csComment			Comment | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | hi def link csSpecialError		Error | 
					
						
							|  |  |  | hi def link csSpecialCharError		Error | 
					
						
							|  |  |  | hi def link csString			String | 
					
						
							|  |  |  | hi def link csVerbatimString		String | 
					
						
							|  |  |  | hi def link csVerbatimSpec		SpecialChar | 
					
						
							|  |  |  | hi def link csPreCondit			PreCondit | 
					
						
							|  |  |  | hi def link csCharacter			Character | 
					
						
							|  |  |  | hi def link csSpecialChar		SpecialChar | 
					
						
							|  |  |  | hi def link csNumber			Number | 
					
						
							|  |  |  | hi def link csUnicodeNumber		SpecialChar | 
					
						
							|  |  |  | hi def link csUnicodeSpecifier		SpecialChar | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " xml markup | 
					
						
							|  |  |  | hi def link csXmlCommentLeader		Comment | 
					
						
							|  |  |  | hi def link csXmlComment		Comment | 
					
						
							|  |  |  | hi def link csXmlTag			Statement | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "cs" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let &cpo = s:cs_cpo_save | 
					
						
							|  |  |  | unlet s:cs_cpo_save | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " vim: ts=8 |