Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | " Vim syntax file |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 2 | " Language: C# |
| 3 | " Maintainer: Nick Jensen <nickspoon@gmail.com> |
| 4 | " Former Maintainers: Anduin Withers <awithers@anduin.com> |
| 5 | " Johannes Zellner <johannes@zellner.org> |
Bram Moolenaar | 86b4816 | 2022-12-06 18:20:10 +0000 | [diff] [blame] | 6 | " Last Change: 2022-11-16 |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 7 | " Filenames: *.cs |
| 8 | " License: Vim (see :h license) |
| 9 | " Repository: https://github.com/nickspoons/vim-cs |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 10 | " |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 11 | " References: |
| 12 | " - ECMA-334 5th Edition: C# Language Specification |
| 13 | " https://www.ecma-international.org/publications-and-standards/standards/ecma-334/ |
| 14 | " - C# Language Design: Draft 6th Edition and later proposals |
| 15 | " https://github.com/dotnet/csharplang |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 16 | |
Bram Moolenaar | d47d522 | 2018-12-09 20:43:55 +0100 | [diff] [blame] | 17 | if exists('b:current_syntax') |
| 18 | finish |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 19 | endif |
| 20 | |
Bram Moolenaar | d47d522 | 2018-12-09 20:43:55 +0100 | [diff] [blame] | 21 | let s:save_cpo = &cpoptions |
| 22 | set cpoptions&vim |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 23 | |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 24 | syn keyword csType bool byte char decimal double float int long object sbyte short string T uint ulong ushort var void dynamic |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 25 | syn keyword csType nint nuint " contextual |
| 26 | |
| 27 | syn keyword csStorage enum interface namespace struct |
Bram Moolenaar | 86b4816 | 2022-12-06 18:20:10 +0000 | [diff] [blame] | 28 | syn match csStorage "\<record\ze\_s\+@\=\h\w*\_s*[<(:{;]" |
| 29 | syn match csStorage "\%(\<\%(partial\|new\|public\|protected\|internal\|private\|abstract\|sealed\|static\|unsafe\|readonly\)\)\@9<=\_s\+record\>" |
| 30 | syn match csStorage "\<record\ze\_s\+\%(class\|struct\)" |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 31 | syn match csStorage "\<delegate\>" |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 32 | syn keyword csRepeat break continue do for foreach goto return while |
| 33 | syn keyword csConditional else if switch |
| 34 | syn keyword csLabel case default |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 35 | |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 36 | syn match csNamespaceAlias "@\=\h\w*\ze\_s*::" display |
| 37 | syn match csGlobalNamespaceAlias "global\ze\_s*::" display |
| 38 | syn cluster csNamespaceAlias contains=csGlobalNamespaceAlias,csNamespaceAlias,csNamespaceAliasQualifier |
| 39 | |
| 40 | " user labels |
| 41 | syn match csLabel display +^\s*\I\i*\s*:\%([^:]\)\@=+ |
| 42 | |
| 43 | " Function pointers |
| 44 | syn match csType "\<delegate\s*\*" contains=csOpSymbols nextgroup=csManagedModifier skipwhite skipempty |
| 45 | syn keyword csManagedModifier managed unmanaged contained |
| 46 | |
| 47 | " Modifiers |
| 48 | syn match csUsingModifier "\<global\ze\_s\+using\>" |
| 49 | syn keyword csAccessModifier internal private protected public |
Bram Moolenaar | 86b4816 | 2022-12-06 18:20:10 +0000 | [diff] [blame] | 50 | syn keyword csModifier operator nextgroup=csCheckedModifier skipwhite skipempty |
| 51 | syn keyword csCheckedModifier checked contained |
| 52 | |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 53 | " TODO: in new out |
| 54 | syn keyword csModifier abstract const event override readonly sealed static virtual volatile |
| 55 | syn match csModifier "\<\%(extern\|fixed\|unsafe\)\>" |
| 56 | syn match csModifier "\<partial\ze\_s\+\%(class\|struct\|interface\|record\|void\)\>" |
| 57 | |
| 58 | syn keyword csException try catch finally throw when |
| 59 | syn keyword csLinq ascending by descending equals from group in into join let on orderby select |
| 60 | syn match csLinq "\<where\>" |
| 61 | |
| 62 | " Type parameter constraint clause |
| 63 | syn match csStorage "\<where\>\ze\_s\+@\=\h\w*\_s*:" |
| 64 | |
| 65 | " Async |
| 66 | syn keyword csAsyncModifier async |
| 67 | syn keyword csAsyncOperator await |
| 68 | |
| 69 | syn match csStorage "\<extern\ze\s\+alias\>" |
| 70 | syn match csStorage "\%(\<extern\s\+\)\@16<=alias\>" |
| 71 | |
| 72 | syn match csStatement "\<\%(checked\|unchecked\|unsafe\)\ze\_s*{" |
| 73 | syn match csStatement "\<fixed\ze\_s*(" |
| 74 | syn keyword csStatement lock |
| 75 | syn match csStatement "\<yield\ze\_s\+\%(return\|break\)\>" |
| 76 | |
| 77 | syn match csAccessor "\<\%(get\|set\|init\|add\|remove\)\ze\_s*\%([;{]\|=>\)" |
| 78 | |
| 79 | syn keyword csAccess base |
| 80 | syn match csAccess "\<this\>" |
| 81 | |
| 82 | " Extension method parameter modifier |
| 83 | syn match csModifier "\<this\ze\_s\+@\=\h" |
| 84 | |
Bram Moolenaar | 86b4816 | 2022-12-06 18:20:10 +0000 | [diff] [blame] | 85 | syn keyword csUnspecifiedStatement as in is nameof out params ref sizeof stackalloc using |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 86 | syn keyword csUnsupportedStatement value |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 87 | syn keyword csUnspecifiedKeyword explicit implicit |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 88 | |
Bram Moolenaar | d47d522 | 2018-12-09 20:43:55 +0100 | [diff] [blame] | 89 | " Operators |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 90 | syn keyword csTypeOf typeof nextgroup=csTypeOfOperand,csTypeOfError skipwhite skipempty |
| 91 | syn region csTypeOfOperand matchgroup=csParens start="(" end=")" contained contains=csType |
| 92 | syn match csTypeOfError "[^([:space:]]" contained |
| 93 | syn match csKeywordOperator "\<\%(checked\|unchecked\)\ze\_s*(" |
Bram Moolenaar | d47d522 | 2018-12-09 20:43:55 +0100 | [diff] [blame] | 94 | |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 95 | " Punctuation |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 96 | syn match csBraces "[{}[\]]" display |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 97 | syn match csParens "[()]" display |
Bram Moolenaar | 088e8e3 | 2019-08-08 22:15:18 +0200 | [diff] [blame] | 98 | syn match csOpSymbols "+\{1,2}" display |
| 99 | syn match csOpSymbols "-\{1,2}" display |
| 100 | syn match csOpSymbols "=\{1,2}" display |
| 101 | syn match csOpSymbols ">\{1,2}" display |
| 102 | syn match csOpSymbols "<\{1,2}" display |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 103 | syn match csOpSymbols "[!><+\-*/]=" display |
| 104 | syn match csOpSymbols "[!*/^]" display |
| 105 | syn match csOpSymbols "=>" display |
| 106 | syn match csEndColon ";" display |
| 107 | syn match csLogicSymbols "&&" display |
| 108 | syn match csLogicSymbols "||" display |
| 109 | syn match csLogicSymbols "?" display |
| 110 | syn match csLogicSymbols ":" display |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 111 | syn match csNamespaceAliasQualifier "::" display |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 112 | |
Bram Moolenaar | 088e8e3 | 2019-08-08 22:15:18 +0200 | [diff] [blame] | 113 | " Generics |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 114 | syn region csGeneric matchgroup=csGenericBraces start="<" end=">" oneline contains=csType,csGeneric,@csNamespaceAlias,csUserType,csUserIdentifier,csUserInterface,csUserMethod |
Bram Moolenaar | 088e8e3 | 2019-08-08 22:15:18 +0200 | [diff] [blame] | 115 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 116 | " Comments |
| 117 | " |
| 118 | " PROVIDES: @csCommentHook |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 119 | syn keyword csTodo contained TODO FIXME XXX NOTE HACK TBD |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 120 | syn region csBlockComment start="/\*" end="\*/" contains=@csCommentHook,csTodo,@Spell |
| 121 | syn match csLineComment "//.*$" contains=@csCommentHook,csTodo,@Spell |
| 122 | syn cluster csComment contains=csLineComment,csBlockComment |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 123 | |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 124 | syn region csSummary start="^\s*/// <summary" end="^\%\(\s*///\)\@!" transparent fold keepend |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 125 | |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 126 | " xml markup inside '///' and /**...*/ comments |
| 127 | syn cluster xmlRegionHook add=csXmlLineCommentLeader,csXmlBlockCommentMiddle |
| 128 | syn cluster xmlCdataHook add=csXmlLineCommentLeader,csXmlBlockCommentMiddle |
| 129 | syn cluster xmlStartTagHook add=csXmlLineCommentLeader,csXmlBlockCommentMiddle |
| 130 | syn cluster xmlTagHook add=csXmlTag |
| 131 | syn cluster xmlAttribHook add=csXmlAttrib |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 132 | |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 133 | " https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/xmldoc/recommended-tags |
| 134 | syn keyword csXmlTag contained summary remarks |
| 135 | syn keyword csXmlTag contained returns param paramref exception value |
| 136 | syn keyword csXmlTag contained para list c code example |
| 137 | syn keyword csXmlTag contained inheritdoc include |
| 138 | syn keyword csXmlTag contained see seealso |
| 139 | syn keyword csXmlTag contained typeparam typeparamref |
| 140 | syn keyword csXmlTag contained b i u br a |
| 141 | syn keyword csXmlAttrib contained cref href |
| 142 | |
| 143 | syn match csXmlLineCommentLeader "///" contained |
| 144 | syn match csXmlLineComment "///.*$" contains=csXmlLineCommentLeader,@csXml,@Spell keepend |
| 145 | syn match csXmlBlockCommentMiddle "^\s*\zs\*" contained |
| 146 | syn region csXmlBlockComment start="/\*\*" end="\*/" contains=@csXml,@Spell,csXmlBlockCommentMiddle keepend |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 147 | syn include @csXml syntax/xml.vim |
| 148 | hi def link xmlRegion Comment |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 149 | |
Bram Moolenaar | 560979e | 2020-02-04 22:53:05 +0100 | [diff] [blame] | 150 | " Since syntax/xml.vim contains `syn spell toplevel`, we need to set it back to `default` here. |
| 151 | syn spell default |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 152 | |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 153 | " Pre-processing directives |
| 154 | syn region csPreProcDeclaration start="^\s*\zs#\s*\%(define\|undef\)\>" end="$" contains=csLineComment keepend |
| 155 | syn region csPreProcConditional start="^\s*\zs#\s*\%(if\|elif\)\>" end="$" contains=csLineComment keepend |
| 156 | syn region csPreProcConditional start="^\s*\zs#\s*\%(else\|endif\)\>" end="$" contains=csLineComment keepend |
| 157 | syn region csPreProcLine start="^\s*\zs#\s*line\>" end="$" contains=csLineComment keepend |
| 158 | syn region csPreProcDiagnostic start="^\s*\zs#\s*\%(error\|warning\)\>" end="$" |
| 159 | syn region csPreProcConditionalSection matchgroup=csPreProcRegion start="^\s*#\s*region\>.*" end="^\s*#\s*endregion\>.*" transparent fold contains=TOP |
| 160 | syn region csPreProcPragma start="^\s*\zs#\s*pragma\>" end="$" contains=csLineComment keepend |
| 161 | syn region csPreProcNullable start="^\s*\zs#\s*nullable\>" end="$" contains=csLineComment keepend |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 162 | |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 163 | if expand('%:e') == 'csx' || getline('1') =~ '^#!.*\<dotnet-script\>' |
| 164 | syn region csPreProcInclude start="^\s*\zs#\s*\%(load\|r\)\>" end="$" contains=csLineComment keepend |
| 165 | syn match csShebang "\%^#!.*" display |
| 166 | endif |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 167 | |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 168 | syn cluster csPreProcessor contains=csPreProc.* |
| 169 | |
| 170 | syn region csClassType start="\<class\>"hs=s+6 end=">" end="[:{]"me=e-1 contains=csClass |
Bram Moolenaar | 088e8e3 | 2019-08-08 22:15:18 +0200 | [diff] [blame] | 171 | " csUserType may be defined by user scripts/plugins - it should be contained in csNewType |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 172 | syn region csNewType start="\<new\>"hs=s+4 end="[;\n{(<\[]"me=e-1 contains=csNew,@csNamespaceAlias,csUserType |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 173 | syn region csIsType start=" is "hs=s+4 end="[A-Za-z0-9]\+" oneline contains=csIsAs |
| 174 | syn region csIsType start=" as "hs=s+4 end="[A-Za-z0-9]\+" oneline contains=csIsAs |
| 175 | syn keyword csNew new contained |
| 176 | syn keyword csClass class contained |
| 177 | syn keyword csIsAs is as |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 178 | |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 179 | syn keyword csBoolean false true |
| 180 | syn keyword csNull null |
| 181 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 182 | " Strings and constants |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 183 | syn match csSpecialError "\\." contained |
| 184 | syn match csSpecialCharError "[^']" contained |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 185 | " Character literals |
| 186 | syn match csSpecialChar +\\["\\'0abfnrtv]+ contained display |
| 187 | syn match csUnicodeNumber +\\x\x\{1,4}+ contained contains=csUnicodeSpecifier display |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 188 | syn match csUnicodeNumber +\\u\x\{4}+ contained contains=csUnicodeSpecifier display |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 189 | syn match csUnicodeNumber +\\U00\x\{6}+ contained contains=csUnicodeSpecifier display |
| 190 | syn match csUnicodeSpecifier +\\[uUx]+ contained display |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 191 | |
Bram Moolenaar | 86b4816 | 2022-12-06 18:20:10 +0000 | [diff] [blame] | 192 | syn region csString matchgroup=csQuote start=+"+ end=+"\%(u8\)\=+ end=+$+ extend contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell |
Bram Moolenaar | 23515b4 | 2020-11-29 14:36:24 +0100 | [diff] [blame] | 193 | syn match csCharacter "'[^']*'" contains=csSpecialChar,csSpecialCharError,csUnicodeNumber display |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 194 | syn match csCharacter "'\\''" contains=csSpecialChar display |
| 195 | syn match csCharacter "'[^\\]'" display |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 196 | |
| 197 | " Numbers |
| 198 | syn case ignore |
| 199 | syn match csInteger "\<0b[01_]*[01]\%([lu]\|lu\|ul\)\=\>" display |
| 200 | syn match csInteger "\<\d\+\%(_\+\d\+\)*\%([lu]\|lu\|ul\)\=\>" display |
| 201 | syn match csInteger "\<0x[[:xdigit:]_]*\x\%([lu]\|lu\|ul\)\=\>" display |
| 202 | syn match csReal "\<\d\+\%(_\+\d\+\)*\.\d\+\%(_\+\d\+\)*\%\(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=" display |
| 203 | syn match csReal "\.\d\+\%(_\+\d\+\)*\%(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=\>" display |
| 204 | syn match csReal "\<\d\+\%(_\+\d\+\)*e[-+]\=\d\+\%(_\+\d\+\)*[fdm]\=\>" display |
| 205 | syn match csReal "\<\d\+\%(_\+\d\+\)*[fdm]\>" display |
| 206 | syn case match |
| 207 | syn cluster csNumber contains=csInteger,csReal |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 208 | |
Bram Moolenaar | 86b4816 | 2022-12-06 18:20:10 +0000 | [diff] [blame] | 209 | syn region csInterpolatedString matchgroup=csQuote start=+\$"+ end=+"\%(u8\)\=+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,@Spell |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 210 | |
Bram Moolenaar | 23515b4 | 2020-11-29 14:36:24 +0100 | [diff] [blame] | 211 | syn region csInterpolation matchgroup=csInterpolationDelimiter start=+{+ end=+}+ keepend contained contains=@csAll,csBraced,csBracketed,csInterpolationAlign,csInterpolationFormat |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 212 | syn match csEscapedInterpolation "{{" transparent contains=NONE display |
| 213 | syn match csEscapedInterpolation "}}" transparent contains=NONE display |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 214 | syn region csInterpolationAlign matchgroup=csInterpolationAlignDel start=+,+ end=+}+ end=+:+me=e-1 contained contains=@csNumber,csBoolean,csConstant,csCharacter,csParens,csOpSymbols,csString,csBracketed display |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 215 | syn match csInterpolationFormat +:[^}]\+}+ contained contains=csInterpolationFormatDel display |
| 216 | syn match csInterpolationAlignDel +,+ contained display |
| 217 | syn match csInterpolationFormatDel +:+ contained display |
| 218 | |
Bram Moolenaar | 86b4816 | 2022-12-06 18:20:10 +0000 | [diff] [blame] | 219 | syn region csVerbatimString matchgroup=csQuote start=+@"+ end=+"\%(u8\)\=+ skip=+""+ extend contains=csVerbatimQuote,@Spell |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 220 | syn match csVerbatimQuote +""+ contained |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 221 | |
Bram Moolenaar | 86b4816 | 2022-12-06 18:20:10 +0000 | [diff] [blame] | 222 | syn region csInterVerbString matchgroup=csQuote start=+$@"+ start=+@$"+ end=+"\%(u8\)\=+ skip=+""+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,csVerbatimQuote,@Spell |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 223 | |
| 224 | syn cluster csString contains=csString,csInterpolatedString,csVerbatimString,csInterVerbString |
| 225 | |
| 226 | syn cluster csLiteral contains=csBoolean,@csNumber,csCharacter,@csString,csNull |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 227 | |
Bram Moolenaar | 23515b4 | 2020-11-29 14:36:24 +0100 | [diff] [blame] | 228 | syn region csBracketed matchgroup=csParens start=+(+ end=+)+ extend contained transparent contains=@csAll,csBraced,csBracketed |
| 229 | syn region csBraced matchgroup=csParens start=+{+ end=+}+ extend contained transparent contains=@csAll,csBraced,csBracketed |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 230 | |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 231 | syn cluster csAll contains=@csLiteral,csClassType,@csComment,csEndColon,csIsType,csLabel,csLogicSymbols,csNewType,csOpSymbols,csParens,@csPreProcessor,csSummary,@csNamespaceAlias,csType,csUnicodeNumber,csUserType,csUserIdentifier,csUserInterface,csUserMethod |
| 232 | |
| 233 | " Keyword identifiers |
| 234 | syn match csIdentifier "@\h\w*" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 235 | |
| 236 | " The default highlighting. |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 237 | hi def link csUnspecifiedStatement Statement |
| 238 | hi def link csUnsupportedStatement Statement |
| 239 | hi def link csUnspecifiedKeyword Keyword |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 240 | |
| 241 | hi def link csGlobalNamespaceAlias Include |
| 242 | |
| 243 | hi def link csType Type |
| 244 | hi def link csClassType Type |
| 245 | hi def link csIsType Type |
| 246 | |
| 247 | hi def link csStorage Structure |
| 248 | hi def link csClass Structure |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 249 | hi def link csNew Statement |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 250 | hi def link csIsAs Keyword |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 251 | hi def link csAccessor Keyword |
| 252 | hi def link csAccess Keyword |
| 253 | |
| 254 | hi def link csLinq Statement |
| 255 | |
| 256 | hi def link csStatement Statement |
| 257 | hi def link csRepeat Repeat |
| 258 | hi def link csConditional Conditional |
| 259 | hi def link csLabel Label |
| 260 | hi def link csException Exception |
| 261 | |
| 262 | hi def link csModifier StorageClass |
| 263 | hi def link csAccessModifier csModifier |
| 264 | hi def link csAsyncModifier csModifier |
Bram Moolenaar | 86b4816 | 2022-12-06 18:20:10 +0000 | [diff] [blame] | 265 | hi def link csCheckedModifier csModifier |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 266 | hi def link csManagedModifier csModifier |
| 267 | hi def link csUsingModifier csModifier |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 268 | |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 269 | hi def link csTodo Todo |
| 270 | hi def link csComment Comment |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 271 | hi def link csLineComment csComment |
| 272 | hi def link csBlockComment csComment |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 273 | |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 274 | hi def link csKeywordOperator Keyword |
| 275 | hi def link csAsyncOperator csKeywordOperator |
| 276 | hi def link csTypeOf csKeywordOperator |
| 277 | hi def link csTypeOfOperand Typedef |
| 278 | hi def link csTypeOfError Error |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 279 | hi def link csOpSymbols Operator |
Bram Moolenaar | d47d522 | 2018-12-09 20:43:55 +0100 | [diff] [blame] | 280 | hi def link csLogicSymbols Operator |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 281 | |
| 282 | hi def link csSpecialError Error |
| 283 | hi def link csSpecialCharError Error |
| 284 | hi def link csString String |
| 285 | hi def link csQuote String |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 286 | hi def link csInterpolatedString String |
| 287 | hi def link csVerbatimString String |
| 288 | hi def link csInterVerbString String |
| 289 | hi def link csVerbatimQuote SpecialChar |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 290 | |
| 291 | hi def link csPreProc PreProc |
| 292 | hi def link csPreProcDeclaration Define |
| 293 | hi def link csPreProcConditional PreCondit |
| 294 | hi def link csPreProcLine csPreProc |
| 295 | hi def link csPreProcDiagnostic csPreProc |
| 296 | hi def link csPreProcRegion csPreProc |
| 297 | hi def link csPreProcPragma csPreProc |
| 298 | hi def link csPreProcNullable csPreProc |
| 299 | hi def link csPreProcInclude csPreProc |
| 300 | hi def link csShebang csPreProc |
| 301 | |
| 302 | hi def link csConstant Constant |
| 303 | hi def link csNull Constant |
| 304 | hi def link csBoolean Boolean |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 305 | hi def link csCharacter Character |
| 306 | hi def link csSpecialChar SpecialChar |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 307 | hi def link csInteger Number |
| 308 | hi def link csReal Float |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 309 | hi def link csUnicodeNumber SpecialChar |
| 310 | hi def link csUnicodeSpecifier SpecialChar |
| 311 | hi def link csInterpolationDelimiter Delimiter |
| 312 | hi def link csInterpolationAlignDel csInterpolationDelimiter |
| 313 | hi def link csInterpolationFormat csInterpolationDelimiter |
| 314 | hi def link csInterpolationFormatDel csInterpolationDelimiter |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 315 | |
Bram Moolenaar | 088e8e3 | 2019-08-08 22:15:18 +0200 | [diff] [blame] | 316 | hi def link csGenericBraces csBraces |
| 317 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 318 | " xml markup |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 319 | hi def link csXmlLineCommentLeader Comment |
| 320 | hi def link csXmlLineComment Comment |
| 321 | hi def link csXmlBlockComment Comment |
| 322 | hi def link csXmlBlockCommentMiddle csXmlBlockComment |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 323 | hi def link csXmlTag Statement |
Bram Moolenaar | 63f3260 | 2022-06-09 20:45:54 +0100 | [diff] [blame] | 324 | hi def link csXmlAttrib Statement |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 325 | |
Bram Moolenaar | d47d522 | 2018-12-09 20:43:55 +0100 | [diff] [blame] | 326 | let b:current_syntax = 'cs' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 327 | |
Bram Moolenaar | d47d522 | 2018-12-09 20:43:55 +0100 | [diff] [blame] | 328 | let &cpoptions = s:save_cpo |
| 329 | unlet s:save_cpo |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 330 | |
Bram Moolenaar | a9604e6 | 2018-07-21 05:56:22 +0200 | [diff] [blame] | 331 | " vim: vts=16,28 |