fileTypes cs foldingStartMarker ^\s*/\*|^(?![^{]*?//|[^{]*?/\*(?!.*?\*/.*?\{)).*?\{\s*($|//|/\*(?!.*?\*/.*\S)) foldingStopMarker ^\s*\*/|^\s*\} keyEquivalent ^~C name C# patterns begin /// captures 0 name punctuation.definition.comment.source.cs end $\n? name comment.block.documentation.source.cs patterns begin (</?)(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]+) captures 1 name punctuation.definition.tag.source.cs 2 name entity.name.tag.namespace.source.cs 3 name entity.name.tag.source.cs 4 name punctuation.separator.namespace.source.cs 5 name entity.name.tag.localname.source.cs end (/?>) name keyword.other.documentation.source.cs patterns captures 1 name entity.other.attribute-name.namespace.source.cs 2 name entity.other.attribute-name.source.cs 3 name punctuation.separator.namespace.source.cs 4 name entity.other.attribute-name.localname.source.cs match (?:([-_a-zA-Z0-9]+)((:)))?([_a-zA-Z-]+)= include #doubleQuotedString include #singleQuotedString include #comments begin (?x)^\s* ((?:\b(?:new|public|protected|internal|private|abstract|sealed|static)\b\s)*) (class)\s+ ([A-Za-z_]\w+)\b captures 1 name storage.modifier.source.cs 2 name storage.type.source.cs 3 name entity.name.type.class.source.cs end { name meta.definition.class.source.cs patterns include #classInheritance begin (?x)^\s* # start of line ((?:\b(?:new|public|protected|internal|private|static|virtual|sealed|override|abstract|extern)\b\s*)*) # method-modifiers \b((?:\w+\.)*[A-Za-z_]\w*)\b\s* # type (operator)\s+ # operator overload ((?:\+|-|!|~|\+\+|--|true|false|\*|/|%|\&|\||\^|<<|>>|==|!=|<|>|<=|>=)\s*) # operator name (?=\() captures 1 name storage.modifier.source.cs 2 name storage.type.source.cs 3 name storage.modifier.source.cs 4 name entity.name.function.source.cs end \) name meta.definition.operator.source.cs patterns include #statementRemainder begin (?x)^\s* # start of line ((?:\b(?:new|public|protected|internal|private|static|virtual|sealed|override|abstract|extern)\b\s*)*) # method-modifiers \b((?:\w+\.)*[A-Za-z_]\w*)\b\s* # type ([A-Za-z_]\w*)\s* # name (?=\() captures 1 name storage.modifier.source.cs 2 name storage.type.source.cs 3 name entity.name.function.source.cs end \) name meta.definition.method.source.cs patterns include #statementRemainder match \b(true|false|null|this|base)\b name constant.language.source.cs match \b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\b name constant.numeric.source.cs match \b(if|else|while|for|foreach|do|return|continue|break|switch|case|default|goto|throw|try|catch|finally|lock|yield)\b name keyword.control.source.cs match \b(new|is|checked|unchecked|typeof|sizeof|override|in|out|ref|readonly|params|stackalloc|as)\b name keyword.operator.source.cs match \b(event|delegate|explicit|implicit|in|set|get)\b name keyword.other.source.cs match \b(internal|public|protected|private|static|const|new|sealed|abstract|override|extern|unsafe|readonly|volatile|operator)\b name storage.modifier.source.cs include #doubleQuotedStringLiteral include #doubleQuotedString include #singleQuotedString captures 1 name keyword.other.using.source.cs 2 name entity.name.type.package.source.cs match ^\s*(using)\s+([^ ;]*); name meta.keyword.using.source.cs include #builtinTypes captures 1 name keyword.other.namespace.source.cs 2 name entity.name.type.namespace.source.cs match ^\s*(namespace)\s+([^ ]+)(?:\s*{)?$ name meta.keyword.namespace.source.cs captures 2 name keyword.control.import.source.cs match ^(#)\s*(if|else|elif|endif|define|undef|warning|error|line|region|endregion)\b name meta.preprocessor.source.cs repository builtinTypes patterns match \b(bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|class|struct|enum|interface)\b name storage.type.source.cs classInheritance patterns begin : end (?={) patterns captures 1 name storage.type.source.cs match \s*,?([A-Za-z_]\w*)\b comments patterns begin /\* captures 0 name punctuation.definition.comment.source.cs end \*/\n? name comment.block.source.cs captures 1 name punctuation.definition.comment.source.cs match (//).*$\n? name comment.line.double-slash.source.cs doubleQuotedString begin " beginCaptures 0 name punctuation.definition.string.begin.source.cs end " endCaptures 0 name punctuation.definition.string.end.source.cs name string.quoted.double.source.cs patterns match \\. name constant.character.escape.source.cs doubleQuotedStringLiteral captures 0 name punctuation.definition.string.begin.source.cs match @"([^"]|"")*" name string.quoted.double.literal.source.cs singleQuotedString begin ' beginCaptures 0 name punctuation.definition.string.begin.source.cs end ' endCaptures 0 name punctuation.definition.string.end.source.cs name string.quoted.single.xml patterns match \\. name constant.character.escape.source.cs statementRemainder patterns begin \( end (?=\)) name meta.definition.param-list.source.cs patterns include #builtinTypes scopeName source.cs uuid 1BA75B32-707C-11D9-A928-000D93589AF6