@kong-ui-public/documentation 0.3.42 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Tableau10-GLA_9iAD-BMurskAd.js +9 -0
- package/dist/arc-BSRpyMf3-C5dasNo_.js +86 -0
- package/dist/array-CqVTtuYm-fKLgkG2b.js +6 -0
- package/dist/astro-mwoSwJnq-CNh-xuM0.js +27 -0
- package/dist/blockDiagram-6b2b5046-D02VCbQO-CPmGy0xX.js +1224 -0
- package/dist/c-eDnjw9rh-eDnjw9rh.js +87 -0
- package/dist/c4Diagram-b947cdbb-gYcL5VzP-DIDY83e1.js +1578 -0
- package/dist/channel-DHTQ8Ynn-7OPGex2S.js +5 -0
- package/dist/classDiagram-35230388-JdSKLSZv-D2crBRy-.js +217 -0
- package/dist/classDiagram-v2-412acd34-DFFRHXE_-B6aCxlD1.js +200 -0
- package/dist/clone-p6h9XXNm-3JQ-HRC6.js +8 -0
- package/dist/coffee-CRlSxcc3-CY091_1T.js +108 -0
- package/dist/cpp-DizfY48B-CA38N4Mn.js +208 -0
- package/dist/createText-423428c9-LivTKT7b-BXNfjcdp.js +2964 -0
- package/dist/csharp-uGDiXTZn-uGDiXTZn.js +762 -0
- package/dist/css-CAzixsid-CEpuX1HY.js +511 -0
- package/dist/csv-D4BoHddH-D4BoHddH.js +7 -0
- package/dist/diff-Bo5iyMQ2-Bo5iyMQ2.js +7 -0
- package/dist/docker-B10O2enb-B10O2enb.js +7 -0
- package/dist/documentation.es.js +5 -3130
- package/dist/documentation.umd.js +10152 -50
- package/dist/edges-d417c7a0-C1ggiwWz-Aj0OUf7e.js +1082 -0
- package/dist/erDiagram-0ea73325-mz0Z_-DA-Dr01LsTB.js +924 -0
- package/dist/flowDb-d35e309a-CPyxEMIt-lofeyUuw.js +1126 -0
- package/dist/flowDiagram-d949d7c1-DqCa0HNN-BK5wNO9Z.js +782 -0
- package/dist/flowDiagram-v2-49332944-UMosz1sZ-BG39AuNP.js +17 -0
- package/dist/flowchart-elk-definition-27cc417a-D2UKpS6N-r2p34307.js +48387 -0
- package/dist/ganttDiagram-5c869e3b-CVBHw4pG-CaG9QXQM.js +2490 -0
- package/dist/git-commit-CWf81VOF-DtOZSoIU.js +9 -0
- package/dist/git-rebase-sR-yVH_J-D5M2oE9O.js +9 -0
- package/dist/gitGraphDiagram-b9d81de9-BGm3fU0n-CbCpf-4j.js +1262 -0
- package/dist/go-BCCWZWY1-BCCWZWY1.js +7 -0
- package/dist/graph-4FyIWFHN-774TpNLL.js +870 -0
- package/dist/graphql-CT32SSoq-1pBWfpcR.js +18 -0
- package/dist/haml-8RvrfhLO-Bbc4xoLP.js +19 -0
- package/dist/handlebars-Cr5ro0bH-CLcCNLtV.js +15 -0
- package/dist/haskell-BfFu8DD8-BmkPJdLL.js +565 -0
- package/dist/html-BZB5lEhh-B74zAnWx.js +84 -0
- package/dist/html-derivative-0y7sV5Qc-D8-muTWn.js +9 -0
- package/dist/index-8fae9850-_CN7MNjP-Cq-s0PmS.js +373 -0
- package/dist/index-B-5DuDrq.js +29996 -0
- package/dist/infoDiagram-db7b18fc-V446j9uR-GSa8bniv.js +319 -0
- package/dist/ini-BsUFIxsI-BsUFIxsI.js +7 -0
- package/dist/init-DjUOC4st-C8Nwz6AJ.js +16 -0
- package/dist/java-Bk2JzfKB-Bk2JzfKB.js +74 -0
- package/dist/javascript-DqVBMyXe-DqVBMyXe.js +705 -0
- package/dist/journeyDiagram-d5636530-CFiu7dnV-DJMu6A22.js +803 -0
- package/dist/json-B12k4-6m-B12k4-6m.js +31 -0
- package/dist/json5-CvqQZK9I-CvqQZK9I.js +23 -0
- package/dist/jsonc-v2qGKRJY-v2qGKRJY.js +31 -0
- package/dist/jsonl-izxnMeZX-izxnMeZX.js +31 -0
- package/dist/jsx-aDp7j9_Z-aDp7j9_Z.js +705 -0
- package/dist/kotlin-NOMOielb-NOMOielb.js +7 -0
- package/dist/latex-Bw_ghldO-BlUAi6pB.js +339 -0
- package/dist/layout-2-aEcfuw-BqqWy5wB.js +1524 -0
- package/dist/less-CW2GmQHL-CW2GmQHL.js +165 -0
- package/dist/line-nVq5kEiy-DtZd3PHZ.js +34 -0
- package/dist/linear-Bz4oRFvQ-C869GXbm.js +447 -0
- package/dist/liquid-DJ2rh7oT-FwZwa67Y.js +28 -0
- package/dist/lua-5TZ-G8Be-CogscVHC.js +9 -0
- package/dist/make-whncTQWE-whncTQWE.js +7 -0
- package/dist/markdown-DYKdIx5--DYKdIx5-.js +135 -0
- package/dist/material-theme-lighter-BRE1Bis3-BRE1Bis3.js +769 -0
- package/dist/material-theme-palenight-Dhz61Tee-Dhz61Tee.js +769 -0
- package/dist/mdc-D0DPLwil-BfE3hy8_.js +88 -0
- package/dist/mdx-CKDMxEaL-CKDMxEaL.js +7 -0
- package/dist/mermaid-BxNM-z-u-BxNM-z-u.js +7 -0
- package/dist/mindmap-definition-377f8f1f-C2vFYDMs-B71SGbvx.js +19078 -0
- package/dist/nginx-C082G13W-vryM9k1W.js +9 -0
- package/dist/objective-c-BVtzkNiv-BVtzkNiv.js +115 -0
- package/dist/onig-BonMD2gC-BonMD2gC.js +4 -0
- package/dist/ordinal-MUacOSdK-B1MUT0BL.js +65 -0
- package/dist/pascal-CrvtytWS-CrvtytWS.js +7 -0
- package/dist/path-Crsf9Nsj-SiSjwXsf.js +91 -0
- package/dist/perl-D29UPKP6-Dez6-HRy.js +17 -0
- package/dist/php-D7Tl-iS7-BtPFrDEt.js +789 -0
- package/dist/pieDiagram-b0208e96-DhA_SoTh-CfDd9YdA.js +501 -0
- package/dist/plsql-8SPzZKaa-8SPzZKaa.js +7 -0
- package/dist/postcss-Cz2vjx_4-Cz2vjx_4.js +7 -0
- package/dist/powershell-B0buHCuS-B0buHCuS.js +7 -0
- package/dist/proto-6YaU_lta-6YaU_lta.js +7 -0
- package/dist/pug-DbFO7359-duYD8LVa.js +21 -0
- package/dist/python-BQXev0_W-BQXev0_W.js +524 -0
- package/dist/quadrantDiagram-0332be45-C8q96Ohm-DMblaqnx.js +903 -0
- package/dist/r-DU7Q70f1-DU7Q70f1.js +7 -0
- package/dist/reg-DoGLEyFr-DoGLEyFr.js +7 -0
- package/dist/requirementDiagram-bf7890df-D30zCZjB-B_JBC9RM.js +767 -0
- package/dist/rst-Bm1i8IkK-C9EaDq6g.js +26 -0
- package/dist/ruby-CZZKXaz8-BxaDEkRP.js +102 -0
- package/dist/rust-CIl6NRUt-CIl6NRUt.js +7 -0
- package/dist/sankeyDiagram-0acdec17-B4vNjMaS-Bauvtonp.js +816 -0
- package/dist/sass-LqXmC1Fh-LqXmC1Fh.js +8 -0
- package/dist/scss-DjxgF7f7-DGTzny6p.js +98 -0
- package/dist/sequenceDiagram-c18d009d-BniqGSPK-DuYYUmiZ.js +2201 -0
- package/dist/shellscript-CUUTQKn5-CUUTQKn5.js +7 -0
- package/dist/shellsession-BIPXtZci-D6avbCwN.js +9 -0
- package/dist/splunk-C0K00wNV-C0K00wNV.js +7 -0
- package/dist/sql-DkzN59UV-DkzN59UV.js +27 -0
- package/dist/ssh-config-BbWAW6SY-BbWAW6SY.js +7 -0
- package/dist/stateDiagram-43596fc0-F0V9suMd-L2Ywe-J_.js +266 -0
- package/dist/stateDiagram-v2-2ead4f9c-DUgJH8tF-BVo1q2i1.js +184 -0
- package/dist/style.css +1 -1
- package/dist/styles-6860f46c-Dflmq0ac-BRNSwis6.js +1089 -0
- package/dist/styles-7383a064-Dg7mXkpq-C4bItohl.js +430 -0
- package/dist/styles-b2c874b6-HpcOhE4Y-Bj0upXzO.js +960 -0
- package/dist/stylus-CAHdVuhm-CAHdVuhm.js +21 -0
- package/dist/svelte-DAxjO8Sh-D0e501jC.js +29 -0
- package/dist/svgDrawCommon-0ee1b4e9-CNkCfzsJ-Bz_doYLk.js +64 -0
- package/dist/swift-x2DVyVjN-Bz5PC9YM.js +550 -0
- package/dist/timeline-definition-d977decf-Cl38e_0g-D_Dlqa-R.js +794 -0
- package/dist/toml-Dbtbfmwk-Dbtbfmwk.js +75 -0
- package/dist/tsx-BmwsDeeh-BmwsDeeh.js +705 -0
- package/dist/twig-B_Gr-ODl-Cl9Q0GWo.js +58 -0
- package/dist/types/components/DocumentationContent.vue.d.ts +8 -1
- package/dist/types/components/DocumentationContent.vue.d.ts.map +1 -1
- package/dist/types/components/DocumentationDisplay.vue.d.ts +5 -1
- package/dist/types/components/DocumentationDisplay.vue.d.ts.map +1 -1
- package/dist/types/components/ProductDocumentModal.vue.d.ts +1 -1
- package/dist/types/components/ProductDocumentModal.vue.d.ts.map +1 -1
- package/dist/types/composables/useI18n.d.ts +4 -0
- package/dist/types/composables/useI18n.d.ts.map +1 -1
- package/dist/typescript-AEg-ehu7-AEg-ehu7.js +672 -0
- package/dist/v-BuvBsUKm-BuvBsUKm.js +7 -0
- package/dist/vb-cqjo5dul-cqjo5dul.js +7 -0
- package/dist/viml-h3ATW6He-h3ATW6He.js +7 -0
- package/dist/vue-Dz-azHaT-B9qBHMZi.js +71 -0
- package/dist/vue-html-DIGKAAs4-BeHSIJcx.js +11 -0
- package/dist/wasm-xOGcJ9Ts-xOGcJ9Ts.js +7 -0
- package/dist/wgsl-hGLOfCya-hGLOfCya.js +7 -0
- package/dist/xml-CfRpfi_B-BH3JRQfc.js +9 -0
- package/dist/xsl-BAqhSCYL-BTKPZRNQ.js +9 -0
- package/dist/xychartDiagram-e50adddc-JdLmRUgg-HmDalTeo.js +1282 -0
- package/dist/yaml-PGla5xPP-HJurM_FJ.js +206 -0
- package/package.json +13 -13
- package/dist/prism-bash.min-DDo5CyRs-DihCfXgx.js +0 -7
- package/dist/prism-css.min-BrrzZC7b-BrrzZC7b.js +0 -7
- package/dist/prism-docker.min-DnIEokC3-D0v8IWN_.js +0 -22
- package/dist/prism-go.min-C7UmK6TW-C7UmK6TW.js +0 -1
- package/dist/prism-http.min-CsU3-jB8-CQ8PCDXl.js +0 -23
- package/dist/prism-javascript.min-CEqHqgbm-CEqHqgbm.js +0 -8
- package/dist/prism-jq.min-Q555vXZm-Q555vXZm.js +0 -8
- package/dist/prism-json.min-B1GJqK1k-B1GJqK1k.js +0 -1
- package/dist/prism-log.min-SDopTpKN-SDopTpKN.js +0 -1
- package/dist/prism-lua.min-DwRnUVfS-DwRnUVfS.js +0 -1
- package/dist/prism-makefile.min-DyutknhE-DyutknhE.js +0 -1
- package/dist/prism-markdown.min-B7US-xc7-DB9aF_ZA.js +0 -63
- package/dist/prism-python.min-BIfpAh5K-BIfpAh5K.js +0 -1
- package/dist/prism-regex.min-f8DNqi8X-f8DNqi8X.js +0 -4
- package/dist/prism-rest.min-B6veHRJF-B6veHRJF.js +0 -1
- package/dist/prism-rust.min-Cb-Mi-h0-Cb-Mi-h0.js +0 -9
- package/dist/prism-scss.min-B0csyGJo-B0csyGJo.js +0 -1
- package/dist/prism-sql.min-BHXzX-c_-BHXzX-c_.js +0 -1
- package/dist/prism-typescript.min-oSVeWCAd-oSVeWCAd.js +0 -5
- package/dist/prism-xml-doc.min-yj0YzRGe-KgTQx-dc.js +0 -7
- package/dist/prism-yaml.min-CTetcdKA-C1YzP_OY.js +0 -28
|
@@ -0,0 +1,762 @@
|
|
|
1
|
+
const e = Object.freeze({ displayName: "C#", name: "csharp", patterns: [{ include: "#preprocessor" }, { include: "#comment" }, { include: "#directives" }, { include: "#declarations" }, { include: "#script-top-level" }], repository: { "accessor-getter": { patterns: [{ begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, contentName: "meta.accessor.getter.cs", end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#statement" }] }, { include: "#accessor-getter-expression" }, { include: "#punctuation-semicolon" }] }, "accessor-getter-expression": { begin: "=>", beginCaptures: { 0: { name: "keyword.operator.arrow.cs" } }, contentName: "meta.accessor.getter.cs", end: "(?=;|\\})", patterns: [{ include: "#ref-modifier" }, { include: "#expression" }] }, "accessor-setter": { patterns: [{ begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, contentName: "meta.accessor.setter.cs", end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#statement" }] }, { begin: "=>", beginCaptures: { 0: { name: "keyword.operator.arrow.cs" } }, contentName: "meta.accessor.setter.cs", end: "(?=;|\\})", patterns: [{ include: "#ref-modifier" }, { include: "#expression" }] }, { include: "#punctuation-semicolon" }] }, "anonymous-method-expression": { patterns: [{ begin: `(?x)
|
|
2
|
+
((?:\\b(?:async|static)\\b\\s*)*)
|
|
3
|
+
(?:
|
|
4
|
+
(@?[_[:alpha:]][_[:alnum:]]*)\\b|
|
|
5
|
+
(\\()
|
|
6
|
+
(?<tuple>(?:[^()]|\\(\\g<tuple>\\))*)
|
|
7
|
+
(\\))
|
|
8
|
+
)\\s*
|
|
9
|
+
(=>)`, beginCaptures: { 1: { patterns: [{ match: "async|static", name: "storage.modifier.$0.cs" }] }, 2: { name: "entity.name.variable.parameter.cs" }, 3: { name: "punctuation.parenthesis.open.cs" }, 4: { patterns: [{ include: "#comment" }, { include: "#explicit-anonymous-function-parameter" }, { include: "#implicit-anonymous-function-parameter" }, { include: "#default-argument" }, { include: "#punctuation-comma" }] }, 5: { name: "punctuation.parenthesis.close.cs" }, 6: { name: "keyword.operator.arrow.cs" } }, end: "(?=[,;)}])", patterns: [{ include: "#intrusive" }, { begin: "(?={)", end: "(?=[,;)}])", patterns: [{ include: "#block" }, { include: "#intrusive" }] }, { begin: "\\b(ref)\\b|(?=\\S)", beginCaptures: { 1: { name: "storage.modifier.ref.cs" } }, end: "(?=[,;)}])", patterns: [{ include: "#expression" }] }] }, { begin: `(?x)
|
|
10
|
+
((?:\\b(?:async|static)\\b\\s*)*)
|
|
11
|
+
\\b(delegate)\\b\\s*`, beginCaptures: { 1: { patterns: [{ match: "async|static", name: "storage.modifier.$0.cs" }] }, 2: { name: "storage.type.delegate.cs" } }, end: "(?<=})|(?=[,;)}])", patterns: [{ include: "#intrusive" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#intrusive" }, { include: "#explicit-anonymous-function-parameter" }, { include: "#punctuation-comma" }] }, { include: "#block" }] }] }, "anonymous-object-creation-expression": { begin: "\\b(new)\\b\\s*(?=\\{|//|/\\*|$)", beginCaptures: { 1: { name: "keyword.operator.expression.new.cs" } }, end: "(?<=\\})", patterns: [{ include: "#comment" }, { include: "#initializer-expression" }] }, argument: { patterns: [{ match: "\\b(ref|in)\\b", name: "storage.modifier.$1.cs" }, { begin: "\\b(out)\\b", beginCaptures: { 1: { name: "storage.modifier.out.cs" } }, end: "(?=,|\\)|\\])", patterns: [{ include: "#declaration-expression-local" }, { include: "#expression" }] }, { include: "#expression" }] }, "argument-list": { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#named-argument" }, { include: "#argument" }, { include: "#punctuation-comma" }] }, "array-creation-expression": { begin: `(?x)
|
|
12
|
+
\\b(new|stackalloc)\\b\\s*
|
|
13
|
+
(?<type_name>
|
|
14
|
+
(?:
|
|
15
|
+
(?:
|
|
16
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
17
|
+
(?<name_and_type_args>
|
|
18
|
+
\\g<identifier>\\s*
|
|
19
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
20
|
+
)
|
|
21
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
22
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
23
|
+
)
|
|
24
|
+
(?:\\s*\\?\\s*)?
|
|
25
|
+
(?:\\s*
|
|
26
|
+
\\[
|
|
27
|
+
(?:\\s*,\\s*)*
|
|
28
|
+
\\]
|
|
29
|
+
\\s*
|
|
30
|
+
(?:\\?)?
|
|
31
|
+
\\s*
|
|
32
|
+
)*
|
|
33
|
+
)
|
|
34
|
+
)?\\s*
|
|
35
|
+
(?=\\[)`, beginCaptures: { 1: { name: "keyword.operator.expression.$1.cs" }, 2: { patterns: [{ include: "#type" }] } }, end: "(?<=\\])", patterns: [{ include: "#bracketed-argument-list" }] }, "as-expression": { captures: { 1: { name: "keyword.operator.expression.as.cs" }, 2: { patterns: [{ include: "#type" }] } }, match: `(?x)
|
|
36
|
+
(?<!\\.)\\b(as)\\b\\s*
|
|
37
|
+
(?<type_name>
|
|
38
|
+
(?:
|
|
39
|
+
(?:
|
|
40
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
41
|
+
(?<name_and_type_args>
|
|
42
|
+
\\g<identifier>\\s*
|
|
43
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
44
|
+
)
|
|
45
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
46
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
47
|
+
)
|
|
48
|
+
(?:\\s*\\?(?!\\?))?
|
|
49
|
+
(?:\\s*
|
|
50
|
+
\\[
|
|
51
|
+
\\s*(?:,\\s*)*
|
|
52
|
+
\\]
|
|
53
|
+
(?:\\s*\\?(?!\\?))?
|
|
54
|
+
)*
|
|
55
|
+
)
|
|
56
|
+
)?` }, "assignment-expression": { begin: "(?:\\*|/|%|\\+|-|\\?\\?|\\&|\\^|<<|>>>?|\\|)?=(?!=|>)", beginCaptures: { 0: { patterns: [{ include: "#assignment-operators" }] } }, end: "(?=[,\\)\\];}])", patterns: [{ include: "#ref-modifier" }, { include: "#expression" }] }, "assignment-operators": { patterns: [{ match: "\\*=|/=|%=|\\+=|-=|\\?\\?=", name: "keyword.operator.assignment.compound.cs" }, { match: "\\&=|\\^=|<<=|>>>?=|\\|=", name: "keyword.operator.assignment.compound.bitwise.cs" }, { match: "\\=", name: "keyword.operator.assignment.cs" }] }, attribute: { patterns: [{ include: "#type-name" }, { include: "#attribute-arguments" }] }, "attribute-arguments": { begin: "(\\()", beginCaptures: { 1: { name: "punctuation.parenthesis.open.cs" } }, end: "(\\))", endCaptures: { 1: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#attribute-named-argument" }, { include: "#expression" }, { include: "#punctuation-comma" }] }, "attribute-named-argument": { begin: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?==)", beginCaptures: { 1: { name: "entity.name.variable.property.cs" } }, end: "(?=(,|\\)))", patterns: [{ include: "#operator-assignment" }, { include: "#expression" }] }, "attribute-section": { begin: "(\\[)(assembly|module|field|event|method|param|property|return|type)?(\\:)?", beginCaptures: { 1: { name: "punctuation.squarebracket.open.cs" }, 2: { name: "keyword.other.attribute-specifier.cs" }, 3: { name: "punctuation.separator.colon.cs" } }, end: "(\\])", endCaptures: { 1: { name: "punctuation.squarebracket.close.cs" } }, patterns: [{ include: "#comment" }, { include: "#attribute" }, { include: "#punctuation-comma" }] }, "await-expression": { match: "(?<!\\.\\s*)\\b(await)\\b", name: "keyword.operator.expression.await.cs" }, "await-statement": { begin: "(?<!\\.\\s*)\\b(await)\\b", beginCaptures: { 1: { name: "keyword.operator.expression.await.cs" } }, end: "(?<=})|(?=;|})", patterns: [{ include: "#foreach-statement" }, { include: "#using-statement" }, { include: "#expression" }] }, "base-types": { begin: ":", beginCaptures: { 0: { name: "punctuation.separator.colon.cs" } }, end: "(?=\\{|where|;)", patterns: [{ include: "#type" }, { include: "#punctuation-comma" }, { include: "#preprocessor" }] }, block: { begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#statement" }] }, "boolean-literal": { patterns: [{ match: "(?<!\\.)\\btrue\\b", name: "constant.language.boolean.true.cs" }, { match: "(?<!\\.)\\bfalse\\b", name: "constant.language.boolean.false.cs" }] }, "bracketed-argument-list": { begin: "\\[", beginCaptures: { 0: { name: "punctuation.squarebracket.open.cs" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.squarebracket.close.cs" } }, patterns: [{ include: "#named-argument" }, { include: "#argument" }, { include: "#punctuation-comma" }] }, "bracketed-parameter-list": { begin: "(?=(\\[))", beginCaptures: { 1: { name: "punctuation.squarebracket.open.cs" } }, end: "(?=(\\]))", endCaptures: { 1: { name: "punctuation.squarebracket.close.cs" } }, patterns: [{ begin: "(?<=\\[)", end: "(?=\\])", patterns: [{ include: "#comment" }, { include: "#attribute-section" }, { include: "#parameter" }, { include: "#punctuation-comma" }, { include: "#variable-initializer" }] }] }, "break-or-continue-statement": { match: "(?<!\\.)\\b(break|continue)\\b", name: "keyword.control.flow.$1.cs" }, "case-guard": { patterns: [{ include: "#parenthesized-expression" }, { include: "#expression" }] }, "cast-expression": { captures: { 1: { name: "punctuation.parenthesis.open.cs" }, 2: { patterns: [{ include: "#type" }] }, 7: { name: "punctuation.parenthesis.close.cs" } }, match: `(?x)
|
|
57
|
+
(\\()\\s*
|
|
58
|
+
(?<type_name>
|
|
59
|
+
(?:
|
|
60
|
+
(?:
|
|
61
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
62
|
+
(?<name_and_type_args>
|
|
63
|
+
\\g<identifier>\\s*
|
|
64
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
65
|
+
)
|
|
66
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
67
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
68
|
+
)
|
|
69
|
+
(?:\\s*\\?\\s*)?
|
|
70
|
+
(?:\\s*
|
|
71
|
+
\\[
|
|
72
|
+
(?:\\s*,\\s*)*
|
|
73
|
+
\\]
|
|
74
|
+
\\s*
|
|
75
|
+
(?:\\?)?
|
|
76
|
+
\\s*
|
|
77
|
+
)*
|
|
78
|
+
)
|
|
79
|
+
)\\s*
|
|
80
|
+
(\\))(?=\\s*-*!*@?[_[:alnum:]\\(])` }, "casted-constant-pattern": { begin: `(?x)
|
|
81
|
+
(\\()
|
|
82
|
+
([\\s.:@_[:alnum:]]+)
|
|
83
|
+
(\\))
|
|
84
|
+
(?=[\\s+\\-!~]*@?[_[:alnum:]('"]+)`, beginCaptures: { 1: { name: "punctuation.parenthesis.open.cs" }, 2: { patterns: [{ include: "#type-builtin" }, { include: "#type-name" }] }, 3: { name: "punctuation.parenthesis.close.cs" } }, end: "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ include: "#casted-constant-pattern" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#constant-pattern" }] }, { include: "#constant-pattern" }, { captures: { 1: { name: "entity.name.type.alias.cs" }, 2: { name: "punctuation.separator.coloncolon.cs" } }, match: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)" }, { captures: { 1: { name: "entity.name.type.cs" }, 2: { name: "punctuation.accessor.cs" } }, match: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)" }, { match: "\\@?[_[:alpha:]][_[:alnum:]]*", name: "variable.other.constant.cs" }] }, "catch-clause": { begin: "(?<!\\.)\\b(catch)\\b", beginCaptures: { 1: { name: "keyword.control.exception.catch.cs" } }, end: "(?<=\\})", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ captures: { 1: { patterns: [{ include: "#type" }] }, 6: { name: "entity.name.variable.local.cs" } }, match: `(?x)
|
|
85
|
+
(?<type_name>
|
|
86
|
+
(?:
|
|
87
|
+
(?:
|
|
88
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
89
|
+
(?<name_and_type_args>
|
|
90
|
+
\\g<identifier>\\s*
|
|
91
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
92
|
+
)
|
|
93
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
94
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
95
|
+
)
|
|
96
|
+
(?:\\s*\\?\\s*)?
|
|
97
|
+
(?:\\s*
|
|
98
|
+
\\[
|
|
99
|
+
(?:\\s*,\\s*)*
|
|
100
|
+
\\]
|
|
101
|
+
\\s*
|
|
102
|
+
(?:\\?)?
|
|
103
|
+
\\s*
|
|
104
|
+
)*
|
|
105
|
+
)
|
|
106
|
+
)\\s*
|
|
107
|
+
(?:(\\g<identifier>)\\b)?` }] }, { include: "#when-clause" }, { include: "#comment" }, { include: "#block" }] }, "char-character-escape": { match: "\\\\(x[0-9a-fA-F]{1,4}|u[0-9a-fA-F]{4}|.)", name: "constant.character.escape.cs" }, "char-literal": { begin: "'", beginCaptures: { 0: { name: "punctuation.definition.char.begin.cs" } }, end: "(\\')|((?:[^\\\\\\n])$)", endCaptures: { 1: { name: "punctuation.definition.char.end.cs" }, 2: { name: "invalid.illegal.newline.cs" } }, name: "string.quoted.single.cs", patterns: [{ include: "#char-character-escape" }] }, "class-declaration": { begin: "(?=(\\brecord\\b\\s+)?\\bclass\\b)", end: "(?<=\\})|(?=;)", patterns: [{ begin: `(?x)
|
|
108
|
+
(\\b(record)\\b\\s+)?
|
|
109
|
+
\\b(class)\\b\\s+
|
|
110
|
+
(@?[_[:alpha:]][_[:alnum:]]*)\\s*`, beginCaptures: { 2: { name: "storage.type.record.cs" }, 3: { name: "storage.type.class.cs" }, 4: { name: "entity.name.type.class.cs" } }, end: "(?=\\{)|(?=;)", patterns: [{ include: "#comment" }, { include: "#type-parameter-list" }, { include: "#parenthesized-parameter-list" }, { include: "#base-types" }, { include: "#generic-constraints" }] }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#class-or-struct-members" }] }, { include: "#preprocessor" }, { include: "#comment" }] }, "class-or-struct-members": { patterns: [{ include: "#preprocessor" }, { include: "#comment" }, { include: "#storage-modifier" }, { include: "#type-declarations" }, { include: "#property-declaration" }, { include: "#field-declaration" }, { include: "#event-declaration" }, { include: "#indexer-declaration" }, { include: "#variable-initializer" }, { include: "#constructor-declaration" }, { include: "#destructor-declaration" }, { include: "#operator-declaration" }, { include: "#conversion-operator-declaration" }, { include: "#method-declaration" }, { include: "#attribute-section" }, { include: "#punctuation-semicolon" }] }, "combinator-pattern": { match: "\\b(and|or|not)\\b", name: "keyword.operator.expression.pattern.combinator.$1.cs" }, comment: { patterns: [{ begin: "(^\\s+)?(///)(?!/)", captures: { 1: { name: "punctuation.whitespace.comment.leading.cs" }, 2: { name: "punctuation.definition.comment.cs" } }, name: "comment.block.documentation.cs", patterns: [{ include: "#xml-doc-comment" }], while: "^(\\s*)(///)(?!/)" }, { begin: "(^\\s+)?(/\\*\\*)(?!/)", captures: { 1: { name: "punctuation.whitespace.comment.leading.cs" }, 2: { name: "punctuation.definition.comment.cs" } }, end: "(^\\s+)?(\\*/)", name: "comment.block.documentation.cs", patterns: [{ begin: "\\G(?=(?~\\*/)$)", patterns: [{ include: "#xml-doc-comment" }], while: "^(\\s*+)(\\*(?!/))?(?=(?~\\*/)$)", whileCaptures: { 1: { name: "punctuation.whitespace.comment.leading.cs" }, 2: { name: "punctuation.definition.comment.cs" } } }, { include: "#xml-doc-comment" }] }, { begin: "(^\\s+)?(//).*$", captures: { 1: { name: "punctuation.whitespace.comment.leading.cs" }, 2: { name: "punctuation.definition.comment.cs" } }, name: "comment.line.double-slash.cs", while: "^(\\s*)(//).*$" }, { begin: "/\\*", captures: { 0: { name: "punctuation.definition.comment.cs" } }, end: "\\*/", name: "comment.block.cs" }] }, "conditional-operator": { patterns: [{ match: "\\?(?!\\?|\\s*[.\\[])", name: "keyword.operator.conditional.question-mark.cs" }, { match: ":", name: "keyword.operator.conditional.colon.cs" }] }, "constant-pattern": { patterns: [{ include: "#boolean-literal" }, { include: "#null-literal" }, { include: "#numeric-literal" }, { include: "#char-literal" }, { include: "#string-literal" }, { include: "#raw-string-literal" }, { include: "#verbatim-string-literal" }, { include: "#type-operator-expression" }, { include: "#expression-operator-expression" }, { include: "#expression-operators" }, { include: "#casted-constant-pattern" }] }, "constructor-declaration": { begin: "(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()", end: "(?<=\\})|(?=;)", patterns: [{ captures: { 1: { name: "entity.name.function.cs" } }, match: "(@?[_[:alpha:]][_[:alnum:]]*)\\b" }, { begin: "(:)", beginCaptures: { 1: { name: "punctuation.separator.colon.cs" } }, end: "(?=\\{|=>)", patterns: [{ include: "#constructor-initializer" }] }, { include: "#parenthesized-parameter-list" }, { include: "#preprocessor" }, { include: "#comment" }, { include: "#expression-body" }, { include: "#block" }] }, "constructor-initializer": { begin: "\\b(base|this)\\b\\s*(?=\\()", beginCaptures: { 1: { name: "variable.language.$1.cs" } }, end: "(?<=\\))", patterns: [{ include: "#argument-list" }] }, "context-control-paren-statement": { patterns: [{ include: "#fixed-statement" }, { include: "#lock-statement" }, { include: "#using-statement" }] }, "context-control-statement": { match: "\\b(checked|unchecked|unsafe)\\b(?!\\s*[@_[:alpha:](])", name: "keyword.control.context.$1.cs" }, "conversion-operator-declaration": { begin: `(?x)
|
|
111
|
+
(?<explicit_or_implicit_keyword>(?:\\b(?:explicit|implicit)))\\s*
|
|
112
|
+
(?<operator_keyword>(?:\\b(?:operator)))\\s*
|
|
113
|
+
(?<type_name>
|
|
114
|
+
(?:
|
|
115
|
+
(?:ref\\s+(?:readonly\\s+)?)?
|
|
116
|
+
(?:
|
|
117
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
118
|
+
(?<name_and_type_args>
|
|
119
|
+
\\g<identifier>\\s*
|
|
120
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
121
|
+
)
|
|
122
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
123
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
124
|
+
)
|
|
125
|
+
(?:\\s*\\?\\s*)?
|
|
126
|
+
(?:\\s*
|
|
127
|
+
\\[
|
|
128
|
+
(?:\\s*,\\s*)*
|
|
129
|
+
\\]
|
|
130
|
+
\\s*
|
|
131
|
+
(?:\\?)?
|
|
132
|
+
\\s*
|
|
133
|
+
)*
|
|
134
|
+
)
|
|
135
|
+
)\\s*
|
|
136
|
+
(?=\\()`, beginCaptures: { 1: { patterns: [{ captures: { 1: { name: "storage.modifier.explicit.cs" } }, match: "\\b(explicit)\\b" }, { captures: { 1: { name: "storage.modifier.implicit.cs" } }, match: "\\b(implicit)\\b" }] }, 2: { name: "storage.type.operator.cs" }, 3: { patterns: [{ include: "#type" }] } }, end: "(?<=\\})|(?=;)", patterns: [{ include: "#comment" }, { include: "#parenthesized-parameter-list" }, { include: "#expression-body" }, { include: "#block" }] }, "declaration-expression-local": { captures: { 1: { name: "storage.type.var.cs" }, 2: { patterns: [{ include: "#type" }] }, 7: { name: "entity.name.variable.local.cs" } }, match: `(?x)
|
|
137
|
+
(?:
|
|
138
|
+
\\b(var)\\b|
|
|
139
|
+
(?<type_name>
|
|
140
|
+
(?:
|
|
141
|
+
(?:
|
|
142
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
143
|
+
(?<name_and_type_args>
|
|
144
|
+
\\g<identifier>\\s*
|
|
145
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
146
|
+
)
|
|
147
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
148
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
149
|
+
)
|
|
150
|
+
(?:\\s*\\?\\s*)?
|
|
151
|
+
(?:\\s*
|
|
152
|
+
\\[
|
|
153
|
+
(?:\\s*,\\s*)*
|
|
154
|
+
\\]
|
|
155
|
+
\\s*
|
|
156
|
+
(?:\\?)?
|
|
157
|
+
\\s*
|
|
158
|
+
)*
|
|
159
|
+
)
|
|
160
|
+
)
|
|
161
|
+
)\\s+
|
|
162
|
+
(\\g<identifier>)\\b\\s*
|
|
163
|
+
(?=[,)\\]])` }, "declaration-expression-tuple": { captures: { 1: { name: "storage.type.var.cs" }, 2: { patterns: [{ include: "#type" }] }, 7: { name: "entity.name.variable.tuple-element.cs" } }, match: `(?x)
|
|
164
|
+
(?:
|
|
165
|
+
\\b(var)\\b|
|
|
166
|
+
(?<type_name>
|
|
167
|
+
(?:
|
|
168
|
+
(?:
|
|
169
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
170
|
+
(?<name_and_type_args>
|
|
171
|
+
\\g<identifier>\\s*
|
|
172
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
173
|
+
)
|
|
174
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
175
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
176
|
+
)
|
|
177
|
+
(?:\\s*\\?\\s*)?
|
|
178
|
+
(?:\\s*
|
|
179
|
+
\\[
|
|
180
|
+
(?:\\s*,\\s*)*
|
|
181
|
+
\\]
|
|
182
|
+
\\s*
|
|
183
|
+
(?:\\?)?
|
|
184
|
+
\\s*
|
|
185
|
+
)*
|
|
186
|
+
)
|
|
187
|
+
)
|
|
188
|
+
)\\s+
|
|
189
|
+
(\\g<identifier>)\\b\\s*
|
|
190
|
+
(?=[,)])` }, declarations: { patterns: [{ include: "#namespace-declaration" }, { include: "#type-declarations" }, { include: "#punctuation-semicolon" }] }, "default-argument": { begin: "=", beginCaptures: { 0: { name: "keyword.operator.assignment.cs" } }, end: "(?=,|\\))", patterns: [{ include: "#expression" }] }, "default-literal-expression": { captures: { 1: { name: "keyword.operator.expression.default.cs" } }, match: "\\b(default)\\b" }, "delegate-declaration": { begin: `(?x)
|
|
191
|
+
(?:\\b(delegate)\\b)\\s+
|
|
192
|
+
(?<type_name>
|
|
193
|
+
(?:
|
|
194
|
+
(?:ref\\s+(?:readonly\\s+)?)?
|
|
195
|
+
(?:
|
|
196
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
197
|
+
(?<name_and_type_args>
|
|
198
|
+
\\g<identifier>\\s*
|
|
199
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
200
|
+
)
|
|
201
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
202
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
203
|
+
)
|
|
204
|
+
(?:\\s*\\?\\s*)?
|
|
205
|
+
(?:\\s*
|
|
206
|
+
\\[
|
|
207
|
+
(?:\\s*,\\s*)*
|
|
208
|
+
\\]
|
|
209
|
+
\\s*
|
|
210
|
+
(?:\\?)?
|
|
211
|
+
\\s*
|
|
212
|
+
)*
|
|
213
|
+
)
|
|
214
|
+
)\\s+
|
|
215
|
+
(\\g<identifier>)\\s*
|
|
216
|
+
(<([^<>]+)>)?\\s*
|
|
217
|
+
(?=\\()`, beginCaptures: { 1: { name: "storage.type.delegate.cs" }, 2: { patterns: [{ include: "#type" }] }, 7: { name: "entity.name.type.delegate.cs" }, 8: { patterns: [{ include: "#type-parameter-list" }] } }, end: "(?=;)", patterns: [{ include: "#comment" }, { include: "#parenthesized-parameter-list" }, { include: "#generic-constraints" }] }, "designation-pattern": { patterns: [{ include: "#intrusive" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#punctuation-comma" }, { include: "#designation-pattern" }] }, { include: "#simple-designation-pattern" }] }, "destructor-declaration": { begin: "(~)(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?=\\()", beginCaptures: { 1: { name: "punctuation.tilde.cs" }, 2: { name: "entity.name.function.cs" } }, end: "(?<=\\})|(?=;)", patterns: [{ include: "#comment" }, { include: "#parenthesized-parameter-list" }, { include: "#expression-body" }, { include: "#block" }] }, directives: { patterns: [{ include: "#extern-alias-directive" }, { include: "#using-directive" }, { include: "#attribute-section" }, { include: "#punctuation-semicolon" }] }, "discard-pattern": { match: "_(?![_[:alnum:]])", name: "variable.language.discard.cs" }, "do-statement": { begin: "(?<!\\.)\\b(do)\\b", beginCaptures: { 1: { name: "keyword.control.loop.do.cs" } }, end: "(?=;|})", patterns: [{ include: "#statement" }] }, "double-raw-interpolation": { begin: "(?<=[^\\{][^\\{]|^)((?:\\{)*)(\\{\\{)(?=[^\\{])", beginCaptures: { 1: { name: "string.quoted.double.cs" }, 2: { name: "punctuation.definition.interpolation.begin.cs" } }, end: "\\}\\}", endCaptures: { 0: { name: "punctuation.definition.interpolation.end.cs" } }, name: "meta.interpolation.cs", patterns: [{ include: "#expression" }] }, "element-access-expression": { begin: `(?x)
|
|
218
|
+
(?:
|
|
219
|
+
(?:(\\?)\\s*)?
|
|
220
|
+
(\\.)\\s*|
|
|
221
|
+
(->)\\s*
|
|
222
|
+
)?
|
|
223
|
+
(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)?
|
|
224
|
+
(?:(\\?)\\s*)?
|
|
225
|
+
(?=\\[)`, beginCaptures: { 1: { name: "keyword.operator.null-conditional.cs" }, 2: { name: "punctuation.accessor.cs" }, 3: { name: "punctuation.accessor.pointer.cs" }, 4: { name: "variable.other.object.property.cs" }, 5: { name: "keyword.operator.null-conditional.cs" } }, end: "(?<=\\])(?!\\s*\\[)", patterns: [{ include: "#bracketed-argument-list" }] }, "else-part": { begin: "(?<!\\.)\\b(else)\\b", beginCaptures: { 1: { name: "keyword.control.conditional.else.cs" } }, end: "(?<=})|(?=;)", patterns: [{ include: "#statement" }] }, "enum-declaration": { begin: "(?=\\benum\\b)", end: "(?<=\\})", patterns: [{ begin: "(?=enum)", end: "(?=\\{)", patterns: [{ include: "#comment" }, { captures: { 1: { name: "storage.type.enum.cs" }, 2: { name: "entity.name.type.enum.cs" } }, match: "(enum)\\s+(@?[_[:alpha:]][_[:alnum:]]*)" }, { begin: ":", beginCaptures: { 0: { name: "punctuation.separator.colon.cs" } }, end: "(?=\\{)", patterns: [{ include: "#type" }] }] }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#preprocessor" }, { include: "#comment" }, { include: "#attribute-section" }, { include: "#punctuation-comma" }, { begin: "@?[_[:alpha:]][_[:alnum:]]*", beginCaptures: { 0: { name: "entity.name.variable.enum-member.cs" } }, end: "(?=(,|\\}))", patterns: [{ include: "#comment" }, { include: "#variable-initializer" }] }] }, { include: "#preprocessor" }, { include: "#comment" }] }, "event-accessors": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#comment" }, { include: "#attribute-section" }, { begin: "\\b(add|remove)\\b\\s*(?=\\{|;|=>|//|/\\*|$)", beginCaptures: { 1: { name: "storage.type.accessor.$1.cs" } }, end: "(?<=\\}|;)|(?=\\})", patterns: [{ include: "#accessor-setter" }] }] }, "event-declaration": { begin: `(?x)
|
|
226
|
+
\\b(event)\\b\\s*
|
|
227
|
+
(?<return_type>
|
|
228
|
+
(?<type_name>
|
|
229
|
+
(?:
|
|
230
|
+
(?:
|
|
231
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
232
|
+
(?<name_and_type_args>
|
|
233
|
+
\\g<identifier>\\s*
|
|
234
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
235
|
+
)
|
|
236
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
237
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
238
|
+
)
|
|
239
|
+
(?:\\s*\\?\\s*)?
|
|
240
|
+
(?:\\s*
|
|
241
|
+
\\[
|
|
242
|
+
(?:\\s*,\\s*)*
|
|
243
|
+
\\]
|
|
244
|
+
\\s*
|
|
245
|
+
(?:\\?)?
|
|
246
|
+
\\s*
|
|
247
|
+
)*
|
|
248
|
+
)
|
|
249
|
+
)\\s+
|
|
250
|
+
)
|
|
251
|
+
(?<interface_name>\\g<type_name>\\s*\\.\\s*)?
|
|
252
|
+
(\\g<identifier>)\\s*
|
|
253
|
+
(?=\\{|;|,|=|//|/\\*|$)`, beginCaptures: { 1: { name: "storage.type.event.cs" }, 2: { patterns: [{ include: "#type" }] }, 8: { patterns: [{ include: "#type" }, { include: "#punctuation-accessor" }] }, 9: { name: "entity.name.variable.event.cs" } }, end: "(?<=\\})|(?=;)", patterns: [{ include: "#comment" }, { include: "#event-accessors" }, { match: "@?[_[:alpha:]][_[:alnum:]]*", name: "entity.name.variable.event.cs" }, { include: "#punctuation-comma" }, { begin: "=", beginCaptures: { 0: { name: "keyword.operator.assignment.cs" } }, end: "(?<=,)|(?=;)", patterns: [{ include: "#expression" }, { include: "#punctuation-comma" }] }] }, "explicit-anonymous-function-parameter": { captures: { 1: { name: "storage.modifier.$1.cs" }, 2: { patterns: [{ include: "#type" }] }, 7: { name: "entity.name.variable.parameter.cs" } }, match: `(?x)
|
|
254
|
+
(?:\\b(ref|params|out|in)\\b\\s*)?
|
|
255
|
+
(?<type_name>
|
|
256
|
+
(?:
|
|
257
|
+
(?:
|
|
258
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
259
|
+
(?<name_and_type_args>
|
|
260
|
+
\\g<identifier>\\s*
|
|
261
|
+
(?<type_args><(?:[^<>]|\\g<type_args>)*>\\s*)?
|
|
262
|
+
)
|
|
263
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
264
|
+
(?<tuple>\\s*\\((?:[^()]|\\g<tuple>)*\\))
|
|
265
|
+
)
|
|
266
|
+
(?:\\s*\\?\\s*)?
|
|
267
|
+
(?:\\s*
|
|
268
|
+
\\[
|
|
269
|
+
(?:\\s*,\\s*)*
|
|
270
|
+
\\]
|
|
271
|
+
\\s*
|
|
272
|
+
(?:\\?)?
|
|
273
|
+
\\s*
|
|
274
|
+
)*
|
|
275
|
+
)
|
|
276
|
+
)\\s*
|
|
277
|
+
\\b(\\g<identifier>)\\b` }, expression: { patterns: [{ include: "#preprocessor" }, { include: "#comment" }, { include: "#expression-operator-expression" }, { include: "#type-operator-expression" }, { include: "#default-literal-expression" }, { include: "#throw-expression" }, { include: "#raw-interpolated-string" }, { include: "#interpolated-string" }, { include: "#verbatim-interpolated-string" }, { include: "#type-builtin" }, { include: "#language-variable" }, { include: "#switch-statement-or-expression" }, { include: "#with-expression" }, { include: "#conditional-operator" }, { include: "#assignment-expression" }, { include: "#expression-operators" }, { include: "#await-expression" }, { include: "#query-expression" }, { include: "#as-expression" }, { include: "#is-expression" }, { include: "#anonymous-method-expression" }, { include: "#object-creation-expression" }, { include: "#array-creation-expression" }, { include: "#anonymous-object-creation-expression" }, { include: "#invocation-expression" }, { include: "#member-access-expression" }, { include: "#element-access-expression" }, { include: "#cast-expression" }, { include: "#literal" }, { include: "#parenthesized-expression" }, { include: "#tuple-deconstruction-assignment" }, { include: "#initializer-expression" }, { include: "#identifier" }] }, "expression-body": { begin: "=>", beginCaptures: { 0: { name: "keyword.operator.arrow.cs" } }, end: "(?=[,\\);}])", patterns: [{ include: "#ref-modifier" }, { include: "#expression" }] }, "expression-operator-expression": { begin: "\\b(checked|unchecked|nameof)\\s*(\\()", beginCaptures: { 1: { name: "keyword.operator.expression.$1.cs" }, 2: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#expression" }] }, "expression-operators": { patterns: [{ match: "<<|>>>?", name: "keyword.operator.bitwise.shift.cs" }, { match: "==|!=", name: "keyword.operator.comparison.cs" }, { match: "<=|>=|<|>", name: "keyword.operator.relational.cs" }, { match: "\\!|&&|\\|\\|", name: "keyword.operator.logical.cs" }, { match: "\\&|~|\\^|\\|", name: "keyword.operator.bitwise.cs" }, { match: "--", name: "keyword.operator.decrement.cs" }, { match: "\\+\\+", name: "keyword.operator.increment.cs" }, { match: "\\+|-(?!>)|\\*|/|%", name: "keyword.operator.arithmetic.cs" }, { match: "\\?\\?", name: "keyword.operator.null-coalescing.cs" }, { match: "\\.\\.", name: "keyword.operator.range.cs" }] }, "extern-alias-directive": { begin: "\\b(extern)\\s+(alias)\\b", beginCaptures: { 1: { name: "keyword.other.directive.extern.cs" }, 2: { name: "keyword.other.directive.alias.cs" } }, end: "(?=;)", patterns: [{ match: "\\@?[_[:alpha:]][_[:alnum:]]*", name: "variable.other.alias.cs" }] }, "field-declaration": { begin: `(?x)
|
|
278
|
+
(?<type_name>
|
|
279
|
+
(?:
|
|
280
|
+
(?:
|
|
281
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
282
|
+
(?<name_and_type_args>
|
|
283
|
+
\\g<identifier>\\s*
|
|
284
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
285
|
+
)
|
|
286
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
287
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
288
|
+
)
|
|
289
|
+
(?:\\s*\\?\\s*)?
|
|
290
|
+
(?:\\s*
|
|
291
|
+
\\[
|
|
292
|
+
(?:\\s*,\\s*)*
|
|
293
|
+
\\]
|
|
294
|
+
\\s*
|
|
295
|
+
(?:\\?)?
|
|
296
|
+
\\s*
|
|
297
|
+
)*
|
|
298
|
+
)
|
|
299
|
+
)\\s+
|
|
300
|
+
(\\g<identifier>)\\s*
|
|
301
|
+
(?!=>|==)(?=,|;|=|$)`, beginCaptures: { 1: { patterns: [{ include: "#type" }] }, 6: { name: "entity.name.variable.field.cs" } }, end: "(?=;)", patterns: [{ match: "@?[_[:alpha:]][_[:alnum:]]*", name: "entity.name.variable.field.cs" }, { include: "#punctuation-comma" }, { include: "#comment" }, { include: "#variable-initializer" }, { include: "#class-or-struct-members" }] }, "finally-clause": { begin: "(?<!\\.)\\b(finally)\\b", beginCaptures: { 1: { name: "keyword.control.exception.finally.cs" } }, end: "(?<=\\})", patterns: [{ include: "#comment" }, { include: "#block" }] }, "fixed-statement": { begin: "\\b(fixed)\\b", beginCaptures: { 1: { name: "keyword.control.context.fixed.cs" } }, end: "(?<=\\))|(?=;|})", patterns: [{ include: "#intrusive" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#intrusive" }, { include: "#local-variable-declaration" }] }] }, "for-statement": { begin: "\\b(for)\\b", beginCaptures: { 1: { name: "keyword.control.loop.for.cs" } }, end: "(?<=\\))|(?=;|})", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ begin: "(?=[^;\\)])", end: "(?=;|\\))", patterns: [{ include: "#intrusive" }, { include: "#local-variable-declaration" }] }, { begin: "(?=;)", end: "(?=\\))", patterns: [{ include: "#intrusive" }, { include: "#expression" }, { include: "#punctuation-comma" }, { include: "#punctuation-semicolon" }] }] }] }, "foreach-statement": { begin: "\\b(foreach)\\b", beginCaptures: { 1: { name: "keyword.control.loop.foreach.cs" } }, end: "(?<=\\))|(?=;|})", patterns: [{ include: "#intrusive" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#intrusive" }, { captures: { 1: { name: "storage.modifier.ref.cs" }, 2: { name: "storage.type.var.cs" }, 3: { patterns: [{ include: "#type" }] }, 8: { name: "entity.name.variable.local.cs" }, 9: { name: "keyword.control.loop.in.cs" } }, match: `(?x)
|
|
302
|
+
(?:
|
|
303
|
+
(?:(\\bref)\\s+)?(\\bvar\\b)|
|
|
304
|
+
(?<type_name>
|
|
305
|
+
(?:
|
|
306
|
+
(?:ref\\s+)?
|
|
307
|
+
(?:
|
|
308
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
309
|
+
(?<name_and_type_args>
|
|
310
|
+
\\g<identifier>\\s*
|
|
311
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
312
|
+
)
|
|
313
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
314
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
315
|
+
)
|
|
316
|
+
(?:\\s*\\?\\s*)?
|
|
317
|
+
(?:\\s*
|
|
318
|
+
\\[
|
|
319
|
+
(?:\\s*,\\s*)*
|
|
320
|
+
\\]
|
|
321
|
+
\\s*
|
|
322
|
+
(?:\\?)?
|
|
323
|
+
\\s*
|
|
324
|
+
)*
|
|
325
|
+
)
|
|
326
|
+
)
|
|
327
|
+
)\\s+
|
|
328
|
+
(\\g<identifier>)\\s+
|
|
329
|
+
\\b(in)\\b` }, { captures: { 1: { name: "storage.type.var.cs" }, 2: { patterns: [{ include: "#tuple-declaration-deconstruction-element-list" }] }, 3: { name: "keyword.control.loop.in.cs" } }, match: `(?x)
|
|
330
|
+
(?:\\b(var)\\b\\s*)?
|
|
331
|
+
(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s+
|
|
332
|
+
\\b(in)\\b` }, { include: "#expression" }] }] }, "generic-constraints": { begin: "(where)\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)", beginCaptures: { 1: { name: "storage.modifier.where.cs" }, 2: { name: "entity.name.type.type-parameter.cs" }, 3: { name: "punctuation.separator.colon.cs" } }, end: "(?=\\{|where|;|=>)", patterns: [{ match: "\\bclass\\b", name: "storage.type.class.cs" }, { match: "\\bstruct\\b", name: "storage.type.struct.cs" }, { match: "\\bdefault\\b", name: "keyword.other.constraint.default.cs" }, { match: "\\bnotnull\\b", name: "keyword.other.constraint.notnull.cs" }, { match: "\\bunmanaged\\b", name: "keyword.other.constraint.unmanaged.cs" }, { captures: { 1: { name: "keyword.operator.expression.new.cs" }, 2: { name: "punctuation.parenthesis.open.cs" }, 3: { name: "punctuation.parenthesis.close.cs" } }, match: "(new)\\s*(\\()\\s*(\\))" }, { include: "#type" }, { include: "#punctuation-comma" }, { include: "#generic-constraints" }] }, "goto-statement": { begin: "(?<!\\.)\\b(goto)\\b", beginCaptures: { 1: { name: "keyword.control.flow.goto.cs" } }, end: "(?=[;}])", patterns: [{ begin: "\\b(case)\\b", beginCaptures: { 1: { name: "keyword.control.conditional.case.cs" } }, end: "(?=[;}])", patterns: [{ include: "#expression" }] }, { captures: { 1: { name: "keyword.control.conditional.default.cs" } }, match: "\\b(default)\\b" }, { match: "@?[_[:alpha:]][_[:alnum:]]*", name: "entity.name.label.cs" }] }, "group-by": { captures: { 1: { name: "keyword.operator.expression.query.by.cs" } }, match: "\\b(by)\\b\\s*" }, "group-clause": { begin: "\\b(group)\\b\\s*", beginCaptures: { 1: { name: "keyword.operator.expression.query.group.cs" } }, end: "(?=;|\\))", patterns: [{ include: "#group-by" }, { include: "#group-into" }, { include: "#query-body" }, { include: "#expression" }] }, "group-into": { captures: { 1: { name: "keyword.operator.expression.query.into.cs" }, 2: { name: "entity.name.variable.range-variable.cs" } }, match: `(?x)
|
|
333
|
+
\\b(into)\\b\\s*
|
|
334
|
+
(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*` }, identifier: { match: "@?[_[:alpha:]][_[:alnum:]]*", name: "variable.other.readwrite.cs" }, "if-statement": { begin: "(?<!\\.)\\b(if)\\b\\s*(?=\\()", beginCaptures: { 1: { name: "keyword.control.conditional.if.cs" } }, end: "(?<=})|(?=;)", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#expression" }] }, { include: "#statement" }] }, "implicit-anonymous-function-parameter": { match: "\\@?[_[:alpha:]][_[:alnum:]]*\\b", name: "entity.name.variable.parameter.cs" }, "indexer-declaration": { begin: `(?x)
|
|
335
|
+
(?<return_type>
|
|
336
|
+
(?<type_name>
|
|
337
|
+
(?:
|
|
338
|
+
(?:ref\\s+(?:readonly\\s+)?)?
|
|
339
|
+
(?:
|
|
340
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
341
|
+
(?<name_and_type_args>
|
|
342
|
+
\\g<identifier>\\s*
|
|
343
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
344
|
+
)
|
|
345
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
346
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
347
|
+
)
|
|
348
|
+
(?:\\s*\\?\\s*)?
|
|
349
|
+
(?:\\s*
|
|
350
|
+
\\[
|
|
351
|
+
(?:\\s*,\\s*)*
|
|
352
|
+
\\]
|
|
353
|
+
\\s*
|
|
354
|
+
(?:\\?)?
|
|
355
|
+
\\s*
|
|
356
|
+
)*
|
|
357
|
+
)
|
|
358
|
+
)\\s+
|
|
359
|
+
)
|
|
360
|
+
(?<interface_name>\\g<type_name>\\s*\\.\\s*)?
|
|
361
|
+
(?<indexer_name>this)\\s*
|
|
362
|
+
(?=\\[)`, beginCaptures: { 1: { patterns: [{ include: "#type" }] }, 7: { patterns: [{ include: "#type" }, { include: "#punctuation-accessor" }] }, 8: { name: "variable.language.this.cs" } }, end: "(?<=\\})|(?=;)", patterns: [{ include: "#comment" }, { include: "#bracketed-parameter-list" }, { include: "#property-accessors" }, { include: "#accessor-getter-expression" }, { include: "#variable-initializer" }] }, "initializer-expression": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#expression" }, { include: "#punctuation-comma" }] }, "interface-declaration": { begin: "(?=\\binterface\\b)", end: "(?<=\\})", patterns: [{ begin: `(?x)
|
|
363
|
+
(interface)\\b\\s+
|
|
364
|
+
(@?[_[:alpha:]][_[:alnum:]]*)`, beginCaptures: { 1: { name: "storage.type.interface.cs" }, 2: { name: "entity.name.type.interface.cs" } }, end: "(?=\\{)", patterns: [{ include: "#comment" }, { include: "#type-parameter-list" }, { include: "#base-types" }, { include: "#generic-constraints" }] }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#interface-members" }] }, { include: "#preprocessor" }, { include: "#comment" }] }, "interface-members": { patterns: [{ include: "#preprocessor" }, { include: "#comment" }, { include: "#storage-modifier" }, { include: "#property-declaration" }, { include: "#event-declaration" }, { include: "#indexer-declaration" }, { include: "#method-declaration" }, { include: "#operator-declaration" }, { include: "#attribute-section" }, { include: "#punctuation-semicolon" }] }, "interpolated-string": { begin: '\\$"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '(")|((?:[^\\\\\\n])$)', endCaptures: { 1: { name: "punctuation.definition.string.end.cs" }, 2: { name: "invalid.illegal.newline.cs" } }, name: "string.quoted.double.cs", patterns: [{ include: "#string-character-escape" }, { include: "#interpolation" }] }, interpolation: { begin: "(?<=[^\\{]|^)((?:\\{\\{)*)(\\{)(?=[^\\{])", beginCaptures: { 1: { name: "string.quoted.double.cs" }, 2: { name: "punctuation.definition.interpolation.begin.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.interpolation.end.cs" } }, name: "meta.interpolation.cs", patterns: [{ include: "#expression" }] }, intrusive: { patterns: [{ include: "#preprocessor" }, { include: "#comment" }] }, "invocation-expression": { begin: `(?x)
|
|
365
|
+
(?:
|
|
366
|
+
(?:(\\?)\\s*)?
|
|
367
|
+
(\\.)\\s*|
|
|
368
|
+
(->)\\s*
|
|
369
|
+
)?
|
|
370
|
+
(@?[_[:alpha:]][_[:alnum:]]*)\\s*
|
|
371
|
+
(
|
|
372
|
+
<
|
|
373
|
+
(?<type_args>
|
|
374
|
+
[^<>()]++|
|
|
375
|
+
<\\g<type_args>*+>|
|
|
376
|
+
\\(\\g<type_args>*+\\)
|
|
377
|
+
)*+
|
|
378
|
+
>\\s*
|
|
379
|
+
)?
|
|
380
|
+
(?=\\()`, beginCaptures: { 1: { name: "keyword.operator.null-conditional.cs" }, 2: { name: "punctuation.accessor.cs" }, 3: { name: "punctuation.accessor.pointer.cs" }, 4: { name: "entity.name.function.cs" }, 5: { patterns: [{ include: "#type-arguments" }] } }, end: "(?<=\\))", patterns: [{ include: "#argument-list" }] }, "is-expression": { begin: "(?<!\\.)\\b(is)\\b", beginCaptures: { 1: { name: "keyword.operator.expression.pattern.is.cs" } }, end: "(?=[)}\\],;:?=&|^]|!=)", patterns: [{ include: "#pattern" }] }, "join-clause": { begin: `(?x)
|
|
381
|
+
\\b(join)\\b\\s*
|
|
382
|
+
(?<type_name>
|
|
383
|
+
(?:
|
|
384
|
+
(?:
|
|
385
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
386
|
+
(?<name_and_type_args>
|
|
387
|
+
\\g<identifier>\\s*
|
|
388
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
389
|
+
)
|
|
390
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
391
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
392
|
+
)
|
|
393
|
+
(?:\\s*\\?\\s*)?
|
|
394
|
+
(?:\\s*
|
|
395
|
+
\\[
|
|
396
|
+
(?:\\s*,\\s*)*
|
|
397
|
+
\\]
|
|
398
|
+
\\s*
|
|
399
|
+
(?:\\?)?
|
|
400
|
+
\\s*
|
|
401
|
+
)*
|
|
402
|
+
)
|
|
403
|
+
)?
|
|
404
|
+
\\s+(\\g<identifier>)\\b\\s*
|
|
405
|
+
\\b(in)\\b\\s*`, beginCaptures: { 1: { name: "keyword.operator.expression.query.join.cs" }, 2: { patterns: [{ include: "#type" }] }, 7: { name: "entity.name.variable.range-variable.cs" }, 8: { name: "keyword.operator.expression.query.in.cs" } }, end: "(?=;|\\))", patterns: [{ include: "#join-on" }, { include: "#join-equals" }, { include: "#join-into" }, { include: "#query-body" }, { include: "#expression" }] }, "join-equals": { captures: { 1: { name: "keyword.operator.expression.query.equals.cs" } }, match: "\\b(equals)\\b\\s*" }, "join-into": { captures: { 1: { name: "keyword.operator.expression.query.into.cs" }, 2: { name: "entity.name.variable.range-variable.cs" } }, match: `(?x)
|
|
406
|
+
\\b(into)\\b\\s*
|
|
407
|
+
(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*` }, "join-on": { captures: { 1: { name: "keyword.operator.expression.query.on.cs" } }, match: "\\b(on)\\b\\s*" }, "labeled-statement": { captures: { 1: { name: "entity.name.label.cs" }, 2: { name: "punctuation.separator.colon.cs" } }, match: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)" }, "language-variable": { patterns: [{ match: "\\b(base|this)\\b", name: "variable.language.$1.cs" }, { match: "\\b(value)\\b", name: "variable.other.$1.cs" }] }, "let-clause": { begin: `(?x)
|
|
408
|
+
\\b(let)\\b\\s*
|
|
409
|
+
(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*
|
|
410
|
+
(=)\\s*`, beginCaptures: { 1: { name: "keyword.operator.expression.query.let.cs" }, 2: { name: "entity.name.variable.range-variable.cs" }, 3: { name: "keyword.operator.assignment.cs" } }, end: "(?=;|\\))", patterns: [{ include: "#query-body" }, { include: "#expression" }] }, "list-pattern": { begin: "(?=\\[)", end: "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ begin: "\\[", beginCaptures: { 0: { name: "punctuation.squarebracket.open.cs" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.squarebracket.close.cs" } }, patterns: [{ include: "#pattern" }, { include: "#punctuation-comma" }] }, { begin: "(?<=\\])", end: "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ include: "#intrusive" }, { include: "#simple-designation-pattern" }] }] }, literal: { patterns: [{ include: "#boolean-literal" }, { include: "#null-literal" }, { include: "#numeric-literal" }, { include: "#char-literal" }, { include: "#raw-string-literal" }, { include: "#string-literal" }, { include: "#verbatim-string-literal" }, { include: "#tuple-literal" }] }, "local-constant-declaration": { begin: `(?x)
|
|
411
|
+
(?<const_keyword>\\b(?:const)\\b)\\s*
|
|
412
|
+
(?<type_name>
|
|
413
|
+
(?:
|
|
414
|
+
(?:
|
|
415
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
416
|
+
(?<name_and_type_args>
|
|
417
|
+
\\g<identifier>\\s*
|
|
418
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
419
|
+
)
|
|
420
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
421
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
422
|
+
)
|
|
423
|
+
(?:\\s*\\?\\s*)?
|
|
424
|
+
(?:\\s*
|
|
425
|
+
\\[
|
|
426
|
+
(?:\\s*,\\s*)*
|
|
427
|
+
\\]
|
|
428
|
+
\\s*
|
|
429
|
+
(?:\\?)?
|
|
430
|
+
\\s*
|
|
431
|
+
)*
|
|
432
|
+
)
|
|
433
|
+
)\\s+
|
|
434
|
+
(\\g<identifier>)\\s*
|
|
435
|
+
(?=,|;|=)`, beginCaptures: { 1: { name: "storage.modifier.const.cs" }, 2: { patterns: [{ include: "#type" }] }, 7: { name: "entity.name.variable.local.cs" } }, end: "(?=;)", patterns: [{ match: "@?[_[:alpha:]][_[:alnum:]]*", name: "entity.name.variable.local.cs" }, { include: "#punctuation-comma" }, { include: "#comment" }, { include: "#variable-initializer" }] }, "local-declaration": { patterns: [{ include: "#local-constant-declaration" }, { include: "#local-variable-declaration" }, { include: "#local-function-declaration" }, { include: "#local-tuple-var-deconstruction" }] }, "local-function-declaration": { begin: `(?x)
|
|
436
|
+
\\b((?:(?:async|unsafe|static|extern)\\s+)*)
|
|
437
|
+
(?<type_name>
|
|
438
|
+
(?:ref\\s+(?:readonly\\s+)?)?
|
|
439
|
+
(?:
|
|
440
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
441
|
+
(?<name_and_type_args>
|
|
442
|
+
\\g<identifier>\\s*
|
|
443
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
444
|
+
)
|
|
445
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
446
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
447
|
+
)
|
|
448
|
+
(?:\\s*\\?)?
|
|
449
|
+
(?:\\s*
|
|
450
|
+
\\[
|
|
451
|
+
\\s*(?:,\\s*)*
|
|
452
|
+
\\]
|
|
453
|
+
(?:\\s*\\?)?
|
|
454
|
+
)*
|
|
455
|
+
)\\s+
|
|
456
|
+
(\\g<identifier>)\\s*
|
|
457
|
+
(<[^<>]+>)?\\s*
|
|
458
|
+
(?=\\()`, beginCaptures: { 1: { patterns: [{ include: "#storage-modifier" }] }, 2: { patterns: [{ include: "#type" }] }, 7: { name: "entity.name.function.cs" }, 8: { patterns: [{ include: "#type-parameter-list" }] } }, end: "(?<=\\})|(?=;)", patterns: [{ include: "#comment" }, { include: "#parenthesized-parameter-list" }, { include: "#generic-constraints" }, { include: "#expression-body" }, { include: "#block" }] }, "local-tuple-var-deconstruction": { begin: `(?x)
|
|
459
|
+
(?:\\b(var)\\b\\s*)
|
|
460
|
+
(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s*
|
|
461
|
+
(?=;|=|\\))`, beginCaptures: { 1: { name: "storage.type.var.cs" }, 2: { patterns: [{ include: "#tuple-declaration-deconstruction-element-list" }] } }, end: "(?=;|\\))", patterns: [{ include: "#comment" }, { include: "#variable-initializer" }] }, "local-variable-declaration": { begin: `(?x)
|
|
462
|
+
(?:
|
|
463
|
+
(?:(\\bref)\\s+(?:(\\breadonly)\\s+)?)?(\\bvar\\b)|
|
|
464
|
+
(?<type_name>
|
|
465
|
+
(?:
|
|
466
|
+
(?:ref\\s+(?:readonly\\s+)?)?
|
|
467
|
+
(?:
|
|
468
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
469
|
+
(?<name_and_type_args>
|
|
470
|
+
\\g<identifier>\\s*
|
|
471
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
472
|
+
)
|
|
473
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
474
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
475
|
+
)
|
|
476
|
+
(?:\\s*[?*]\\s*)?
|
|
477
|
+
(?:\\s*
|
|
478
|
+
\\[
|
|
479
|
+
(?:\\s*,\\s*)*
|
|
480
|
+
\\]
|
|
481
|
+
\\s*
|
|
482
|
+
(?:\\?)?
|
|
483
|
+
\\s*
|
|
484
|
+
)*
|
|
485
|
+
)
|
|
486
|
+
)
|
|
487
|
+
)\\s+
|
|
488
|
+
(\\g<identifier>)\\s*
|
|
489
|
+
(?!=>)
|
|
490
|
+
(?=,|;|=|\\))`, beginCaptures: { 1: { name: "storage.modifier.ref.cs" }, 2: { name: "storage.modifier.readonly.cs" }, 3: { name: "storage.type.var.cs" }, 4: { patterns: [{ include: "#type" }] }, 9: { name: "entity.name.variable.local.cs" } }, end: "(?=[;)}])", patterns: [{ match: "@?[_[:alpha:]][_[:alnum:]]*", name: "entity.name.variable.local.cs" }, { include: "#punctuation-comma" }, { include: "#comment" }, { include: "#variable-initializer" }] }, "lock-statement": { begin: "\\b(lock)\\b", beginCaptures: { 1: { name: "keyword.control.context.lock.cs" } }, end: "(?<=\\))|(?=;|})", patterns: [{ include: "#intrusive" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#intrusive" }, { include: "#expression" }] }] }, "member-access-expression": { patterns: [{ captures: { 1: { name: "keyword.operator.null-conditional.cs" }, 2: { name: "punctuation.accessor.cs" }, 3: { name: "punctuation.accessor.pointer.cs" }, 4: { name: "variable.other.object.property.cs" } }, match: `(?x)
|
|
491
|
+
(?:
|
|
492
|
+
(?:(\\?)\\s*)?
|
|
493
|
+
(\\.)\\s*|
|
|
494
|
+
(->)\\s*
|
|
495
|
+
)
|
|
496
|
+
(@?[_[:alpha:]][_[:alnum:]]*)\\s*
|
|
497
|
+
(?![_[:alnum:]]|\\(|(\\?)?\\[|<)` }, { captures: { 1: { name: "punctuation.accessor.cs" }, 2: { name: "variable.other.object.cs" }, 3: { patterns: [{ include: "#type-arguments" }] } }, match: `(?x)
|
|
498
|
+
(\\.)?\\s*
|
|
499
|
+
(@?[_[:alpha:]][_[:alnum:]]*)
|
|
500
|
+
(?<type_params>\\s*<([^<>]|\\g<type_params>)+>\\s*)
|
|
501
|
+
(?=
|
|
502
|
+
(\\s*\\?)?
|
|
503
|
+
\\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*
|
|
504
|
+
)` }, { captures: { 1: { name: "variable.other.object.cs" } }, match: `(?x)
|
|
505
|
+
(@?[_[:alpha:]][_[:alnum:]]*)
|
|
506
|
+
(?=
|
|
507
|
+
\\s*(?:(?:\\?\\s*)?\\.|->)
|
|
508
|
+
\\s*@?[_[:alpha:]][_[:alnum:]]*
|
|
509
|
+
)` }] }, "method-declaration": { begin: `(?x)
|
|
510
|
+
(?<return_type>
|
|
511
|
+
(?<type_name>
|
|
512
|
+
(?:
|
|
513
|
+
(?:ref\\s+(?:readonly\\s+)?)?
|
|
514
|
+
(?:
|
|
515
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
516
|
+
(?<name_and_type_args>
|
|
517
|
+
\\g<identifier>\\s*
|
|
518
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
519
|
+
)
|
|
520
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
521
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
522
|
+
)
|
|
523
|
+
(?:\\s*\\?\\s*)?
|
|
524
|
+
(?:\\s*
|
|
525
|
+
\\[
|
|
526
|
+
(?:\\s*,\\s*)*
|
|
527
|
+
\\]
|
|
528
|
+
\\s*
|
|
529
|
+
(?:\\?)?
|
|
530
|
+
\\s*
|
|
531
|
+
)*
|
|
532
|
+
)
|
|
533
|
+
)\\s+
|
|
534
|
+
)
|
|
535
|
+
(?<interface_name>\\g<type_name>\\s*\\.\\s*)?
|
|
536
|
+
(\\g<identifier>)\\s*
|
|
537
|
+
(<([^<>]+)>)?\\s*
|
|
538
|
+
(?=\\()`, beginCaptures: { 1: { patterns: [{ include: "#type" }] }, 7: { patterns: [{ include: "#type" }, { include: "#punctuation-accessor" }] }, 8: { name: "entity.name.function.cs" }, 9: { patterns: [{ include: "#type-parameter-list" }] } }, end: "(?<=\\})|(?=;)", patterns: [{ include: "#comment" }, { include: "#parenthesized-parameter-list" }, { include: "#generic-constraints" }, { include: "#expression-body" }, { include: "#block" }] }, "named-argument": { begin: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)", beginCaptures: { 1: { name: "entity.name.variable.parameter.cs" }, 2: { name: "punctuation.separator.colon.cs" } }, end: "(?=(,|\\)|\\]))", patterns: [{ include: "#argument" }] }, "namespace-declaration": { begin: "\\b(namespace)\\s+", beginCaptures: { 1: { name: "storage.type.namespace.cs" } }, end: "(?<=\\})|(?=;)", patterns: [{ include: "#comment" }, { match: "@?[_[:alpha:]][_[:alnum:]]*", name: "entity.name.type.namespace.cs" }, { include: "#punctuation-accessor" }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#declarations" }, { include: "#using-directive" }, { include: "#punctuation-semicolon" }] }] }, "null-literal": { match: "(?<!\\.)\\bnull\\b", name: "constant.language.null.cs" }, "numeric-literal": { captures: { 0: { patterns: [{ begin: "(?=.)", end: "$", patterns: [{ captures: { 2: { name: "constant.numeric.decimal.cs", patterns: [{ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", name: "constant.numeric.other.separator.thousands.cs" }] }, 3: { name: "constant.numeric.other.separator.thousands.cs" }, 4: { name: "constant.numeric.other.separator.decimals.cs" }, 5: { name: "constant.numeric.decimal.cs", patterns: [{ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", name: "constant.numeric.other.separator.thousands.cs" }] }, 6: { name: "constant.numeric.other.separator.thousands.cs" }, 8: { name: "constant.numeric.other.exponent.cs" }, 9: { name: "keyword.operator.arithmetic.cs" }, 10: { name: "keyword.operator.arithmetic.cs" }, 11: { name: "constant.numeric.decimal.cs", patterns: [{ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", name: "constant.numeric.other.separator.thousands.cs" }] }, 12: { name: "constant.numeric.other.suffix.cs" } }, match: "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?((?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?([fFdDmM](?!\\w))?$" }, { captures: { 1: { name: "constant.numeric.other.preffix.binary.cs" }, 2: { name: "constant.numeric.binary.cs", patterns: [{ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", name: "constant.numeric.other.separator.thousands.cs" }] }, 3: { name: "constant.numeric.other.separator.thousands.cs" }, 4: { name: "constant.numeric.other.suffix.cs" } }, match: "(\\G0[bB])([01_](?:[01_]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$" }, { captures: { 1: { name: "constant.numeric.other.preffix.hex.cs" }, 2: { name: "constant.numeric.hex.cs", patterns: [{ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", name: "constant.numeric.other.separator.thousands.cs" }] }, 3: { name: "constant.numeric.other.separator.thousands.cs" }, 4: { name: "constant.numeric.other.suffix.cs" } }, match: "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$" }, { captures: { 2: { name: "constant.numeric.decimal.cs", patterns: [{ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", name: "constant.numeric.other.separator.thousands.cs" }] }, 3: { name: "constant.numeric.other.separator.thousands.cs" }, 5: { name: "constant.numeric.other.exponent.cs" }, 6: { name: "keyword.operator.arithmetic.cs" }, 7: { name: "keyword.operator.arithmetic.cs" }, 8: { name: "constant.numeric.decimal.cs", patterns: [{ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", name: "constant.numeric.other.separator.thousands.cs" }] }, 9: { name: "constant.numeric.other.suffix.cs" } }, match: "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$" }, { match: "(?:(?:[0-9a-zA-Z_]|_)|(?<=[eE])[+-]|\\.\\d)+", name: "invalid.illegal.constant.numeric.cs" }] }] } }, match: "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_]|_)|(?<=[eE])[+-]|\\.\\d)*" }, "object-creation-expression": { patterns: [{ include: "#object-creation-expression-with-parameters" }, { include: "#object-creation-expression-with-no-parameters" }] }, "object-creation-expression-with-no-parameters": { captures: { 1: { name: "keyword.operator.expression.new.cs" }, 2: { patterns: [{ include: "#type" }] } }, match: `(?x)
|
|
539
|
+
(new)\\s+
|
|
540
|
+
(?<type_name>
|
|
541
|
+
(?:
|
|
542
|
+
(?:
|
|
543
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
544
|
+
(?<name_and_type_args>
|
|
545
|
+
\\g<identifier>\\s*
|
|
546
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
547
|
+
)
|
|
548
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
549
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
550
|
+
)
|
|
551
|
+
(?:\\s*\\?\\s*)?
|
|
552
|
+
(?:\\s*
|
|
553
|
+
\\[
|
|
554
|
+
(?:\\s*,\\s*)*
|
|
555
|
+
\\]
|
|
556
|
+
\\s*
|
|
557
|
+
(?:\\?)?
|
|
558
|
+
\\s*
|
|
559
|
+
)*
|
|
560
|
+
)
|
|
561
|
+
)\\s*
|
|
562
|
+
(?=\\{|//|/\\*|$)` }, "object-creation-expression-with-parameters": { begin: `(?x)
|
|
563
|
+
(new)(?:\\s+
|
|
564
|
+
(?<type_name>
|
|
565
|
+
(?:
|
|
566
|
+
(?:
|
|
567
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
568
|
+
(?<name_and_type_args>
|
|
569
|
+
\\g<identifier>\\s*
|
|
570
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
571
|
+
)
|
|
572
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
573
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
574
|
+
)
|
|
575
|
+
(?:\\s*\\?\\s*)?
|
|
576
|
+
(?:\\s*
|
|
577
|
+
\\[
|
|
578
|
+
(?:\\s*,\\s*)*
|
|
579
|
+
\\]
|
|
580
|
+
\\s*
|
|
581
|
+
(?:\\?)?
|
|
582
|
+
\\s*
|
|
583
|
+
)*
|
|
584
|
+
)
|
|
585
|
+
))?\\s*
|
|
586
|
+
(?=\\()`, beginCaptures: { 1: { name: "keyword.operator.expression.new.cs" }, 2: { patterns: [{ include: "#type" }] } }, end: "(?<=\\))", patterns: [{ include: "#argument-list" }] }, "operator-assignment": { match: "(?<!=|!)(=)(?!=)", name: "keyword.operator.assignment.cs" }, "operator-declaration": { begin: `(?x)
|
|
587
|
+
(?<type_name>
|
|
588
|
+
(?:
|
|
589
|
+
(?:ref\\s+(?:readonly\\s+)?)?
|
|
590
|
+
(?:
|
|
591
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
592
|
+
(?<name_and_type_args>
|
|
593
|
+
\\g<identifier>\\s*
|
|
594
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
595
|
+
)
|
|
596
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
597
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
598
|
+
)
|
|
599
|
+
(?:\\s*\\?\\s*)?
|
|
600
|
+
(?:\\s*
|
|
601
|
+
\\[
|
|
602
|
+
(?:\\s*,\\s*)*
|
|
603
|
+
\\]
|
|
604
|
+
\\s*
|
|
605
|
+
(?:\\?)?
|
|
606
|
+
\\s*
|
|
607
|
+
)*
|
|
608
|
+
)
|
|
609
|
+
)\\s*
|
|
610
|
+
\\b(?<operator_keyword>operator)\\b\\s*
|
|
611
|
+
(?<operator>[+\\-*/%&|\\^!=~<>]+|true|false)\\s*
|
|
612
|
+
(?=\\()`, beginCaptures: { 1: { patterns: [{ include: "#type" }] }, 6: { name: "storage.type.operator.cs" }, 7: { name: "entity.name.function.cs" } }, end: "(?<=\\})|(?=;)", patterns: [{ include: "#comment" }, { include: "#parenthesized-parameter-list" }, { include: "#expression-body" }, { include: "#block" }] }, "orderby-clause": { begin: "\\b(orderby)\\b\\s*", beginCaptures: { 1: { name: "keyword.operator.expression.query.orderby.cs" } }, end: "(?=;|\\))", patterns: [{ include: "#ordering-direction" }, { include: "#query-body" }, { include: "#expression" }, { include: "#punctuation-comma" }] }, "ordering-direction": { captures: { 1: { name: "keyword.operator.expression.query.$1.cs" } }, match: "\\b(ascending|descending)\\b" }, parameter: { captures: { 1: { name: "storage.modifier.$1.cs" }, 2: { patterns: [{ include: "#type" }] }, 7: { name: "entity.name.variable.parameter.cs" } }, match: `(?x)
|
|
613
|
+
(?:(?:\\b(ref|params|out|in|this)\\b)\\s+)?
|
|
614
|
+
(?<type_name>
|
|
615
|
+
(?:
|
|
616
|
+
(?:ref\\s+)?
|
|
617
|
+
(?:
|
|
618
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
619
|
+
(?<name_and_type_args>
|
|
620
|
+
\\g<identifier>\\s*
|
|
621
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
622
|
+
)
|
|
623
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
624
|
+
(?<tuple>\\s*\\((?:[^()]|\\g<tuple>)+\\))
|
|
625
|
+
)
|
|
626
|
+
(?:\\s*\\?\\s*)?
|
|
627
|
+
(?:\\s*
|
|
628
|
+
\\[
|
|
629
|
+
(?:\\s*,\\s*)*
|
|
630
|
+
\\]
|
|
631
|
+
\\s*
|
|
632
|
+
(?:\\?)?
|
|
633
|
+
\\s*
|
|
634
|
+
)*
|
|
635
|
+
)
|
|
636
|
+
)\\s+
|
|
637
|
+
(\\g<identifier>)` }, "parenthesized-expression": { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#expression" }] }, "parenthesized-parameter-list": { begin: "(\\()", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "(\\))", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#comment" }, { include: "#attribute-section" }, { include: "#parameter" }, { include: "#punctuation-comma" }, { include: "#variable-initializer" }] }, pattern: { patterns: [{ include: "#intrusive" }, { include: "#combinator-pattern" }, { include: "#discard-pattern" }, { include: "#constant-pattern" }, { include: "#relational-pattern" }, { include: "#var-pattern" }, { include: "#type-pattern" }, { include: "#positional-pattern" }, { include: "#property-pattern" }, { include: "#list-pattern" }, { include: "#slice-pattern" }] }, "positional-pattern": { begin: "(?=\\()", end: "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#subpattern" }, { include: "#punctuation-comma" }] }, { begin: "(?<=\\))", end: "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ include: "#intrusive" }, { include: "#property-pattern" }, { include: "#simple-designation-pattern" }] }] }, preprocessor: { begin: "^\\s*(\\#)\\s*", beginCaptures: { 1: { name: "punctuation.separator.hash.cs" } }, end: "(?<=$)", name: "meta.preprocessor.cs", patterns: [{ include: "#comment" }, { include: "#preprocessor-define-or-undef" }, { include: "#preprocessor-if-or-elif" }, { include: "#preprocessor-else-or-endif" }, { include: "#preprocessor-warning-or-error" }, { include: "#preprocessor-region" }, { include: "#preprocessor-endregion" }, { include: "#preprocessor-load" }, { include: "#preprocessor-r" }, { include: "#preprocessor-line" }, { include: "#preprocessor-pragma-warning" }, { include: "#preprocessor-pragma-checksum" }] }, "preprocessor-define-or-undef": { captures: { 1: { name: "keyword.preprocessor.define.cs" }, 2: { name: "keyword.preprocessor.undef.cs" }, 3: { name: "entity.name.variable.preprocessor.symbol.cs" } }, match: "\\b(?:(define)|(undef))\\b\\s*\\b([_[:alpha:]][_[:alnum:]]*)\\b" }, "preprocessor-else-or-endif": { captures: { 1: { name: "keyword.preprocessor.else.cs" }, 2: { name: "keyword.preprocessor.endif.cs" } }, match: "\\b(?:(else)|(endif))\\b" }, "preprocessor-endregion": { captures: { 1: { name: "keyword.preprocessor.endregion.cs" } }, match: "\\b(endregion)\\b" }, "preprocessor-expression": { patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#preprocessor-expression" }] }, { captures: { 1: { name: "constant.language.boolean.true.cs" }, 2: { name: "constant.language.boolean.false.cs" }, 3: { name: "entity.name.variable.preprocessor.symbol.cs" } }, match: "\\b(?:(true)|(false)|([_[:alpha:]][_[:alnum:]]*))\\b" }, { captures: { 1: { name: "keyword.operator.comparison.cs" }, 2: { name: "keyword.operator.logical.cs" } }, match: "(==|!=)|(\\!|&&|\\|\\|)" }] }, "preprocessor-if-or-elif": { begin: "\\b(?:(if)|(elif))\\b", beginCaptures: { 1: { name: "keyword.preprocessor.if.cs" }, 2: { name: "keyword.preprocessor.elif.cs" } }, end: "(?=$)", patterns: [{ include: "#comment" }, { include: "#preprocessor-expression" }] }, "preprocessor-line": { begin: "\\b(line)\\b", beginCaptures: { 1: { name: "keyword.preprocessor.line.cs" } }, end: "(?=$)", patterns: [{ captures: { 1: { name: "keyword.preprocessor.default.cs" }, 2: { name: "keyword.preprocessor.hidden.cs" } }, match: "\\b(?:(default|hidden))" }, { captures: { 0: { name: "constant.numeric.decimal.cs" } }, match: "[0-9]+" }, { captures: { 0: { name: "string.quoted.double.cs" } }, match: '\\"[^"]*\\"' }] }, "preprocessor-load": { begin: "\\b(load)\\b", beginCaptures: { 1: { name: "keyword.preprocessor.load.cs" } }, end: "(?=$)", patterns: [{ captures: { 0: { name: "string.quoted.double.cs" } }, match: '\\"[^"]*\\"' }] }, "preprocessor-pragma-checksum": { captures: { 1: { name: "keyword.preprocessor.pragma.cs" }, 2: { name: "keyword.preprocessor.checksum.cs" }, 3: { name: "string.quoted.double.cs" }, 4: { name: "string.quoted.double.cs" }, 5: { name: "string.quoted.double.cs" } }, match: '\\b(pragma)\\b\\s*\\b(checksum)\\b\\s*(\\"[^"]*\\")\\s*(\\"[^"]*\\")\\s*(\\"[^"]*\\")' }, "preprocessor-pragma-warning": { captures: { 1: { name: "keyword.preprocessor.pragma.cs" }, 2: { name: "keyword.preprocessor.warning.cs" }, 3: { name: "keyword.preprocessor.disable.cs" }, 4: { name: "keyword.preprocessor.restore.cs" }, 5: { patterns: [{ captures: { 0: { name: "constant.numeric.decimal.cs" } }, match: "[0-9]+" }, { include: "#punctuation-comma" }] } }, match: "\\b(pragma)\\b\\s*\\b(warning)\\b\\s*\\b(?:(disable)|(restore))\\b(\\s*[0-9]+(?:\\s*,\\s*[0-9]+)?)?" }, "preprocessor-r": { begin: "\\b(r)\\b", beginCaptures: { 1: { name: "keyword.preprocessor.r.cs" } }, end: "(?=$)", patterns: [{ captures: { 0: { name: "string.quoted.double.cs" } }, match: '\\"[^"]*\\"' }] }, "preprocessor-region": { captures: { 1: { name: "keyword.preprocessor.region.cs" }, 2: { name: "string.unquoted.preprocessor.message.cs" } }, match: "\\b(region)\\b\\s*(.*)(?=$)" }, "preprocessor-warning-or-error": { captures: { 1: { name: "keyword.preprocessor.warning.cs" }, 2: { name: "keyword.preprocessor.error.cs" }, 3: { name: "string.unquoted.preprocessor.message.cs" } }, match: "\\b(?:(warning)|(error))\\b\\s*(.*)(?=$)" }, "property-accessors": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#comment" }, { include: "#attribute-section" }, { match: "\\b(private|protected|internal)\\b", name: "storage.modifier.$1.cs" }, { begin: "\\b(get)\\b\\s*(?=\\{|;|=>|//|/\\*|$)", beginCaptures: { 1: { name: "storage.type.accessor.$1.cs" } }, end: "(?<=\\}|;)|(?=\\})", patterns: [{ include: "#accessor-getter" }] }, { begin: "\\b(set|init)\\b\\s*(?=\\{|;|=>|//|/\\*|$)", beginCaptures: { 1: { name: "storage.type.accessor.$1.cs" } }, end: "(?<=\\}|;)|(?=\\})", patterns: [{ include: "#accessor-setter" }] }] }, "property-declaration": { begin: `(?x)
|
|
638
|
+
|
|
639
|
+
# The negative lookahead below ensures that we don't match nested types
|
|
640
|
+
# or other declarations as properties.
|
|
641
|
+
(?![[:word:][:space:]]*\\b(?:class|interface|struct|enum|event)\\b)
|
|
642
|
+
|
|
643
|
+
(?<return_type>
|
|
644
|
+
(?<type_name>
|
|
645
|
+
(?:
|
|
646
|
+
(?:ref\\s+(?:readonly\\s+)?)?
|
|
647
|
+
(?:
|
|
648
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
649
|
+
(?<name_and_type_args>
|
|
650
|
+
\\g<identifier>\\s*
|
|
651
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
652
|
+
)
|
|
653
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
654
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
655
|
+
)
|
|
656
|
+
(?:\\s*\\?\\s*)?
|
|
657
|
+
(?:\\s*
|
|
658
|
+
\\[
|
|
659
|
+
(?:\\s*,\\s*)*
|
|
660
|
+
\\]
|
|
661
|
+
\\s*
|
|
662
|
+
(?:\\?)?
|
|
663
|
+
\\s*
|
|
664
|
+
)*
|
|
665
|
+
)
|
|
666
|
+
)\\s+
|
|
667
|
+
)
|
|
668
|
+
(?<interface_name>\\g<type_name>\\s*\\.\\s*)?
|
|
669
|
+
(?<property_name>\\g<identifier>)\\s*
|
|
670
|
+
(?=\\{|=>|//|/\\*|$)`, beginCaptures: { 1: { patterns: [{ include: "#type" }] }, 7: { patterns: [{ include: "#type" }, { include: "#punctuation-accessor" }] }, 8: { name: "entity.name.variable.property.cs" } }, end: "(?<=\\})|(?=;)", patterns: [{ include: "#comment" }, { include: "#property-accessors" }, { include: "#accessor-getter-expression" }, { include: "#variable-initializer" }, { include: "#class-or-struct-members" }] }, "property-pattern": { begin: "(?={)", end: "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#subpattern" }, { include: "#punctuation-comma" }] }, { begin: "(?<=\\})", end: "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ include: "#intrusive" }, { include: "#simple-designation-pattern" }] }] }, "punctuation-accessor": { match: "\\.", name: "punctuation.accessor.cs" }, "punctuation-comma": { match: ",", name: "punctuation.separator.comma.cs" }, "punctuation-semicolon": { match: ";", name: "punctuation.terminator.statement.cs" }, "query-body": { patterns: [{ include: "#let-clause" }, { include: "#where-clause" }, { include: "#join-clause" }, { include: "#orderby-clause" }, { include: "#select-clause" }, { include: "#group-clause" }] }, "query-expression": { begin: `(?x)
|
|
671
|
+
\\b(from)\\b\\s*
|
|
672
|
+
(?<type_name>
|
|
673
|
+
(?:
|
|
674
|
+
(?:
|
|
675
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
676
|
+
(?<name_and_type_args>
|
|
677
|
+
\\g<identifier>\\s*
|
|
678
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
679
|
+
)
|
|
680
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
681
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
682
|
+
)
|
|
683
|
+
(?:\\s*\\?\\s*)?
|
|
684
|
+
(?:\\s*
|
|
685
|
+
\\[
|
|
686
|
+
(?:\\s*,\\s*)*
|
|
687
|
+
\\]
|
|
688
|
+
\\s*
|
|
689
|
+
(?:\\?)?
|
|
690
|
+
\\s*
|
|
691
|
+
)*
|
|
692
|
+
)
|
|
693
|
+
)?
|
|
694
|
+
\\s+(\\g<identifier>)\\b\\s*
|
|
695
|
+
\\b(in)\\b\\s*`, beginCaptures: { 1: { name: "keyword.operator.expression.query.from.cs" }, 2: { patterns: [{ include: "#type" }] }, 7: { name: "entity.name.variable.range-variable.cs" }, 8: { name: "keyword.operator.expression.query.in.cs" } }, end: "(?=;|\\))", patterns: [{ include: "#query-body" }, { include: "#expression" }] }, "raw-interpolated-string": { patterns: [{ include: "#raw-interpolated-string-five-or-more-quote-one-or-more-interpolation" }, { include: "#raw-interpolated-string-three-or-more-quote-three-or-more-interpolation" }, { include: "#raw-interpolated-string-quadruple-quote-double-interpolation" }, { include: "#raw-interpolated-string-quadruple-quote-single-interpolation" }, { include: "#raw-interpolated-string-triple-quote-double-interpolation" }, { include: "#raw-interpolated-string-triple-quote-single-interpolation" }] }, "raw-interpolated-string-five-or-more-quote-one-or-more-interpolation": { begin: '\\$+"""""+', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '"""""+', endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.double.cs" }, "raw-interpolated-string-quadruple-quote-double-interpolation": { begin: '\\$\\$""""', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '""""', endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.double.cs", patterns: [{ include: "#double-raw-interpolation" }] }, "raw-interpolated-string-quadruple-quote-single-interpolation": { begin: '\\$""""', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '""""', endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.double.cs", patterns: [{ include: "#raw-interpolation" }] }, "raw-interpolated-string-three-or-more-quote-three-or-more-interpolation": { begin: '\\$\\$\\$+"""+', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '"""+', endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.double.cs" }, "raw-interpolated-string-triple-quote-double-interpolation": { begin: '\\$\\$"""', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '"""', endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.double.cs", patterns: [{ include: "#double-raw-interpolation" }] }, "raw-interpolated-string-triple-quote-single-interpolation": { begin: '\\$"""', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '"""', endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.double.cs", patterns: [{ include: "#raw-interpolation" }] }, "raw-interpolation": { begin: "(?<=[^\\{]|^)((?:\\{)*)(\\{)(?=[^\\{])", beginCaptures: { 1: { name: "string.quoted.double.cs" }, 2: { name: "punctuation.definition.interpolation.begin.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.interpolation.end.cs" } }, name: "meta.interpolation.cs", patterns: [{ include: "#expression" }] }, "raw-string-literal": { patterns: [{ include: "#raw-string-literal-more" }, { include: "#raw-string-literal-quadruple" }, { include: "#raw-string-literal-triple" }] }, "raw-string-literal-more": { begin: '"""""+', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '"""""+', endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.double.cs" }, "raw-string-literal-quadruple": { begin: '""""', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '""""', endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.double.cs" }, "raw-string-literal-triple": { begin: '"""', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '"""', endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.double.cs" }, "readonly-modifier": { match: "\\breadonly\\b", name: "storage.modifier.readonly.cs" }, "record-declaration": { begin: "(?=\\brecord\\b)", end: "(?<=\\})|(?=;)", patterns: [{ begin: `(?x)
|
|
696
|
+
(record)\\b\\s+
|
|
697
|
+
(@?[_[:alpha:]][_[:alnum:]]*)`, beginCaptures: { 1: { name: "storage.type.record.cs" }, 2: { name: "entity.name.type.class.cs" } }, end: "(?=\\{)|(?=;)", patterns: [{ include: "#comment" }, { include: "#type-parameter-list" }, { include: "#parenthesized-parameter-list" }, { include: "#base-types" }, { include: "#generic-constraints" }] }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#class-or-struct-members" }] }, { include: "#preprocessor" }, { include: "#comment" }] }, "ref-modifier": { match: "\\bref\\b", name: "storage.modifier.ref.cs" }, "relational-pattern": { begin: "<=?|>=?", beginCaptures: { 0: { name: "keyword.operator.relational.cs" } }, end: "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ include: "#expression" }] }, "return-statement": { begin: "(?<!\\.)\\b(return)\\b", beginCaptures: { 1: { name: "keyword.control.flow.return.cs" } }, end: "(?=[;}])", patterns: [{ include: "#ref-modifier" }, { include: "#expression" }] }, "script-top-level": { patterns: [{ include: "#statement" }, { include: "#method-declaration" }, { include: "#punctuation-semicolon" }] }, "select-clause": { begin: "\\b(select)\\b\\s*", beginCaptures: { 1: { name: "keyword.operator.expression.query.select.cs" } }, end: "(?=;|\\))", patterns: [{ include: "#query-body" }, { include: "#expression" }] }, "simple-designation-pattern": { patterns: [{ include: "#discard-pattern" }, { match: "@?[_[:alpha:]][_[:alnum:]]*", name: "entity.name.variable.local.cs" }] }, "slice-pattern": { match: "\\.\\.", name: "keyword.operator.range.cs" }, statement: { patterns: [{ include: "#preprocessor" }, { include: "#comment" }, { include: "#while-statement" }, { include: "#do-statement" }, { include: "#for-statement" }, { include: "#foreach-statement" }, { include: "#if-statement" }, { include: "#else-part" }, { include: "#goto-statement" }, { include: "#return-statement" }, { include: "#break-or-continue-statement" }, { include: "#throw-statement" }, { include: "#yield-statement" }, { include: "#await-statement" }, { include: "#try-statement" }, { include: "#expression-operator-expression" }, { include: "#context-control-statement" }, { include: "#context-control-paren-statement" }, { include: "#labeled-statement" }, { include: "#object-creation-expression" }, { include: "#array-creation-expression" }, { include: "#anonymous-object-creation-expression" }, { include: "#local-declaration" }, { include: "#block" }, { include: "#expression" }, { include: "#punctuation-semicolon" }] }, "storage-modifier": { match: "(?<!\\.)\\b(new|public|protected|internal|private|abstract|virtual|override|sealed|static|partial|readonly|volatile|const|extern|async|unsafe|ref|required|file)\\b", name: "storage.modifier.$1.cs" }, "string-character-escape": { match: "\\\\(x[0-9a-fA-F]{1,4}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|.)", name: "constant.character.escape.cs" }, "string-literal": { begin: '(?<!@)"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '(")|((?:[^\\\\\\n])$)', endCaptures: { 1: { name: "punctuation.definition.string.end.cs" }, 2: { name: "invalid.illegal.newline.cs" } }, name: "string.quoted.double.cs", patterns: [{ include: "#string-character-escape" }] }, "struct-declaration": { begin: "(?=(\\brecord\\b\\s+)?\\bstruct\\b)", end: "(?<=\\})|(?=;)", patterns: [{ begin: `(?x)
|
|
698
|
+
(\\b(record)\\b\\s+)?
|
|
699
|
+
(struct)\\b\\s+
|
|
700
|
+
(@?[_[:alpha:]][_[:alnum:]]*)`, beginCaptures: { 2: { name: "storage.type.record.cs" }, 3: { name: "storage.type.struct.cs" }, 4: { name: "entity.name.type.struct.cs" } }, end: "(?=\\{)|(?=;)", patterns: [{ include: "#comment" }, { include: "#type-parameter-list" }, { include: "#parenthesized-parameter-list" }, { include: "#base-types" }, { include: "#generic-constraints" }] }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#class-or-struct-members" }] }, { include: "#preprocessor" }, { include: "#comment" }] }, subpattern: { patterns: [{ captures: { 1: { patterns: [{ match: "\\@?[_[:alpha:]][_[:alnum:]]*", name: "variable.other.object.property.cs" }, { include: "#punctuation-accessor" }] }, 2: { name: "punctuation.separator.colon.cs" } }, match: "(@?[_[:alpha:]][_[:alnum:]]*(?:\\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*)*)\\s*(:)" }, { include: "#pattern" }] }, "switch-expression": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#punctuation-comma" }, { begin: "=>", beginCaptures: { 0: { name: "keyword.operator.arrow.cs" } }, end: "(?=,|})", patterns: [{ include: "#expression" }] }, { begin: "\\b(when)\\b", beginCaptures: { 1: { name: "keyword.control.conditional.when.cs" } }, end: "(?==>|,|})", patterns: [{ include: "#case-guard" }] }, { begin: "(?!\\s)", end: "(?=\\bwhen\\b|=>|,|})", patterns: [{ include: "#pattern" }] }] }, "switch-label": { begin: "\\b(case|default)\\b", beginCaptures: { 1: { name: "keyword.control.conditional.$1.cs" } }, end: "(:)|(?=})", endCaptures: { 1: { name: "punctuation.separator.colon.cs" } }, patterns: [{ begin: "\\b(when)\\b", beginCaptures: { 1: { name: "keyword.control.conditional.when.cs" } }, end: "(?=:|})", patterns: [{ include: "#case-guard" }] }, { begin: "(?!\\s)", end: "(?=\\bwhen\\b|:|})", patterns: [{ include: "#pattern" }] }] }, "switch-statement": { patterns: [{ include: "#intrusive" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#expression" }] }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.curlybrace.open.cs" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.curlybrace.close.cs" } }, patterns: [{ include: "#switch-label" }, { include: "#statement" }] }] }, "switch-statement-or-expression": { begin: "(?<!\\.)\\b(switch)\\b", beginCaptures: { 1: { name: "keyword.control.conditional.switch.cs" } }, end: "(?<=})|(?=})", patterns: [{ include: "#intrusive" }, { begin: "(?=\\()", end: "(?<=\\})|(?=\\})", patterns: [{ include: "#switch-statement" }] }, { begin: "(?=\\{)", end: "(?<=\\})|(?=\\})", patterns: [{ include: "#switch-expression" }] }] }, "throw-expression": { captures: { 1: { name: "keyword.control.flow.throw.cs" } }, match: "\\b(throw)\\b" }, "throw-statement": { begin: "(?<!\\.)\\b(throw)\\b", beginCaptures: { 1: { name: "keyword.control.flow.throw.cs" } }, end: "(?=[;}])", patterns: [{ include: "#expression" }] }, "try-block": { begin: "(?<!\\.)\\b(try)\\b", beginCaptures: { 1: { name: "keyword.control.exception.try.cs" } }, end: "(?<=\\})", patterns: [{ include: "#comment" }, { include: "#block" }] }, "try-statement": { patterns: [{ include: "#try-block" }, { include: "#catch-clause" }, { include: "#finally-clause" }] }, "tuple-declaration-deconstruction-element-list": { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#comment" }, { include: "#tuple-declaration-deconstruction-element-list" }, { include: "#declaration-expression-tuple" }, { include: "#punctuation-comma" }, { captures: { 1: { name: "entity.name.variable.tuple-element.cs" } }, match: `(?x)
|
|
701
|
+
(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*
|
|
702
|
+
(?=[,)])` }] }, "tuple-deconstruction-assignment": { captures: { 1: { patterns: [{ include: "#tuple-deconstruction-element-list" }] } }, match: `(?x)
|
|
703
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s*
|
|
704
|
+
(?!=>|==)(?==)` }, "tuple-deconstruction-element-list": { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#comment" }, { include: "#tuple-deconstruction-element-list" }, { include: "#declaration-expression-tuple" }, { include: "#punctuation-comma" }, { captures: { 1: { name: "variable.other.readwrite.cs" } }, match: `(?x)
|
|
705
|
+
(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*
|
|
706
|
+
(?=[,)])` }] }, "tuple-element": { captures: { 1: { patterns: [{ include: "#type" }] }, 6: { name: "entity.name.variable.tuple-element.cs" } }, match: `(?x)
|
|
707
|
+
(?<type_name>
|
|
708
|
+
(?:
|
|
709
|
+
(?:
|
|
710
|
+
(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?
|
|
711
|
+
(?<name_and_type_args>
|
|
712
|
+
\\g<identifier>\\s*
|
|
713
|
+
(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?
|
|
714
|
+
)
|
|
715
|
+
(?:\\s*\\.\\s*\\g<name_and_type_args>)* |
|
|
716
|
+
(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))
|
|
717
|
+
)
|
|
718
|
+
(?:\\s*\\?\\s*)?
|
|
719
|
+
(?:\\s*
|
|
720
|
+
\\[
|
|
721
|
+
(?:\\s*,\\s*)*
|
|
722
|
+
\\]
|
|
723
|
+
\\s*
|
|
724
|
+
(?:\\?)?
|
|
725
|
+
\\s*
|
|
726
|
+
)*
|
|
727
|
+
)
|
|
728
|
+
)
|
|
729
|
+
(?:(?<tuple_name>\\g<identifier>)\\b)?` }, "tuple-literal": { begin: "(\\()(?=.*[:,])", beginCaptures: { 1: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#comment" }, { include: "#tuple-literal-element" }, { include: "#expression" }, { include: "#punctuation-comma" }] }, "tuple-literal-element": { begin: `(?x)
|
|
730
|
+
(@?[_[:alpha:]][_[:alnum:]]*)\\s*
|
|
731
|
+
(?=:)`, beginCaptures: { 1: { name: "entity.name.variable.tuple-element.cs" } }, end: "(:)", endCaptures: { 0: { name: "punctuation.separator.colon.cs" } } }, "tuple-type": { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#tuple-element" }, { include: "#punctuation-comma" }] }, type: { patterns: [{ include: "#comment" }, { include: "#ref-modifier" }, { include: "#readonly-modifier" }, { include: "#tuple-type" }, { include: "#type-builtin" }, { include: "#type-name" }, { include: "#type-arguments" }, { include: "#type-array-suffix" }, { include: "#type-nullable-suffix" }, { include: "#type-pointer-suffix" }] }, "type-arguments": { begin: "<", beginCaptures: { 0: { name: "punctuation.definition.typeparameters.begin.cs" } }, end: ">", endCaptures: { 0: { name: "punctuation.definition.typeparameters.end.cs" } }, patterns: [{ include: "#type" }, { include: "#punctuation-comma" }] }, "type-array-suffix": { begin: "\\[", beginCaptures: { 0: { name: "punctuation.squarebracket.open.cs" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.squarebracket.close.cs" } }, patterns: [{ include: "#intrusive" }, { include: "#punctuation-comma" }] }, "type-builtin": { captures: { 1: { name: "keyword.type.$1.cs" } }, match: "\\b(bool|s?byte|u?short|n?u?int|u?long|float|double|decimal|char|string|object|void|dynamic)\\b" }, "type-declarations": { patterns: [{ include: "#preprocessor" }, { include: "#comment" }, { include: "#storage-modifier" }, { include: "#class-declaration" }, { include: "#delegate-declaration" }, { include: "#enum-declaration" }, { include: "#interface-declaration" }, { include: "#struct-declaration" }, { include: "#record-declaration" }, { include: "#attribute-section" }, { include: "#punctuation-semicolon" }] }, "type-name": { patterns: [{ captures: { 1: { name: "entity.name.type.alias.cs" }, 2: { name: "punctuation.separator.coloncolon.cs" } }, match: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)" }, { captures: { 1: { name: "entity.name.type.cs" }, 2: { name: "punctuation.accessor.cs" } }, match: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)" }, { captures: { 1: { name: "punctuation.accessor.cs" }, 2: { name: "entity.name.type.cs" } }, match: "(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)" }, { match: "@?[_[:alpha:]][_[:alnum:]]*", name: "entity.name.type.cs" }] }, "type-nullable-suffix": { match: "\\?", name: "punctuation.separator.question-mark.cs" }, "type-operator-expression": { begin: "\\b(default|sizeof|typeof)\\s*(\\()", beginCaptures: { 1: { name: "keyword.operator.expression.$1.cs" }, 2: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#type" }] }, "type-parameter-list": { begin: "\\<", beginCaptures: { 0: { name: "punctuation.definition.typeparameters.begin.cs" } }, end: "\\>", endCaptures: { 0: { name: "punctuation.definition.typeparameters.end.cs" } }, patterns: [{ match: "\\b(in|out)\\b", name: "storage.modifier.$1.cs" }, { match: "(@?[_[:alpha:]][_[:alnum:]]*)\\b", name: "entity.name.type.type-parameter.cs" }, { include: "#comment" }, { include: "#punctuation-comma" }, { include: "#attribute-section" }] }, "type-pattern": { begin: "(?=@?[_[:alpha:]][_[:alnum:]]*)", end: "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ begin: "\\G", end: "(?!\\G[@_[:alpha:]])(?=[\\({@_[:alpha:])}\\],;:=&|^]|(?:\\s|^)\\?|!=|\\b(and|or|when)\\b)", patterns: [{ include: "#intrusive" }, { include: "#type-subpattern" }] }, { begin: "(?=[\\({@_[:alpha:]])", end: "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ include: "#intrusive" }, { include: "#positional-pattern" }, { include: "#property-pattern" }, { include: "#simple-designation-pattern" }] }] }, "type-pointer-suffix": { match: "\\*", name: "punctuation.separator.asterisk.cs" }, "type-subpattern": { patterns: [{ include: "#type-builtin" }, { begin: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(::)", beginCaptures: { 1: { name: "entity.name.type.alias.cs" }, 2: { name: "punctuation.separator.coloncolon.cs" } }, end: "(?<=[_[:alnum:]])|(?=[.<\\[\\({)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ include: "#intrusive" }, { match: "\\@?[_[:alpha:]][_[:alnum:]]*", name: "entity.name.type.cs" }] }, { match: "\\@?[_[:alpha:]][_[:alnum:]]*", name: "entity.name.type.cs" }, { begin: "\\.", beginCaptures: { 0: { name: "punctuation.accessor.cs" } }, end: "(?<=[_[:alnum:]])|(?=[<\\[\\({)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ include: "#intrusive" }, { match: "\\@?[_[:alpha:]][_[:alnum:]]*", name: "entity.name.type.cs" }] }, { include: "#type-arguments" }, { include: "#type-array-suffix" }, { match: "(?<!\\s)\\?", name: "punctuation.separator.question-mark.cs" }] }, "using-directive": { patterns: [{ begin: "\\b(?:(global)\\s+)?(using)\\s+(static)\\b\\s*(?:(unsafe)\\b\\s*)?", beginCaptures: { 1: { name: "keyword.other.directive.global.cs" }, 2: { name: "keyword.other.directive.using.cs" }, 3: { name: "keyword.other.directive.static.cs" }, 4: { name: "storage.modifier.unsafe.cs" } }, end: "(?=;)", patterns: [{ include: "#type" }] }, { begin: "\\b(?:(global)\\s+)?(using)\\b\\s*(?:(unsafe)\\b\\s*)?(@?[_[:alpha:]][_[:alnum:]]*)\\s*(=)", beginCaptures: { 1: { name: "keyword.other.directive.global.cs" }, 2: { name: "keyword.other.directive.using.cs" }, 3: { name: "storage.modifier.unsafe.cs" }, 4: { name: "entity.name.type.alias.cs" }, 5: { name: "keyword.operator.assignment.cs" } }, end: "(?=;)", patterns: [{ include: "#comment" }, { include: "#type" }] }, { begin: "\\b(?:(global)\\s+)?(using)\\b\\s*+(?!\\(|var\\b)", beginCaptures: { 1: { name: "keyword.other.directive.global.cs" }, 2: { name: "keyword.other.directive.using.cs" } }, end: "(?=;)", patterns: [{ include: "#comment" }, { match: "\\@?[_[:alpha:]][_[:alnum:]]*", name: "entity.name.type.namespace.cs" }, { include: "#punctuation-accessor" }, { include: "#operator-assignment" }] }] }, "using-statement": { begin: "\\b(using)\\b", beginCaptures: { 1: { name: "keyword.control.context.using.cs" } }, end: "(?<=\\))|(?=;|})", patterns: [{ include: "#intrusive" }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#intrusive" }, { include: "#await-expression" }, { include: "#local-variable-declaration" }, { include: "#expression" }] }, { include: "#local-variable-declaration" }] }, "var-pattern": { begin: "\\b(var)\\b", beginCaptures: { 1: { name: "storage.type.var.cs" } }, end: "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", patterns: [{ include: "#designation-pattern" }] }, "variable-initializer": { begin: "(?<!=|!)(=)(?!=|>)", beginCaptures: { 1: { name: "keyword.operator.assignment.cs" } }, end: "(?=[,\\)\\];}])", patterns: [{ include: "#ref-modifier" }, { include: "#expression" }] }, "verbatim-interpolated-string": { begin: '(?:\\$@|@\\$)"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '"(?=[^"])', endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.double.cs", patterns: [{ include: "#verbatim-string-character-escape" }, { include: "#interpolation" }] }, "verbatim-string-character-escape": { match: '""', name: "constant.character.escape.cs" }, "verbatim-string-literal": { begin: '@"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '"(?=[^"])', endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.double.cs", patterns: [{ include: "#verbatim-string-character-escape" }] }, "when-clause": { begin: "(?<!\\.)\\b(when)\\b\\s*(\\()", beginCaptures: { 1: { name: "keyword.control.exception.when.cs" }, 2: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#expression" }, { include: "#comment" }] }, "where-clause": { begin: `(?x)
|
|
732
|
+
\\b(where)\\b\\s*`, beginCaptures: { 1: { name: "keyword.operator.expression.query.where.cs" } }, end: "(?=;|\\))", patterns: [{ include: "#query-body" }, { include: "#expression" }] }, "while-statement": { begin: "(?<!\\.)\\b(while)\\b\\s*(?=\\()", beginCaptures: { 1: { name: "keyword.control.loop.while.cs" } }, end: "(?<=\\})|(?=;)", patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.parenthesis.open.cs" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.parenthesis.close.cs" } }, patterns: [{ include: "#expression" }] }, { include: "#statement" }] }, "with-expression": { begin: "(?<!\\.)\\b(with)\\b\\s*(?=\\{|//|/\\*|$)", beginCaptures: { 1: { name: "keyword.operator.expression.with.cs" } }, end: "(?<=\\})", patterns: [{ include: "#comment" }, { include: "#initializer-expression" }] }, "xml-attribute": { patterns: [{ captures: { 1: { name: "entity.other.attribute-name.cs" }, 2: { name: "entity.other.attribute-name.namespace.cs" }, 3: { name: "punctuation.separator.colon.cs" }, 4: { name: "entity.other.attribute-name.localname.cs" }, 5: { name: "punctuation.separator.equals.cs" } }, match: `(?x)
|
|
733
|
+
(?:^|\\s+)
|
|
734
|
+
(
|
|
735
|
+
(?:
|
|
736
|
+
([-_[:alnum:]]+)
|
|
737
|
+
(:)
|
|
738
|
+
)?
|
|
739
|
+
([-_[:alnum:]]+)
|
|
740
|
+
)
|
|
741
|
+
(=)` }, { include: "#xml-string" }] }, "xml-cdata": { begin: "<!\\[CDATA\\[", beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: "\\]\\]>", endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.unquoted.cdata.cs" }, "xml-character-entity": { patterns: [{ captures: { 1: { name: "punctuation.definition.constant.cs" }, 3: { name: "punctuation.definition.constant.cs" } }, match: `(?x)
|
|
742
|
+
(&)
|
|
743
|
+
(
|
|
744
|
+
(?:[[:alpha:]:_][[:alnum:]:_.-]*)|
|
|
745
|
+
(?:\\#[[:digit:]]+)|
|
|
746
|
+
(?:\\#x[[:xdigit:]]+)
|
|
747
|
+
)
|
|
748
|
+
(;)`, name: "constant.character.entity.cs" }, { match: "&", name: "invalid.illegal.bad-ampersand.cs" }] }, "xml-comment": { begin: "<!--", beginCaptures: { 0: { name: "punctuation.definition.comment.cs" } }, end: "-->", endCaptures: { 0: { name: "punctuation.definition.comment.cs" } }, name: "comment.block.cs" }, "xml-doc-comment": { patterns: [{ include: "#xml-comment" }, { include: "#xml-character-entity" }, { include: "#xml-cdata" }, { include: "#xml-tag" }] }, "xml-string": { patterns: [{ begin: "\\'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: "\\'", endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.single.cs", patterns: [{ include: "#xml-character-entity" }] }, { begin: '\\"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.cs" } }, end: '\\"', endCaptures: { 0: { name: "punctuation.definition.string.end.cs" } }, name: "string.quoted.double.cs", patterns: [{ include: "#xml-character-entity" }] }] }, "xml-tag": { begin: `(?x)
|
|
749
|
+
(</?)
|
|
750
|
+
(
|
|
751
|
+
(?:
|
|
752
|
+
([-_[:alnum:]]+)
|
|
753
|
+
(:)
|
|
754
|
+
)?
|
|
755
|
+
([-_[:alnum:]]+)
|
|
756
|
+
)`, beginCaptures: { 1: { name: "punctuation.definition.tag.cs" }, 2: { name: "entity.name.tag.cs" }, 3: { name: "entity.name.tag.namespace.cs" }, 4: { name: "punctuation.separator.colon.cs" }, 5: { name: "entity.name.tag.localname.cs" } }, end: "(/?>)", endCaptures: { 1: { name: "punctuation.definition.tag.cs" } }, name: "meta.tag.cs", patterns: [{ include: "#xml-attribute" }] }, "yield-break-statement": { captures: { 1: { name: "keyword.control.flow.yield.cs" }, 2: { name: "keyword.control.flow.break.cs" } }, match: "(?<!\\.)\\b(yield)\\b\\s*\\b(break)\\b" }, "yield-return-statement": { begin: "(?<!\\.)\\b(yield)\\b\\s*\\b(return)\\b", beginCaptures: { 1: { name: "keyword.control.flow.yield.cs" }, 2: { name: "keyword.control.flow.return.cs" } }, end: "(?=[;}])", patterns: [{ include: "#expression" }] }, "yield-statement": { patterns: [{ include: "#yield-return-statement" }, { include: "#yield-break-statement" }] } }, scopeName: "source.cs", aliases: ["c#", "cs"] });
|
|
757
|
+
var n = [
|
|
758
|
+
e
|
|
759
|
+
];
|
|
760
|
+
export {
|
|
761
|
+
n as default
|
|
762
|
+
};
|