comparison runtime/syntax/cs.vim @ 7:3fc0f57ecb91 v7.0001

updated for version 7.0001
author vimboss
date Sun, 13 Jun 2004 20:20:40 +0000
parents
children 4707450c2b33
comparison
equal deleted inserted replaced
6:c2daee826b8f 7:3fc0f57ecb91
1 " Vim syntax file
2 " Language: C#
3 " Maintainer: Johannes Zellner <johannes@zellner.org>
4 " Last Change: Tue, 09 Mar 2004 14:32:13 CET
5 " Filenames: *.cs
6 " $Id$
7 "
8 " REFERENCES:
9 " [1] ECMA TC39: C# Language Specification (WD13Oct01.doc)
10
11 if exists("b:current_syntax")
12 finish
13 endif
14
15 let s:cs_cpo_save = &cpo
16 set cpo&vim
17
18
19 " type
20 syn keyword csType bool byte char decimal double float int long object sbyte short string uint ulong ushort void
21 " storage
22 syn keyword csStorage class delegate enum interface namespace struct
23 " repeate / condition / label
24 syn keyword csRepeat break continue do for foreach goto return while
25 syn keyword csConditional else if switch
26 syn keyword csLabel case default
27 " there's no :: operator in C#
28 syn match csOperatorError display +::+
29 " user labels (see [1] 8.6 Statements)
30 syn match csLabel display +^\s*\I\i*\s*:\([^:]\)\@=+
31 " modifier
32 syn keyword csModifier abstract const extern internal override private protected public readonly sealed static virtual volatile
33 " constant
34 syn keyword csConstant false null true
35 " exception
36 syn keyword csException try catch finally throw
37
38 " TODO:
39 syn keyword csUnspecifiedStatement as base checked event fixed in is lock new operator out params ref sizeof stackalloc this typeof unchecked unsafe using
40 " TODO:
41 syn keyword csUnsupportedStatement get set add remove value
42 " TODO:
43 syn keyword csUnspecifiedKeyword explicit implicit
44
45
46
47 " Comments
48 "
49 " PROVIDES: @csCommentHook
50 "
51 " TODO: include strings ?
52 "
53 syn keyword csTodo contained TODO FIXME XXX NOTE
54 syn region csComment start="/\*" end="\*/" contains=@csCommentHook,csTodo
55 syn match csComment "//.*$" contains=@csCommentHook,csTodo
56
57 " xml markup inside '///' comments
58 syn cluster xmlRegionHook add=csXmlCommentLeader
59 syn cluster xmlCdataHook add=csXmlCommentLeader
60 syn cluster xmlStartTagHook add=csXmlCommentLeader
61 syn keyword csXmlTag contained Libraries Packages Types Excluded ExcludedTypeName ExcludedLibraryName
62 syn keyword csXmlTag contained ExcludedBucketName TypeExcluded Type TypeKind TypeSignature AssemblyInfo
63 syn keyword csXmlTag contained AssemblyName AssemblyPublicKey AssemblyVersion AssemblyCulture Base
64 syn keyword csXmlTag contained BaseTypeName Interfaces Interface InterfaceName Attributes Attribute
65 syn keyword csXmlTag contained AttributeName Members Member MemberSignature MemberType MemberValue
66 syn keyword csXmlTag contained ReturnValue ReturnType Parameters Parameter MemberOfPackage
67 syn keyword csXmlTag contained ThreadingSafetyStatement Docs devdoc example overload remarks returns summary
68 syn keyword csXmlTag contained threadsafe value internalonly nodoc exception param permission platnote
69 syn keyword csXmlTag contained seealso b c i pre sub sup block code note paramref see subscript superscript
70 syn keyword csXmlTag contained list listheader item term description altcompliant altmember
71
72 syn cluster xmlTagHook add=csXmlTag
73
74 syn match csXmlCommentLeader +\/\/\/+ contained
75 syn match csXmlComment +\/\/\/.*$+ contains=csXmlCommentLeader,@csXml
76 syntax include @csXml <sfile>:p:h/xml.vim
77 hi def link xmlRegion Comment
78
79
80 " [1] 9.5 Pre-processing directives
81 syn region csPreCondit
82 \ start="^\s*#\s*\(define\|undef\|if\|elif\|else\|endif\|line\|error\|warning\|region\|endregion\)"
83 \ skip="\\$" end="$" contains=csComment keepend
84
85
86
87 " Strings and constants
88 syn match csSpecialError contained "\\."
89 syn match csSpecialCharError contained "[^']"
90 " [1] 9.4.4.4 Character literals
91 syn match csSpecialChar contained +\\["\\'0abfnrtvx]+
92 " unicode characters
93 syn match csUnicodeNumber +\\\(u\x\{4}\|U\x\{8}\)+ contained contains=csUnicodeSpecifier
94 syn match csUnicodeSpecifier +\\[uU]+ contained
95 syn region csVerbatimString start=+@"+ end=+"+ end=+$+ contains=csVerbatimSpec
96 syn match csVerbatimSpec +@"+he=s+1 contained
97 syn region csString start=+"+ end=+"+ end=+$+ contains=csSpecialChar,csSpecialError,csUnicodeNumber
98 syn match csCharacter "'[^']*'" contains=csSpecialChar,csSpecialCharError
99 syn match csCharacter "'\\''" contains=csSpecialChar
100 syn match csCharacter "'[^\\]'"
101 syn match csNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
102 syn match csNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
103 syn match csNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
104 syn match csNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
105
106 " The default highlighting.
107 hi def link csType Type
108 hi def link csStorage StorageClass
109 hi def link csRepeat Repeat
110 hi def link csConditional Conditional
111 hi def link csLabel Label
112 hi def link csModifier StorageClass
113 hi def link csConstant Constant
114 hi def link csException Exception
115 hi def link csUnspecifiedStatement Statement
116 hi def link csUnsupportedStatement Statement
117 hi def link csUnspecifiedKeyword Keyword
118 hi def link csOperatorError Error
119
120 hi def link csTodo Todo
121 hi def link csComment Comment
122
123 hi def link csSpecialError Error
124 hi def link csSpecialCharError Error
125 hi def link csString String
126 hi def link csVerbatimString String
127 hi def link csVerbatimSpec SpecialChar
128 hi def link csPreCondit PreCondit
129 hi def link csCharacter Character
130 hi def link csSpecialChar SpecialChar
131 hi def link csNumber Number
132 hi def link csUnicodeNumber SpecialChar
133 hi def link csUnicodeSpecifier SpecialChar
134
135 " xml markup
136 hi def link csXmlCommentLeader Comment
137 hi def link csXmlComment Comment
138 hi def link csXmlTag Statement
139
140 let b:current_syntax = "cs"
141
142 let &cpo = s:cs_cpo_save
143 unlet s:cs_cpo_save
144
145 " vim: ts=8