csharp top-level property
Language
csharp
final
Implementation
final csharp = Language(
id: "csharp",
refs: {
'~contains~6~contains~2': Mode(
begin: "<",
end: ">",
contains: [
Mode(
beginKeywords: "in out",
),
ModeReference('~contains~6~contains~1'),
],
),
'~contains~6~contains~1': Mode(
scope: "title",
begin: "[a-zA-Z](\\.?\\w)*",
relevance: 0,
),
'~contains~4~variants~0~contains~3~contains~2': Mode(
className: "string",
begin: "@\"",
end: "\"",
contains: [
ModeReference(
'~contains~4~variants~0~contains~3~contains~1~contains~3~contains~2~contains~0'),
],
),
'~contains~4~variants~0~contains~3~contains~1~contains~3~contains~5': Mode(
className: "number",
variants: [
Mode(
begin: "\\b(0b[01']+)",
),
Mode(
begin:
"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)",
),
Mode(
begin:
"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)",
),
],
relevance: 0,
),
'~contains~4~variants~0~contains~3~contains~1~contains~3~contains~2~contains~0':
Mode(
begin: "\"\"",
),
'~contains~4~variants~0~contains~3~contains~1~contains~3': Mode(
className: "subst",
begin: "\\{",
end: "\\}",
keywords: {
"keyword": [
"abstract",
"as",
"base",
"break",
"case",
"catch",
"class",
"const",
"continue",
"do",
"else",
"event",
"explicit",
"extern",
"finally",
"fixed",
"for",
"foreach",
"goto",
"if",
"implicit",
"in",
"interface",
"internal",
"is",
"lock",
"namespace",
"new",
"operator",
"out",
"override",
"params",
"private",
"protected",
"public",
"readonly",
"record",
"ref",
"return",
"scoped",
"sealed",
"sizeof",
"stackalloc",
"static",
"struct",
"switch",
"this",
"throw",
"try",
"typeof",
"unchecked",
"unsafe",
"using",
"virtual",
"void",
"volatile",
"while",
"add",
"alias",
"and",
"ascending",
"async",
"await",
"by",
"descending",
"equals",
"from",
"get",
"global",
"group",
"init",
"into",
"join",
"let",
"nameof",
"not",
"notnull",
"on",
"or",
"orderby",
"partial",
"remove",
"select",
"set",
"unmanaged",
"value|0",
"var",
"when",
"where",
"with",
"yield"
],
"built_in": [
"bool",
"byte",
"char",
"decimal",
"delegate",
"double",
"dynamic",
"enum",
"float",
"int",
"long",
"nint",
"nuint",
"object",
"sbyte",
"short",
"string",
"ulong",
"uint",
"ushort"
],
"literal": ["default", "false", "null", "true"]
},
illegal: "\\n",
contains: [
Mode(
className: "string",
begin: "\\\$@\"",
end: "\"",
contains: [
Mode(
begin: "\\{\\{",
),
Mode(
begin: "\\}\\}",
),
Mode(
begin: "\"\"",
),
ModeReference(
'~contains~4~variants~0~contains~3~contains~1~contains~3'),
],
illegal: "\\n",
),
ModeReference('~contains~4~variants~0~contains~3~contains~1'),
Mode(
className: "string",
begin: "@\"",
end: "\"",
contains: [
ModeReference(
'~contains~4~variants~0~contains~3~contains~1~contains~3~contains~2~contains~0'),
],
illegal: "\\n",
),
APOS_STRING_MODE,
QUOTE_STRING_MODE,
ModeReference(
'~contains~4~variants~0~contains~3~contains~1~contains~3~contains~5'),
Mode(
scope: "comment",
begin: "/\\*",
end: "\\*/",
contains: [
Mode(
scope: "doctag",
begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
end: "(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",
excludeBegin: true,
relevance: 0,
),
Mode(
begin:
"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
),
],
illegal: "\\n",
),
],
),
'~contains~4~variants~0~contains~3~contains~1': Mode(
className: "string",
begin: "\\\$\"",
end: "\"",
illegal: "\\n",
contains: [
Mode(
begin: "\\{\\{",
),
Mode(
begin: "\\}\\}",
),
BACKSLASH_ESCAPE,
ModeReference(
'~contains~4~variants~0~contains~3~contains~1~contains~3'),
],
),
'~contains~4~variants~0': Mode(
className: "string",
begin: "\\\$@\"",
end: "\"",
contains: [
Mode(
begin: "\\{\\{",
),
Mode(
begin: "\\}\\}",
),
Mode(
begin: "\"\"",
),
Mode(
className: "subst",
begin: "\\{",
end: "\\}",
keywords: {
"keyword": [
"abstract",
"as",
"base",
"break",
"case",
"catch",
"class",
"const",
"continue",
"do",
"else",
"event",
"explicit",
"extern",
"finally",
"fixed",
"for",
"foreach",
"goto",
"if",
"implicit",
"in",
"interface",
"internal",
"is",
"lock",
"namespace",
"new",
"operator",
"out",
"override",
"params",
"private",
"protected",
"public",
"readonly",
"record",
"ref",
"return",
"scoped",
"sealed",
"sizeof",
"stackalloc",
"static",
"struct",
"switch",
"this",
"throw",
"try",
"typeof",
"unchecked",
"unsafe",
"using",
"virtual",
"void",
"volatile",
"while",
"add",
"alias",
"and",
"ascending",
"async",
"await",
"by",
"descending",
"equals",
"from",
"get",
"global",
"group",
"init",
"into",
"join",
"let",
"nameof",
"not",
"notnull",
"on",
"or",
"orderby",
"partial",
"remove",
"select",
"set",
"unmanaged",
"value|0",
"var",
"when",
"where",
"with",
"yield"
],
"built_in": [
"bool",
"byte",
"char",
"decimal",
"delegate",
"double",
"dynamic",
"enum",
"float",
"int",
"long",
"nint",
"nuint",
"object",
"sbyte",
"short",
"string",
"ulong",
"uint",
"ushort"
],
"literal": ["default", "false", "null", "true"]
},
contains: [
ModeReference('~contains~4~variants~0'),
ModeReference('~contains~4~variants~0~contains~3~contains~1'),
ModeReference('~contains~4~variants~0~contains~3~contains~2'),
APOS_STRING_MODE,
QUOTE_STRING_MODE,
ModeReference(
'~contains~4~variants~0~contains~3~contains~1~contains~3~contains~5'),
C_BLOCK_COMMENT_MODE,
],
),
],
),
'~contains~4': Mode(
variants: [
ModeReference('~contains~4~variants~0'),
ModeReference('~contains~4~variants~0~contains~3~contains~1'),
ModeReference('~contains~4~variants~0~contains~3~contains~2'),
APOS_STRING_MODE,
QUOTE_STRING_MODE,
],
),
},
name: "C#",
aliases: ["cs", "c#"],
keywords: {
"keyword": [
"abstract",
"as",
"base",
"break",
"case",
"catch",
"class",
"const",
"continue",
"do",
"else",
"event",
"explicit",
"extern",
"finally",
"fixed",
"for",
"foreach",
"goto",
"if",
"implicit",
"in",
"interface",
"internal",
"is",
"lock",
"namespace",
"new",
"operator",
"out",
"override",
"params",
"private",
"protected",
"public",
"readonly",
"record",
"ref",
"return",
"scoped",
"sealed",
"sizeof",
"stackalloc",
"static",
"struct",
"switch",
"this",
"throw",
"try",
"typeof",
"unchecked",
"unsafe",
"using",
"virtual",
"void",
"volatile",
"while",
"add",
"alias",
"and",
"ascending",
"async",
"await",
"by",
"descending",
"equals",
"from",
"get",
"global",
"group",
"init",
"into",
"join",
"let",
"nameof",
"not",
"notnull",
"on",
"or",
"orderby",
"partial",
"remove",
"select",
"set",
"unmanaged",
"value|0",
"var",
"when",
"where",
"with",
"yield"
],
"built_in": [
"bool",
"byte",
"char",
"decimal",
"delegate",
"double",
"dynamic",
"enum",
"float",
"int",
"long",
"nint",
"nuint",
"object",
"sbyte",
"short",
"string",
"ulong",
"uint",
"ushort"
],
"literal": ["default", "false", "null", "true"]
},
illegal: "::",
contains: [
Mode(
scope: "comment",
begin: "///",
end: "\$",
contains: [
Mode(
className: "doctag",
variants: [
Mode(
begin: "///",
relevance: 0,
),
Mode(
begin: "<!--|-->",
),
Mode(
begin: "</?",
end: ">",
),
],
),
Mode(
scope: "doctag",
begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
end: "(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",
excludeBegin: true,
relevance: 0,
),
Mode(
begin:
"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
),
],
returnBegin: true,
),
C_LINE_COMMENT_MODE,
C_BLOCK_COMMENT_MODE,
Mode(
className: "meta",
begin: "#",
end: "\$",
keywords: {
"keyword":
"if else elif endif define undef warning error line region endregion pragma checksum"
},
),
ModeReference('~contains~4'),
ModeReference(
'~contains~4~variants~0~contains~3~contains~1~contains~3~contains~5'),
Mode(
beginKeywords: "class interface",
relevance: 0,
end: "[{;=]",
illegal: "[^\\s:,]",
contains: [
Mode(
beginKeywords: "where class",
),
ModeReference('~contains~6~contains~1'),
ModeReference('~contains~6~contains~2'),
C_LINE_COMMENT_MODE,
C_BLOCK_COMMENT_MODE,
],
),
Mode(
beginKeywords: "namespace",
relevance: 0,
end: "[{;=]",
illegal: "[^\\s:]",
contains: [
ModeReference('~contains~6~contains~1'),
C_LINE_COMMENT_MODE,
C_BLOCK_COMMENT_MODE,
],
),
Mode(
beginKeywords: "record",
relevance: 0,
end: "[{;=]",
illegal: "[^\\s:]",
contains: [
ModeReference('~contains~6~contains~1'),
ModeReference('~contains~6~contains~2'),
C_LINE_COMMENT_MODE,
C_BLOCK_COMMENT_MODE,
],
),
Mode(
className: "meta",
begin: "^\\s*\\[(?=[\\w])",
excludeBegin: true,
end: "\\]",
excludeEnd: true,
contains: [
Mode(
className: "string",
begin: "\"",
end: "\"",
),
],
),
Mode(
beginKeywords: "new return throw await else",
relevance: 0,
),
Mode(
className: "function",
begin:
"([a-zA-Z]\\w*(<[a-zA-Z]\\w*(\\s*,\\s*[a-zA-Z]\\w*)*>)?(\\[\\])?\\s+)+[a-zA-Z]\\w*\\s*(<[^=]+>\\s*)?\\(",
returnBegin: true,
end: "\\s*[{;=]",
excludeEnd: true,
keywords: {
"keyword": [
"abstract",
"as",
"base",
"break",
"case",
"catch",
"class",
"const",
"continue",
"do",
"else",
"event",
"explicit",
"extern",
"finally",
"fixed",
"for",
"foreach",
"goto",
"if",
"implicit",
"in",
"interface",
"internal",
"is",
"lock",
"namespace",
"new",
"operator",
"out",
"override",
"params",
"private",
"protected",
"public",
"readonly",
"record",
"ref",
"return",
"scoped",
"sealed",
"sizeof",
"stackalloc",
"static",
"struct",
"switch",
"this",
"throw",
"try",
"typeof",
"unchecked",
"unsafe",
"using",
"virtual",
"void",
"volatile",
"while",
"add",
"alias",
"and",
"ascending",
"async",
"await",
"by",
"descending",
"equals",
"from",
"get",
"global",
"group",
"init",
"into",
"join",
"let",
"nameof",
"not",
"notnull",
"on",
"or",
"orderby",
"partial",
"remove",
"select",
"set",
"unmanaged",
"value|0",
"var",
"when",
"where",
"with",
"yield"
],
"built_in": [
"bool",
"byte",
"char",
"decimal",
"delegate",
"double",
"dynamic",
"enum",
"float",
"int",
"long",
"nint",
"nuint",
"object",
"sbyte",
"short",
"string",
"ulong",
"uint",
"ushort"
],
"literal": ["default", "false", "null", "true"]
},
contains: [
Mode(
beginKeywords:
"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
relevance: 0,
),
Mode(
begin: "[a-zA-Z]\\w*\\s*(<[^=]+>\\s*)?\\(",
returnBegin: true,
contains: [
TITLE_MODE,
ModeReference('~contains~6~contains~2'),
],
relevance: 0,
),
Mode(
match: "\\(\\)",
),
Mode(
className: "params",
begin: "\\(",
end: "\\)",
excludeBegin: true,
excludeEnd: true,
keywords: {
"keyword": [
"abstract",
"as",
"base",
"break",
"case",
"catch",
"class",
"const",
"continue",
"do",
"else",
"event",
"explicit",
"extern",
"finally",
"fixed",
"for",
"foreach",
"goto",
"if",
"implicit",
"in",
"interface",
"internal",
"is",
"lock",
"namespace",
"new",
"operator",
"out",
"override",
"params",
"private",
"protected",
"public",
"readonly",
"record",
"ref",
"return",
"scoped",
"sealed",
"sizeof",
"stackalloc",
"static",
"struct",
"switch",
"this",
"throw",
"try",
"typeof",
"unchecked",
"unsafe",
"using",
"virtual",
"void",
"volatile",
"while",
"add",
"alias",
"and",
"ascending",
"async",
"await",
"by",
"descending",
"equals",
"from",
"get",
"global",
"group",
"init",
"into",
"join",
"let",
"nameof",
"not",
"notnull",
"on",
"or",
"orderby",
"partial",
"remove",
"select",
"set",
"unmanaged",
"value|0",
"var",
"when",
"where",
"with",
"yield"
],
"built_in": [
"bool",
"byte",
"char",
"decimal",
"delegate",
"double",
"dynamic",
"enum",
"float",
"int",
"long",
"nint",
"nuint",
"object",
"sbyte",
"short",
"string",
"ulong",
"uint",
"ushort"
],
"literal": ["default", "false", "null", "true"]
},
relevance: 0,
contains: [
ModeReference('~contains~4'),
ModeReference(
'~contains~4~variants~0~contains~3~contains~1~contains~3~contains~5'),
C_BLOCK_COMMENT_MODE,
],
),
C_LINE_COMMENT_MODE,
C_BLOCK_COMMENT_MODE,
],
),
Mode(
begin: "@[a-zA-Z]\\w*",
relevance: 0,
),
],
);