Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
cs.vim361 linesDownload Raw Back to syntax
1" Vim syntax file2" Language:            C#3" Maintainer:          Nick Jensen <nickspoon@gmail.com>4" Former Maintainers:  Anduin Withers <awithers@anduin.com>5"                      Johannes Zellner <johannes@zellner.org>6" Last Change:         2025-03-147" Filenames:           *.cs8" License:             Vim (see :h license)9" Repository:          https://github.com/nickspoons/vim-cs10"11" References:12"   -   ECMA-334 5th Edition: C# Language Specification13"       https://www.ecma-international.org/publications-and-standards/standards/ecma-334/14"   -   C# Language Design: Draft 6th Edition and later proposals15"       https://github.com/dotnet/csharplang16 17if exists('b:current_syntax')18  finish19endif20 21let s:save_cpo = &cpoptions22set cpoptions&vim23 24syn keyword	csType	bool byte char decimal double float int long object sbyte short string T uint ulong ushort var void dynamic25syn keyword	csType	nint nuint " contextual26 27syn keyword	csStorage	enum interface namespace struct28syn match	csStorage	"\<record\ze\_s\+@\=\h\w*\_s*[<(:{;]"29syn match	csStorage	"\%(\<\%(partial\|new\|public\|protected\|internal\|private\|abstract\|sealed\|static\|unsafe\|readonly\)\)\@9<=\_s\+record\>"30syn match	csStorage	"\<record\ze\_s\+\%(class\|struct\)"31syn match	csStorage	"\<delegate\>"32syn keyword	csRepeat	break continue do for foreach goto return while33syn keyword	csConditional	else if switch34syn keyword	csLabel	case default35 36syn match	csNamespaceAlias	"@\=\h\w*\ze\_s*::" display37syn match	csGlobalNamespaceAlias	"global\ze\_s*::" display38syn cluster	csNamespaceAlias	contains=csGlobalNamespaceAlias,csNamespaceAlias,csNamespaceAliasQualifier39 40" user labels41syn match	csLabel	display +^\s*\I\i*\s*:\%([^:]\)\@=+42 43" Function pointers44syn match	csType	"\<delegate\s*\*" contains=csOpSymbols nextgroup=csManagedModifier skipwhite skipempty45syn keyword	csManagedModifier	managed unmanaged contained46 47" Modifiers48syn match	csUsingModifier	"\<global\ze\_s\+using\>"49syn keyword	csAccessModifier	internal private protected public50syn keyword	csModifier	operator nextgroup=csCheckedModifier skipwhite skipempty51syn keyword	csCheckedModifier	checked contained52 53" TODO: in new out54syn keyword	csModifier	abstract const event override readonly sealed static virtual volatile55syn match	csModifier	"\<\%(extern\|fixed\|unsafe\)\>"56syn match	csModifier	"\<partial\ze\_s\+\%(class\|struct\|interface\|record\|void\)\>"57 58syn keyword	csException	try catch finally throw when59syn keyword	csLinq	ascending by descending equals from group in into join let on orderby select60syn match	csLinq	"\<where\>"61 62" Type parameter constraint clause63syn match	csStorage	"\<where\>\ze\_s\+@\=\h\w*\_s*:"64 65" Async66syn keyword	csAsyncModifier	async67syn keyword	csAsyncOperator	await68 69syn match	csStorage	"\<extern\ze\s\+alias\>"70syn match	csStorage	"\%(\<extern\s\+\)\@16<=alias\>"71 72syn match	csStatement	"\<\%(checked\|unchecked\|unsafe\)\ze\_s*{"73syn match	csStatement	"\<fixed\ze\_s*("74syn keyword	csStatement	lock75syn match	csStatement	"\<yield\ze\_s\+\%(return\|break\)\>"76 77syn match	csAccessor	"\<\%(get\|set\|init\|add\|remove\)\ze\_s*\%([;{]\|=>\)"78 79syn keyword	csAccess	base80syn match	csAccess	"\<this\>"81 82" Extension method parameter modifier83syn match	csModifier	"\<this\ze\_s\+@\=\h"84 85syn keyword	csUnspecifiedStatement	as in is nameof out params ref sizeof stackalloc using86syn keyword	csUnsupportedStatement	value87syn keyword	csUnspecifiedKeyword	explicit implicit88 89" Operators90syn keyword	csTypeOf	typeof nextgroup=csTypeOfOperand,csTypeOfError skipwhite skipempty91syn region	csTypeOfOperand	matchgroup=csParens start="(" end=")" contained contains=csType92syn match       csTypeOfError               "[^([:space:]]" contained93syn match	csKeywordOperator	"\<\%(checked\|unchecked\)\ze\_s*("94 95" Punctuation96syn match	csBraces	"[{}[\]]" display97syn match	csParens	"[()]" display98syn match	csOpSymbols	"+\{1,2}" display99syn match	csOpSymbols	"-\{1,2}" display100syn match	csOpSymbols	"=\{1,2}" display101syn match	csOpSymbols	">\{1,2}" display102syn match	csOpSymbols	"<\{1,2}" display103syn match	csOpSymbols	"[!><+\-*/]=" display104syn match	csOpSymbols	"[!*/^]" display105syn match	csOpSymbols	"=>" display106syn match	csEndColon	";" display107syn match	csLogicSymbols	"&&" display108syn match	csLogicSymbols	"||" display109syn match	csLogicSymbols	"?" display110syn match	csLogicSymbols	":" display111syn match	csNamespaceAliasQualifier	"::" display112 113" Generics114syn region	csGeneric	matchgroup=csGenericBraces start="<" end=">" oneline contains=csType,csGeneric,@csNamespaceAlias,csUserType,csUserIdentifier,csUserInterface,csUserMethod115 116" Comments117"118" PROVIDES: @csCommentHook119syn keyword	csTodo	contained TODO FIXME XXX NOTE HACK TBD120syn region	csBlockComment	start="/\*"  end="\*/" contains=@csCommentHook,csTodo,@Spell121syn match	csLineComment	"//.*$" contains=@csCommentHook,csTodo,@Spell122syn cluster	csComment	contains=csLineComment,csBlockComment123 124syn region	csSummary	start="^\s*/// <summary" end="^\%\(\s*///\)\@!" transparent fold keepend125 126" xml markup inside '///' and /**...*/ comments127syn cluster	xmlRegionHook	add=csXmlLineCommentLeader,csXmlBlockCommentMiddle128syn cluster	xmlCdataHook	add=csXmlLineCommentLeader,csXmlBlockCommentMiddle129syn cluster	xmlStartTagHook	add=csXmlLineCommentLeader,csXmlBlockCommentMiddle130syn cluster	xmlTagHook	add=csXmlTag131syn cluster	xmlAttribHook	add=csXmlAttrib132 133" https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/xmldoc/recommended-tags134syn keyword	csXmlTag	contained summary remarks135syn keyword	csXmlTag	contained returns param paramref exception value136syn keyword	csXmlTag	contained para list c code example137syn keyword	csXmlTag	contained inheritdoc include138syn keyword	csXmlTag	contained see seealso139syn keyword	csXmlTag	contained typeparam typeparamref140syn keyword	csXmlTag	contained b i u br a141syn keyword	csXmlAttrib	contained cref href142 143syn match	csXmlLineCommentLeader	"///" contained144syn match	csXmlLineComment	"///.*$" contains=csXmlLineCommentLeader,@csXml,@Spell keepend145syn match	csXmlBlockCommentMiddle	"^\s*\zs\*" contained146syn region	csXmlBlockComment	start="/\*\*" end="\*/" contains=@csXml,@Spell,csXmlBlockCommentMiddle keepend147syn include	@csXml syntax/xml.vim148hi def link	xmlRegion Comment149 150" Since syntax/xml.vim contains `syn spell toplevel`, we need to set it back to `default` here.151syn spell default152 153" Pre-processing directives154syn region	csPreProcDeclaration	start="^\s*\zs#\s*\%(define\|undef\)\>" end="$" contains=csLineComment keepend155syn region	csPreProcConditional	start="^\s*\zs#\s*\%(if\|elif\)\>" end="$" contains=csLineComment keepend156syn region	csPreProcConditional	start="^\s*\zs#\s*\%(else\|endif\)\>" end="$" contains=csLineComment keepend157syn region	csPreProcLine	start="^\s*\zs#\s*line\>" end="$" contains=csLineComment keepend158syn region	csPreProcDiagnostic	start="^\s*\zs#\s*\%(error\|warning\)\>" end="$"159syn region	csPreProcConditionalSection	matchgroup=csPreProcRegion start="^\s*#\s*region\>.*" end="^\s*#\s*endregion\>.*" transparent fold contains=TOP160syn region	csPreProcPragma	start="^\s*\zs#\s*pragma\>" end="$" contains=csLineComment keepend161syn region	csPreProcNullable	start="^\s*\zs#\s*nullable\>" end="$" contains=csLineComment keepend162 163if expand('%:e') == 'csx' || getline('1') =~ '^#!.*\<dotnet-script\>'164  syn region	csPreProcInclude	start="^\s*\zs#\s*\%(load\|r\)\>" end="$" contains=csLineComment keepend165  syn match	csShebang	"\%^#!.*" display166endif167 168syn cluster	csPreProcessor	contains=csPreProc.*169 170syn region	csClassType	start="\<class\>"hs=s+6 end=">" end="[:{]"me=e-1 contains=csClass171" csUserType may be defined by user scripts/plugins - it should be contained in csNewType172syn region	csNewType	start="\<new\>"hs=s+4 end="[;\n{(<\[]"me=e-1 contains=csNew,@csNamespaceAlias,csUserType173syn region	csIsType	start=" is "hs=s+4 end="[A-Za-z0-9]\+" oneline contains=csIsAs174syn region	csIsType	start=" as "hs=s+4 end="[A-Za-z0-9]\+" oneline contains=csIsAs175syn keyword	csNew	new contained176syn keyword	csClass	class contained177syn keyword	csIsAs	is as178 179syn keyword	csBoolean	false true180syn keyword	csNull	null181 182" Strings and constants183syn match	csSpecialError	"\\." contained184syn match	csSpecialCharError	"[^']" contained185" Character literals186syn match	csSpecialChar	+\\["\\'0abfnrtv]+ contained display187syn match	csUnicodeNumber	+\\x\x\{1,4}+ contained contains=csUnicodeSpecifier display188syn match	csUnicodeNumber	+\\u\x\{4}+ contained contains=csUnicodeSpecifier display189syn match	csUnicodeNumber	+\\U00\x\{6}+ contained contains=csUnicodeSpecifier display190syn match	csUnicodeSpecifier	+\\[uUx]+ contained display191 192syn region	csString	matchgroup=csQuote start=+"+ end=+"\%(u8\)\=+ end=+$+ extend contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell193 194for s:i in range(3, get(g:, "cs_raw_string_quote_count", 8))195  exe 'syn region csRawString'       .. s:i .. ' matchgroup=csQuote start=+\z("\{' .. s:i .. '}\)+ end=+\z1+ oneline nextgroup=csRawStringError' .. s:i196  exe 'syn region csRawString'       .. s:i .. ' matchgroup=csQuote start=+\z("\{' .. s:i .. '}\)\s*$+ end=+^\s*\z1+ nextgroup=csRawStringError' .. s:i .. ' contains=csRawStringError' .. s:i197  exe 'syn match  csRawStringError'  .. s:i .. ' /\%("\{'        .. s:i .. '}\)\@' .. s:i .. '<="\+/ contained'198  exe 'syn match  csRawStringError'  .. s:i .. ' /\S.\{-}\s*"\{' .. s:i .. '}"\@!/ contained'199 200  exe 'hi def link csRawString'      .. s:i .. ' csString'201  exe 'hi def link csRawStringError' .. s:i .. ' Error'202endfor203unlet s:i204 205syn match	csCharacter	"'[^']*'" contains=csSpecialChar,csSpecialCharError,csUnicodeNumber display206syn match	csCharacter	"'\\''" contains=csSpecialChar display207syn match	csCharacter	"'[^\\]'" display208 209" Numbers210syn case	ignore211syn match	csInteger	"\<0b[01_]*[01]\%([lu]\|lu\|ul\)\=\>" display212syn match	csInteger	"\<\d\+\%(_\+\d\+\)*\%([lu]\|lu\|ul\)\=\>" display213syn match	csInteger	"\<0x[[:xdigit:]_]*\x\%([lu]\|lu\|ul\)\=\>" display214syn match	csReal	"\<\d\+\%(_\+\d\+\)*\.\d\+\%(_\+\d\+\)*\%\(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=" display215syn match	csReal	"\.\d\+\%(_\+\d\+\)*\%(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=\>" display216syn match	csReal	"\<\d\+\%(_\+\d\+\)*e[-+]\=\d\+\%(_\+\d\+\)*[fdm]\=\>" display217syn match	csReal	"\<\d\+\%(_\+\d\+\)*[fdm]\>" display218syn case	match219syn cluster     csNumber	contains=csInteger,csReal220 221syn region	csInterpolatedString	matchgroup=csQuote start=+\$"+ end=+"\%(u8\)\=+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,@Spell222 223syn region	csInterpolation	matchgroup=csInterpolationDelimiter start=+{+ end=+}+ keepend contained contains=@csAll,csBraced,csBracketed,csInterpolationAlign,csInterpolationFormat224syn match	csEscapedInterpolation	"{{" transparent contains=NONE display225syn match	csEscapedInterpolation	"}}" transparent contains=NONE display226syn region	csInterpolationAlign	matchgroup=csInterpolationAlignDel start=+,+ end=+}+ end=+:+me=e-1 contained contains=@csNumber,csBoolean,csConstant,csCharacter,csParens,csOpSymbols,csString,csBracketed display227syn match	csInterpolationFormat	+:[^}]\+}+ contained contains=csInterpolationFormatDel display228syn match	csInterpolationAlignDel	+,+ contained display229syn match	csInterpolationFormatDel	+:+ contained display230 231syn region	csVerbatimString	matchgroup=csQuote start=+@"+ end=+"\%(u8\)\=+ skip=+""+ extend contains=csVerbatimQuote,@Spell232 233" Interpolated raw string literals234for s:i in range(1, get(g:, "cs_raw_string_interpolation_brace_count", 8))235  exe 'syn region csInterpolatedRawString'       .. s:i .. ' matchgroup=csQuote start=+$\{' .. s:i .. '}\z("""\+\)+ end=+\z1+ extend contains=csInterpolation' .. s:i .. ',csInterpolationDelimiterError' .. s:i .. ',@Spell'236  exe 'syn match  csInterpolationDelimiterError' .. s:i .. ' "}\{' .. s:i .. '}" contained'237  exe 'syn match  csInterpolationDelimiterError' .. s:i .. ' "{\{' .. 2 * s:i .. ',}" contained'238  exe 'syn match  csInterpolationDelimiterError' .. s:i .. ' "}\{' .. 2 * s:i .. ',}" contained'239  exe 'syn region csInterpolation'               .. s:i .. ' matchgroup=csInterpolationDelimiter start=+\%({\{' .. s:i .. '}\)\@' .. s:i .. '<!{\{' .. s:i .. '}{\@!+ end=+}\@<!}\{' .. s:i .. '}\%(}\{' .. s:i .. '}\)\@!+' ..240        \ ' keepend contained contains=@csAll,csBraced,csBracketed,csInterpolationAlign,csInterpolationFormat,csInterpolationDelimiterError' .. s:i241 242  exe 'hi def link csInterpolationDelimiterError' .. s:i .. ' Error'243  exe 'hi def link csInterpolatedRawString'       .. s:i .. ' csRawString'244endfor245unlet s:i246 247syn match	csVerbatimQuote	+""+ contained248 249syn region	csInterVerbString	matchgroup=csQuote start=+$@"+ start=+@$"+ end=+"\%(u8\)\=+ skip=+""+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,csVerbatimQuote,@Spell250 251syn cluster	csString	contains=csString,csInterpolatedString,csVerbatimString,csInterVerbString,csRawString252 253syn cluster	csLiteral	contains=csBoolean,@csNumber,csCharacter,@csString,csNull254 255syn region	csBracketed	matchgroup=csParens start=+(+ end=+)+ extend contained transparent contains=@csAll,csBraced,csBracketed256syn region	csBraced	matchgroup=csParens start=+{+ end=+}+ extend contained transparent contains=@csAll,csBraced,csBracketed257 258syn cluster	csAll	contains=@csLiteral,csClassType,@csComment,csEndColon,csIsType,csLabel,csLogicSymbols,csNewType,csOpSymbols,csParens,@csPreProcessor,csSummary,@csNamespaceAlias,csType,csUnicodeNumber,csUserType,csUserIdentifier,csUserInterface,csUserMethod259 260" Keyword identifiers261syn match csIdentifier "@\h\w*"262 263" The default highlighting.264hi def link	csUnspecifiedStatement	Statement265hi def link	csUnsupportedStatement	Statement266hi def link	csUnspecifiedKeyword	Keyword267 268hi def link	csGlobalNamespaceAlias	Include269 270hi def link	csType	Type271hi def link	csClassType	Type272hi def link	csIsType	Type273 274hi def link	csStorage	Structure275hi def link	csClass	Structure276hi def link	csNew	Statement277hi def link	csIsAs 	Keyword278hi def link	csAccessor	Keyword279hi def link	csAccess	Keyword280 281hi def link	csLinq	Statement282 283hi def link	csStatement	Statement284hi def link	csRepeat	Repeat285hi def link	csConditional	Conditional286hi def link	csLabel	Label287hi def link	csException	Exception288 289hi def link	csModifier	StorageClass290hi def link	csAccessModifier	csModifier291hi def link	csAsyncModifier	csModifier292hi def link	csCheckedModifier	csModifier293hi def link	csManagedModifier	csModifier294hi def link	csUsingModifier	csModifier295 296hi def link	csTodo	Todo297hi def link	csComment	Comment298hi def link	csLineComment	csComment299hi def link	csBlockComment	csComment300 301hi def link	csKeywordOperator	Keyword302hi def link	csAsyncOperator	csKeywordOperator303hi def link	csTypeOf	csKeywordOperator304hi def link	csTypeOfOperand	Typedef305hi def link	csTypeOfError	Error306hi def link	csOpSymbols	Operator307hi def link	csLogicSymbols	Operator308 309hi def link	csSpecialError	Error310hi def link	csSpecialCharError	Error311hi def link	csString	String312hi def link	csRawString	csString313hi def link	csRawStringError	Error314hi def link	csQuote	String315hi def link	csInterpolatedString	String316hi def link	csVerbatimString	String317hi def link	csInterVerbString	String318hi def link	csVerbatimQuote	SpecialChar319 320hi def link     csPreProc	PreProc321hi def link	csPreProcDeclaration	Define322hi def link	csPreProcConditional	PreCondit323hi def link	csPreProcLine	csPreProc324hi def link	csPreProcDiagnostic	csPreProc325hi def link	csPreProcRegion	csPreProc326hi def link	csPreProcPragma	csPreProc327hi def link	csPreProcNullable	csPreProc328hi def link	csPreProcInclude	csPreProc329hi def link	csShebang	csPreProc330 331hi def link	csConstant	Constant332hi def link	csNull	Constant333hi def link	csBoolean	Boolean334hi def link	csCharacter	Character335hi def link	csSpecialChar	SpecialChar336hi def link	csInteger	Number337hi def link	csReal	Float338hi def link	csUnicodeNumber	SpecialChar339hi def link	csUnicodeSpecifier	SpecialChar340hi def link	csInterpolationDelimiter	Delimiter341hi def link	csInterpolationAlignDel	csInterpolationDelimiter342hi def link	csInterpolationFormat	csInterpolationDelimiter343hi def link	csInterpolationFormatDel	csInterpolationDelimiter344 345hi def link	csGenericBraces	csBraces346 347" xml markup348hi def link	csXmlLineCommentLeader	Comment349hi def link	csXmlLineComment	Comment350hi def link	csXmlBlockComment	Comment351hi def link	csXmlBlockCommentMiddle	csXmlBlockComment352hi def link	csXmlTag	Statement353hi def link	csXmlAttrib	Statement354 355let b:current_syntax = 'cs'356 357let &cpoptions = s:save_cpo358unlet s:save_cpo359 360" vim: vts=16,28361 
codekingpro/portable-devtools · Team Ai