annotate runtime/syntax/cs.vim @ 0:76efa0be13f1

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