github-linguist 5.0.0 → 5.0.2
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.
- checksums.yaml +4 -4
- data/bin/git-linguist +10 -2
- data/bin/linguist +26 -9
- data/grammars/config.xcompose.json +83 -0
- data/grammars/hint.haskell.json +21 -30
- data/grammars/hint.message.haskell.json +21 -30
- data/grammars/hint.type.haskell.json +21 -30
- data/grammars/source.bsl.json +42 -28
- data/grammars/source.cs.json +656 -131
- data/grammars/source.csound-document.json +142 -25
- data/grammars/source.csound-score.json +13 -10
- data/grammars/source.csound.json +136 -81
- data/grammars/source.css.json +1501 -331
- data/grammars/source.css.less.json +3 -3
- data/grammars/source.d.json +60 -44
- data/grammars/source.gn.json +240 -138
- data/grammars/source.graphql.json +781 -155
- data/grammars/source.haskell.json +21 -30
- data/grammars/source.js.json +46 -46
- data/grammars/source.mask.json +1 -1
- data/grammars/source.perl6fe.json +1151 -763
- data/grammars/source.python.json +45 -23
- data/grammars/source.quoting.perl6fe.json +2170 -0
- data/grammars/source.reason.json +296 -0
- data/grammars/source.regexp.perl6fe.json +27 -0
- data/grammars/source.rust.json +522 -125
- data/grammars/source.sdbl.json +2 -2
- data/grammars/source.shell.json +125 -161
- data/grammars/source.solidity.json +137 -0
- data/grammars/source.ts.json +385 -137
- data/grammars/source.tsx.json +394 -167
- data/grammars/source.yaml.json +176 -171
- data/grammars/text.html.php.blade.json +2 -2
- data/grammars/text.tex.latex.haskell.json +1 -10
- data/lib/linguist/generated.rb +50 -4
- data/lib/linguist/heuristics.rb +1 -1
- data/lib/linguist/language.rb +12 -8
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +38 -1
- data/lib/linguist/samples.json +4605 -581
- data/lib/linguist/vendor.yml +6 -0
- data/lib/linguist/version.rb +1 -1
- metadata +10 -7
- data/grammars/source.hy.json +0 -270
@@ -11,18 +11,18 @@
|
|
11
11
|
"classNameOne": "[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",
|
12
12
|
"functionName": "(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",
|
13
13
|
"className": "[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*",
|
14
|
-
"operatorChar": "[\\p{S}\\p{P}
|
15
|
-
"operator": "[\\p{S}\\p{P}
|
16
|
-
"operatorFun": "(?:\\((?!--+\\))[\\p{S}\\p{P}
|
14
|
+
"operatorChar": "(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))",
|
15
|
+
"operator": "(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+",
|
16
|
+
"operatorFun": "(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))",
|
17
17
|
"basicChar": "[\\ -\\[\\]-~]",
|
18
18
|
"escapeChar": "\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])",
|
19
19
|
"octalChar": "(?:\\\\o[0-7]+)",
|
20
20
|
"hexChar": "(?:\\\\x[0-9A-Fa-f]+)",
|
21
21
|
"controlChar": "(?:\\\\\\^[A-Z@\\[\\]\\\\^_])",
|
22
|
-
"character": "(?:[\\ -\\[\\]-~]|\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\\\\\^[A-Z@\\[\\]\\\\^_])|[\\p{S}\\p{P}
|
23
|
-
"functionTypeDeclaration": "(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))[\\p{S}\\p{P}
|
24
|
-
"doubleColonOperator": "(?<![\\p{S}\\p{P}
|
25
|
-
"ctorTypeDeclaration": "(?:(?:((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\))[\\p{S}\\p{P}
|
22
|
+
"character": "(?:[\\ -\\[\\]-~]|\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\\\\\^[A-Z@\\[\\]\\\\^_])|(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))",
|
23
|
+
"functionTypeDeclaration": "(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))",
|
24
|
+
"doubleColonOperator": "(?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))",
|
25
|
+
"ctorTypeDeclaration": "(?:(?:((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))",
|
26
26
|
"ctorArgs": "(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+)",
|
27
27
|
"ctor": "(?:(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?<![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*)(?:((?:(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+))(?:(?:\\s+)(?:(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+)))*)?))",
|
28
28
|
"typeDeclOne": "(?:(?!(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?<![\\p{Ll}_\\p{Lu}\\p{Lt}']))where(?:(?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))",
|
@@ -92,11 +92,6 @@
|
|
92
92
|
{
|
93
93
|
"begin": "(^[ \\t]+)?(?=--+\\s+[|^])",
|
94
94
|
"end": "(?!\\G)",
|
95
|
-
"beginCaptures": {
|
96
|
-
"1": {
|
97
|
-
"name": "punctuation.whitespace.comment.leading.haskell"
|
98
|
-
}
|
99
|
-
},
|
100
95
|
"patterns": [
|
101
96
|
{
|
102
97
|
"name": "comment.line.double-dash.haddock.haskell",
|
@@ -114,13 +109,8 @@
|
|
114
109
|
]
|
115
110
|
},
|
116
111
|
{
|
117
|
-
"begin": "(^[ \\t]+)?(?=--+(?![\\p{S}\\p{P}
|
112
|
+
"begin": "(^[ \\t]+)?(?=--+(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))",
|
118
113
|
"end": "(?!\\G)",
|
119
|
-
"beginCaptures": {
|
120
|
-
"1": {
|
121
|
-
"name": "punctuation.whitespace.comment.leading.haskell"
|
122
|
-
}
|
123
|
-
},
|
124
114
|
"patterns": [
|
125
115
|
{
|
126
116
|
"name": "comment.line.double-dash.haskell",
|
@@ -163,7 +153,7 @@
|
|
163
153
|
"patterns": [
|
164
154
|
{
|
165
155
|
"name": "entity.name.function.infix.haskell",
|
166
|
-
"match": "(?:\\((?!--+\\))[\\p{S}\\p{P}
|
156
|
+
"match": "(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))"
|
167
157
|
}
|
168
158
|
]
|
169
159
|
},
|
@@ -173,6 +163,7 @@
|
|
173
163
|
"name": "meta.declaration.exports.haskell",
|
174
164
|
"begin": "\\(",
|
175
165
|
"end": "\\)",
|
166
|
+
"applyEndPatternLast": 1,
|
176
167
|
"patterns": [
|
177
168
|
{
|
178
169
|
"include": "#comments"
|
@@ -248,7 +239,7 @@
|
|
248
239
|
"patterns": [
|
249
240
|
{
|
250
241
|
"name": "meta.function.type-declaration.haskell",
|
251
|
-
"begin": "^([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))[\\p{S}\\p{P}
|
242
|
+
"begin": "^([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))",
|
252
243
|
"end": "^(?!\\1[ \\t]|[ \\t]*$)",
|
253
244
|
"contentName": "meta.type-signature.haskell",
|
254
245
|
"beginCaptures": {
|
@@ -278,7 +269,7 @@
|
|
278
269
|
"patterns": [
|
279
270
|
{
|
280
271
|
"name": "meta.ctor.type-declaration.haskell",
|
281
|
-
"begin": "^([ \\t]*)(?:(?:((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\))[\\p{S}\\p{P}
|
272
|
+
"begin": "^([ \\t]*)(?:(?:((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))",
|
282
273
|
"end": "^(?!\\1[ \\t]|[ \\t]*$)",
|
283
274
|
"contentName": "meta.type-signature.haskell",
|
284
275
|
"beginCaptures": {
|
@@ -308,8 +299,8 @@
|
|
308
299
|
"patterns": [
|
309
300
|
{
|
310
301
|
"name": "meta.record-field.type-declaration.haskell",
|
311
|
-
"begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?<![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))[\\p{S}\\p{P}
|
312
|
-
"end": "(?=(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))[\\p{S}\\p{P}
|
302
|
+
"begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?<![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))",
|
303
|
+
"end": "(?=(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))|})",
|
313
304
|
"contentName": "meta.type-signature.haskell",
|
314
305
|
"beginCaptures": {
|
315
306
|
"1": {
|
@@ -357,11 +348,11 @@
|
|
357
348
|
},
|
358
349
|
{
|
359
350
|
"name": "keyword.other.arrow.haskell",
|
360
|
-
"match": "(?<,;\\[\\]`{}_\"'])))(->|→)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))"
|
361
352
|
},
|
362
353
|
{
|
363
354
|
"name": "keyword.other.big-arrow.haskell",
|
364
|
-
"match": "(?<,;\\[\\]`{}_\"'])))(=>|⇒)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))"
|
365
356
|
},
|
366
357
|
{
|
367
358
|
"include": "#operator"
|
@@ -883,7 +874,7 @@
|
|
883
874
|
"patterns": [
|
884
875
|
{
|
885
876
|
"name": "string.quoted.single.haskell",
|
886
|
-
"match": "(')((?:[\\ -\\[\\]-~]|\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\\\\\^[A-Z@\\[\\]\\\\^_])|[\\p{S}\\p{P}
|
877
|
+
"match": "(')((?:[\\ -\\[\\]-~]|\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\\\\\^[A-Z@\\[\\]\\\\^_])|(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))(')",
|
887
878
|
"captures": {
|
888
879
|
"1": {
|
889
880
|
"name": "punctuation.definition.string.begin.haskell"
|
@@ -905,7 +896,7 @@
|
|
905
896
|
"scoped_type": {
|
906
897
|
"patterns": [
|
907
898
|
{
|
908
|
-
"match": "\\(((?<paren>(?:[^\\(\\)]|\\(\\g<paren>\\))*)(?<![\\p{S}\\p{P}
|
899
|
+
"match": "\\(((?<paren>(?:[^\\(\\)]|\\(\\g<paren>\\))*)(?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?<paren2>(?:[^\\(\\)]|\\(\\g<paren2>\\))*))\\)",
|
909
900
|
"captures": {
|
910
901
|
"1": {
|
911
902
|
"patterns": [
|
@@ -917,7 +908,7 @@
|
|
917
908
|
}
|
918
909
|
},
|
919
910
|
{
|
920
|
-
"match": "((?<,;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))(.*?)(?=(?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(<-|=)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))|$)",
|
921
912
|
"captures": {
|
922
913
|
"1": {
|
923
914
|
"name": "keyword.other.double-colon.haskell"
|
@@ -937,7 +928,7 @@
|
|
937
928
|
"scoped_type_override": {
|
938
929
|
"patterns": [
|
939
930
|
{
|
940
|
-
"match": "^([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))[\\p{S}\\p{P}
|
931
|
+
"match": "^([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))(.*)(?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(<-|=)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))",
|
941
932
|
"captures": {
|
942
933
|
"2": {
|
943
934
|
"patterns": [
|
@@ -1003,7 +994,7 @@
|
|
1003
994
|
"patterns": [
|
1004
995
|
{
|
1005
996
|
"name": "keyword.operator.haskell",
|
1006
|
-
"match": "[\\p{S}\\p{P}
|
997
|
+
"match": "(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+"
|
1007
998
|
}
|
1008
999
|
]
|
1009
1000
|
},
|
data/grammars/source.bsl.json
CHANGED
@@ -70,12 +70,26 @@
|
|
70
70
|
"name": "variable.bsl"
|
71
71
|
}
|
72
72
|
},
|
73
|
-
"end": "(
|
73
|
+
"end": "(;)",
|
74
74
|
"endCaptures": {
|
75
75
|
"1": {
|
76
|
-
"name": "
|
76
|
+
"name": "keyword.operator.bsl"
|
77
|
+
}
|
78
|
+
},
|
79
|
+
"patterns": [
|
80
|
+
{
|
81
|
+
"name": "keyword.operator.bsl",
|
82
|
+
"match": "(,)"
|
83
|
+
},
|
84
|
+
{
|
85
|
+
"name": "storage.modifier.bsl",
|
86
|
+
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(Экспорт|Export)(?=[^\\wа-яё\\.]|$))"
|
87
|
+
},
|
88
|
+
{
|
89
|
+
"name": "variable.bsl",
|
90
|
+
"match": "(?i:[a-zа-яё0-9_]+)"
|
77
91
|
}
|
78
|
-
|
92
|
+
]
|
79
93
|
},
|
80
94
|
{
|
81
95
|
"comment": "Variable assignment",
|
@@ -144,17 +158,17 @@
|
|
144
158
|
{
|
145
159
|
"comment": "Глобальный контекст - функции работы со значениями типа Строка",
|
146
160
|
"name": "support.function.bsl",
|
147
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(СтрДлина|StrLen
|
161
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n СтрДлина|StrLen|\n СокрЛ|TrimL|\n СокрП|TrimR|\n СокрЛП|TrimAll|\n Лев|Left|\n Прав|Right|\n Сред|Mid|\n СтрНайти|StrFind|\n ВРег|Upper|\n НРег|Lower|\n ТРег|Title|\n Символ|Char|\n КодСимвола|CharCode|\n ПустаяСтрока|IsBlankString|\n СтрЗаменить|StrReplace|\n СтрЧислоСтрок|StrLineCount|\n СтрПолучитьСтроку|StrGetLine|\n СтрЧислоВхождений|StrOccurrenceCount|\n СтрСравнить|StrCompare|\n СтрНачинаетсяС|StrStartWith|\n СтрЗаканчиваетсяНа|StrEndsWith|\n СтрРазделить|StrSplit|\n СтрСоединить|StrConcat\n)\\s*(?=\\())"
|
148
162
|
},
|
149
163
|
{
|
150
164
|
"comment": "Глобальный контекст - функции работы со значениями типа Число",
|
151
165
|
"name": "support.function.bsl",
|
152
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(Цел|Int
|
166
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n Цел|Int|\n Окр|Round|\n ACos|\n ASin|\n ATan|\n Cos|\n Exp|\n Log|\n Log10|\n Pow|\n Sin|\n Sqrt|\n Tan\n)\\s*(?=\\())"
|
153
167
|
},
|
154
168
|
{
|
155
169
|
"comment": "Глобальный контекст - функции работы со значениями типа Дата",
|
156
170
|
"name": "support.function.bsl",
|
157
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(Год|Year
|
171
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n Год|Year|\n Месяц|Month|\n День|Day|\n Час|Hour|\n Минута|Minute|\n Секунда|Second|\n НачалоГода|BegOfYear|\n НачалоДня|BegOfDay|\n НачалоКвартала|BegOfQuarter|\n НачалоМесяца|BegOfMonth|\n НачалоМинуты|BegOfMinute|\n НачалоНедели|BegOfWeek|\n НачалоЧаса|BegOfHour|\n КонецГода|EndOfYear|\n КонецДня|EndOfDay|\n КонецКвартала|EndOfQuarter|\n КонецМесяца|EndOfMonth|\n КонецМинуты|EndOfMinute|\n КонецНедели|EndOfWeek|\n КонецЧаса|EndOfHour|\n НеделяГода|WeekOfYear|\n ДеньГода|DayOfYear|\n ДеньНедели|WeekDay|\n ТекущаяДата|CurrentDate|\n ДобавитьМесяц|AddMonth\n)\\s*(?=\\())"
|
158
172
|
},
|
159
173
|
{
|
160
174
|
"comment": "Глобальный контекст - функции работы со значениями типа Тип",
|
@@ -169,92 +183,92 @@
|
|
169
183
|
{
|
170
184
|
"comment": "Глобальный контекст - процедуры и функции интерактивной работы",
|
171
185
|
"name": "support.function.bsl",
|
172
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(ПоказатьВопрос|ShowQueryBox
|
186
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n ПоказатьВопрос|ShowQueryBox|\n Вопрос|DoQueryBox|\n ПоказатьПредупреждение|ShowMessageBox|\n Предупреждение|DoMessageBox|\n Сообщить|Message|\n ОчиститьСообщения|ClearMessages|\n ОповеститьОбИзменении|NotifyChanged|\n Состояние|Status|\n Сигнал|Beep|\n ПоказатьЗначение|ShowValue|\n ОткрытьЗначение|OpenValue|\n Оповестить|Notify|\n ОбработкаПрерыванияПользователя|UserInterruptProcessing|\n ОткрытьСодержаниеСправки|OpenHelpContent|\n ОткрытьИндексСправки|OpenHelpIndex|\n ОткрытьСправку|OpenHelp|\n ПоказатьИнформациюОбОшибке|ShowErrorInfo|\n КраткоеПредставлениеОшибки|BriefErrorDescription|\n ПодробноеПредставлениеОшибки|DetailErrorDescription|\n ПолучитьФорму|GetForm|\n ЗакрытьСправку|CloseHelp|\n ПоказатьОповещениеПользователя|ShowUserNotification|\n ОткрытьФорму|OpenForm|\n ОткрытьФормуМодально|OpenFormModal|\n АктивноеОкно|ActiveWindow|\n ВыполнитьОбработкуОповещения|ExecuteNotifyProcessing\n)\\s*(?=\\())"
|
173
187
|
},
|
174
188
|
{
|
175
189
|
"comment": "Глобальный контекст - функции для вызова диалога ввода данных",
|
176
190
|
"name": "support.function.bsl",
|
177
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(ПоказатьВводЗначения|ShowInputValue
|
191
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n ПоказатьВводЗначения|ShowInputValue|\n ВвестиЗначение|InputValue|\n ПоказатьВводЧисла|ShowInputNumber|\n ВвестиЧисло|InputNumber|\n ПоказатьВводСтроки|ShowInputString|\n ВвестиСтроку|InputString|\n ПоказатьВводДаты|ShowInputDate|\n ВвестиДату|InputDate\n)\\s*(?=\\())"
|
178
192
|
},
|
179
193
|
{
|
180
194
|
"comment": "Глобальный контекст - функции форматирования",
|
181
195
|
"name": "support.function.bsl",
|
182
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(Формат|Format
|
196
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n Формат|Format|\n ЧислоПрописью|NumberInWords|\n НСтр|NStr|\n ПредставлениеПериода|PeriodPresentation|\n СтрШаблон|StrTemplate\n)\\s*(?=\\())"
|
183
197
|
},
|
184
198
|
{
|
185
199
|
"comment": "Глобальный контекст - функции обращения к конфигурации",
|
186
200
|
"name": "support.function.bsl",
|
187
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(ПолучитьОбщийМакет|GetCommonTemplate
|
201
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n ПолучитьОбщийМакет|GetCommonTemplate|\n ПолучитьОбщуюФорму|GetCommonForm|\n ПредопределенноеЗначение|PredefinedValue|\n ПолучитьПолноеИмяПредопределенногоЗначения|GetPredefinedValueFullName\n)\\s*(?=\\())"
|
188
202
|
},
|
189
203
|
{
|
190
204
|
"comment": "Глобальный контекст - процедуры и функции сеанса работы",
|
191
205
|
"name": "support.function.bsl",
|
192
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(ПолучитьЗаголовокСистемы|GetCaption
|
206
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n ПолучитьЗаголовокСистемы|GetCaption|\n ПолучитьСкоростьКлиентскогоСоединения|GetClientConnectionSpeed|\n ПодключитьОбработчикОжидания|AttachIdleHandler|\n УстановитьЗаголовокСистемы|SetCaption|\n ОтключитьОбработчикОжидания|DetachIdleHandler|\n ИмяКомпьютера|ComputerName|\n ЗавершитьРаботуСистемы|Exit|\n ИмяПользователя|UserName|\n ПрекратитьРаботуСистемы|Terminate|\n ПолноеИмяПользователя|UserFullName|\n ЗаблокироватьРаботуПользователя|LockApplication|\n КаталогПрограммы|BinDir|\n КаталогВременныхФайлов|TempFilesDir|\n ПравоДоступа|AccessRight|\n РольДоступна|IsInRole|\n ТекущийЯзык|CurrentLanguage|\n ТекущийКодЛокализации|CurrentLocaleCode|\n СтрокаСоединенияИнформационнойБазы|InfoBaseConnectionString|\n ПодключитьОбработчикОповещения|AttachNotificationHandler|\n ОтключитьОбработчикОповещения|DetachNotificationHandler|\n ПолучитьСообщенияПользователю|GetUserMessages|\n ПараметрыДоступа|AccessParameters|\n ПредставлениеПриложения|ApplicationPresentation|\n ТекущийЯзыкСистемы|CurrentSystemLanguage|\n ЗапуститьСистему|RunSystem|\n ТекущийРежимЗапуска|CurrentRunMode|\n УстановитьЧасовойПоясСеанса|SetSessionTimeZone|\n ЧасовойПоясСеанса|SessionTimeZone|\n ТекущаяДатаСеанса|CurrentSessionDate|\n УстановитьКраткийЗаголовокПриложения|SetShortApplicationCaption|\n ПолучитьКраткийЗаголовокПриложения|GetShortApplicationCaption|\n ПредставлениеПрава|RightPresentation|\n ВыполнитьПроверкуПравДоступа|VerifyAccessRights|\n РабочийКаталогДанныхПользователя|UserDataWorkDir|\n КаталогДокументов|DocumentsDir|\n ПолучитьИнформациюЭкрановКлиента|GetClientDisplaysInformation|\n ТекущийВариантОсновногоШрифтаКлиентскогоПриложения|ClientApplicationBaseFontCurrentVariant|\n ТекущийВариантИнтерфейсаКлиентскогоПриложения|ClientApplicationInterfaceCurrentVariant|\n УстановитьЗаголовокКлиентскогоПриложения|SetClientApplicationCaption|\n ПолучитьЗаголовокКлиентскогоПриложения|GetClientApplicationCaption|\n НачатьПолучениеКаталогаВременныхФайлов|BeginGettingTempFilesDir|\n НачатьПолучениеКаталогаДокументов|BeginGettingDocumentsDir|\n НачатьПолучениеРабочегоКаталогаДанныхПользователя|BeginGettingUserDataWorkDir|\n ПодключитьОбработчикЗапросаНастроекКлиентаЛицензирования|AttachLicensingClientParametersRequestHandler|\n ОтключитьОбработчикЗапросаНастроекКлиентаЛицензирования|DetachLicensingClientParametersRequestHandler|\n КаталогБиблиотекиМобильногоУстройства|MobileDeviceLibraryDir\n)\\s*(?=\\())"
|
193
207
|
},
|
194
208
|
{
|
195
209
|
"comment": "Глобальный контекст - процедуры и функции сохранения значений",
|
196
210
|
"name": "support.function.bsl",
|
197
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(ЗначениеВСтрокуВнутр|ValueToStringInternal
|
211
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n ЗначениеВСтрокуВнутр|ValueToStringInternal|\n ЗначениеИзСтрокиВнутр|ValueFromStringInternal|\n ЗначениеВФайл|ValueToFile|\n ЗначениеИзФайла|ValueFromFile\n)\\s*(?=\\())"
|
198
212
|
},
|
199
213
|
{
|
200
214
|
"comment": "Глобальный контекст - Процедуры и функции работы с операционной системой",
|
201
215
|
"name": "support.function.bsl",
|
202
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(КомандаСистемы|System
|
216
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n КомандаСистемы|System|\n ЗапуститьПриложение|RunApp|\n ПолучитьCOMОбъект|GetCOMObject|\n ПользователиОС|OSUsers|\n НачатьЗапускПриложения|BeginRunningApplication\n)\\s*(?=\\())"
|
203
217
|
},
|
204
218
|
{
|
205
219
|
"comment": "Глобальный контекст - Процедуры и функции работы с внешними компонентами",
|
206
220
|
"name": "support.function.bsl",
|
207
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(ПодключитьВнешнююКомпоненту|AttachAddIn
|
221
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n ПодключитьВнешнююКомпоненту|AttachAddIn|\n НачатьУстановкуВнешнейКомпоненты|BeginInstallAddIn|\n УстановитьВнешнююКомпоненту|InstallAddIn|\n НачатьПодключениеВнешнейКомпоненты|BeginAttachingAddIn\n)\\s*(?=\\())"
|
208
222
|
},
|
209
223
|
{
|
210
224
|
"comment": "Глобальный контекст - Процедуры и функции работы с файлами",
|
211
225
|
"name": "support.function.bsl",
|
212
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(КопироватьФайл|FileCopy
|
226
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n КопироватьФайл|FileCopy|\n ПереместитьФайл|MoveFile|\n УдалитьФайлы|DeleteFiles|\n НайтиФайлы|FindFiles|\n СоздатьКаталог|CreateDirectory|\n ПолучитьИмяВременногоФайла|GetTempFileName|\n РазделитьФайл|SplitFile|\n ОбъединитьФайлы|MergeFiles|\n ПолучитьФайл|GetFile|\n НачатьПомещениеФайла|BeginPutFile|\n ПоместитьФайл|PutFile|\n ЭтоАдресВременногоХранилища|IsTempStorageURL|\n УдалитьИзВременногоХранилища|DeleteFromTempStorage|\n ПолучитьИзВременногоХранилища|GetFromTempStorage|\n ПоместитьВоВременноеХранилище|PutToTempStorage|\n ПодключитьРасширениеРаботыСФайлами|AttachFileSystemExtension|\n НачатьУстановкуРасширенияРаботыСФайлами|BeginInstallFileSystemExtension|\n УстановитьРасширениеРаботыСФайлами|InstallFileSystemExtension|\n ПолучитьФайлы|GetFiles|\n ПоместитьФайлы|PutFiles|\n ЗапроситьРазрешениеПользователя|RequestUserPermission|\n ПолучитьМаскуВсеФайлы|GetAllFilesMask|\n ПолучитьМаскуВсеФайлыКлиента|GetClientAllFilesMask|\n ПолучитьМаскуВсеФайлыСервера|GetServerAllFilesMask|\n ПолучитьРазделительПути|GetPathSeparator|\n ПолучитьРазделительПутиКлиента|GetClientPathSeparator|\n ПолучитьРазделительПутиСервера|GetServerPathSeparator|\n НачатьПодключениеРасширенияРаботыСФайлами|BeginAttachingFileSystemExtension|\n НачатьЗапросРазрешенияПользователя|BeginRequestingUserPermission|\n НачатьПоискФайлов|BeginFindingFiles|\n НачатьСозданиеКаталога|BeginCreatingDirectory|\n НачатьКопированиеФайла|BeginCopyingFile|\n НачатьПеремещениеФайла|BeginMovingFile|\n НачатьУдалениеФайлов|BeginDeletingFiles|\n НачатьПолучениеФайлов|BeginGettingFiles|\n НачатьПомещениеФайлов|BeginPuttingFiles|\n НачатьСозданиеДвоичныхДанныхИзФайла|BeginCreateBinaryDataFromFile\n)\\s*(?=\\())"
|
213
227
|
},
|
214
228
|
{
|
215
229
|
"comment": "Глобальный контекст - Процедуры и функции работы с информационной базой",
|
216
230
|
"name": "support.function.bsl",
|
217
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(НачатьТранзакцию|BeginTransaction
|
231
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n НачатьТранзакцию|BeginTransaction|\n ЗафиксироватьТранзакцию|CommitTransaction|\n ОтменитьТранзакцию|RollbackTransaction|\n УстановитьМонопольныйРежим|SetExclusiveMode|\n МонопольныйРежим|ExclusiveMode|\n ПолучитьОперативнуюОтметкуВремени|GetRealTimeTimestamp|\n ПолучитьСоединенияИнформационнойБазы|GetInfoBaseConnections|\n НомерСоединенияИнформационнойБазы|InfoBaseConnectionNumber|\n КонфигурацияИзменена|ConfigurationChanged|\n КонфигурацияБазыДанныхИзмененаДинамически|DataBaseConfigurationChangedDynamically|\n УстановитьВремяОжиданияБлокировкиДанных|SetLockWaitTime|\n ОбновитьНумерациюОбъектов|RefreshObjectsNumbering|\n ПолучитьВремяОжиданияБлокировкиДанных|GetLockWaitTime|\n КодЛокализацииИнформационнойБазы|InfoBaseLocaleCode|\n УстановитьМинимальнуюДлинуПаролейПользователей|SetUserPasswordMinLength|\n ПолучитьМинимальнуюДлинуПаролейПользователей|GetUserPasswordMinLength|\n ИнициализироватьПредопределенныеДанные|InitializePredefinedData|\n УдалитьДанныеИнформационнойБазы|EraseInfoBaseData|\n УстановитьПроверкуСложностиПаролейПользователей|SetUserPasswordStrengthCheck|\n ПолучитьПроверкуСложностиПаролейПользователей|GetUserPasswordStrengthCheck|\n ПолучитьСтруктуруХраненияБазыДанных|GetDBStorageStructureInfo|\n УстановитьПривилегированныйРежим|SetPrivilegedMode|\n ПривилегированныйРежим|PrivilegedMode|\n ТранзакцияАктивна|TransactionActive|\n НеобходимостьЗавершенияСоединения|ConnectionStopRequest|\n НомерСеансаИнформационнойБазы|InfoBaseSessionNumber|\n ПолучитьСеансыИнформационнойБазы|GetInfoBaseSessions|\n ЗаблокироватьДанныеДляРедактирования|LockDataForEdit|\n УстановитьСоединениеСВнешнимИсточникомДанных|ConnectExternalDataSource|\n РазблокироватьДанныеДляРедактирования|UnlockDataForEdit|\n РазорватьСоединениеСВнешнимИсточникомДанных|DisconnectExternalDataSource|\n ПолучитьБлокировкуСеансов|GetSessionsLock|\n УстановитьБлокировкуСеансов|SetSessionsLock|\n ОбновитьПовторноИспользуемыеЗначения|RefreshReusableValues|\n УстановитьБезопасныйРежим|SetSafeMode|\n БезопасныйРежим|SafeMode|\n ПолучитьДанныеВыбора|GetChoiceData|\n УстановитьЧасовойПоясИнформационнойБазы|SetInfoBaseTimeZone|\n ПолучитьЧасовойПоясИнформационнойБазы|GetInfoBaseTimeZone|\n ПолучитьОбновлениеКонфигурацииБазыДанных|GetDataBaseConfigurationUpdate|\n УстановитьБезопасныйРежимРазделенияДанных|SetDataSeparationSafeMode|\n БезопасныйРежимРазделенияДанных|DataSeparationSafeMode|\n УстановитьВремяЗасыпанияПассивногоСеанса|SetPassiveSessionHibernateTime|\n ПолучитьВремяЗасыпанияПассивногоСеанса|GetPassiveSessionHibernateTime|\n УстановитьВремяЗавершенияСпящегоСеанса|SetHibernateSessionTerminateTime|\n ПолучитьВремяЗавершенияСпящегоСеанса|GetHibernateSessionTerminateTime|\n ПолучитьТекущийСеансИнформационнойБазы|GetCurrentInfoBaseSession|\n ПолучитьИдентификаторКонфигурации|GetConfigurationID|\n УстановитьНастройкиКлиентаЛицензирования|SetLicensingClientParameters|\n ПолучитьИмяКлиентаЛицензирования|GetLicensingClientName|\n ПолучитьДополнительныйПараметрКлиентаЛицензирования|GetLicensingClientAdditionalParameter|\n ПолучитьОтключениеБезопасногоРежима|GetSafeModeDisabled|\n УстановитьОтключениеБезопасногоРежима|SetSafeModeDisabled\n)\\s*(?=\\())"
|
218
232
|
},
|
219
233
|
{
|
220
234
|
"comment": "Глобальный контекст - Процедуры и функции работы с данными информационной базы",
|
221
235
|
"name": "support.function.bsl",
|
222
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(НайтиПомеченныеНаУдаление|FindMarkedForDeletion
|
236
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n НайтиПомеченныеНаУдаление|FindMarkedForDeletion|\n НайтиПоСсылкам|FindByRef|\n УдалитьОбъекты|DeleteObjects|\n УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы|SetInfoBasePredefinedDataUpdate|\n ПолучитьОбновлениеПредопределенныхДанныхИнформационнойБазы|GetInfoBasePredefinedData\n)\\s*(?=\\())"
|
223
237
|
},
|
224
238
|
{
|
225
239
|
"comment": "Глобальный контекст - Процедуры и функции работы с XML",
|
226
240
|
"name": "support.function.bsl",
|
227
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(XMLСтрока|XMLString
|
241
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n XMLСтрока|XMLString|\n XMLЗначение|XMLValue|\n XMLТип|XMLType|\n XMLТипЗнч|XMLTypeOf|\n ИзXMLТипа|FromXMLType|\n ВозможностьЧтенияXML|CanReadXML|\n ПолучитьXMLТип|GetXMLType|\n ПрочитатьXML|ReadXML|\n ЗаписатьXML|WriteXML|\n НайтиНедопустимыеСимволыXML|FindDisallowedXMLCharacters|\n ИмпортМоделиXDTO|ImportXDTOModel|\n СоздатьФабрикуXDTO|CreateXDTOFactory\n)\\s*(?=\\())"
|
228
242
|
},
|
229
243
|
{
|
230
244
|
"comment": "Глобальный контекст - Процедуры и функции работы с JSON",
|
231
245
|
"name": "support.function.bsl",
|
232
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(ЗаписатьJSON|WriteJSON
|
246
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n ЗаписатьJSON|WriteJSON|\n ПрочитатьJSON|ReadJSON|\n ПрочитатьДатуJSON|ReadJSONDate|\n ЗаписатьДатуJSON|WriteJSONDate\n)\\s*(?=\\())"
|
233
247
|
},
|
234
248
|
{
|
235
249
|
"comment": "Глобальный контекст - Процедуры и функции работы с журналом регистрации",
|
236
250
|
"name": "support.function.bsl",
|
237
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(ЗаписьЖурналаРегистрации|WriteLogEvent
|
251
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n ЗаписьЖурналаРегистрации|WriteLogEvent|\n ПолучитьИспользованиеЖурналаРегистрации|GetEventLogUsing|\n УстановитьИспользованиеЖурналаРегистрации|SetEventLogUsing|\n ПредставлениеСобытияЖурналаРегистрации|EventLogEventPresentation|\n ВыгрузитьЖурналРегистрации|UnloadEventLog|\n ПолучитьЗначенияОтбораЖурналаРегистрации|GetEventLogFilterValues|\n УстановитьИспользованиеСобытияЖурналаРегистрации|SetEventLogEventUse|\n ПолучитьИспользованиеСобытияЖурналаРегистрации|GetEventLogEventUse|\n СкопироватьЖурналРегистрации|CopyEventLog|\n ОчиститьЖурналРегистрации|ClearEventLog\n)\\s*(?=\\())"
|
238
252
|
},
|
239
253
|
{
|
240
254
|
"comment": "Глобальный контекст - Процедуры и функции работы с универсальными объектами",
|
241
255
|
"name": "support.function.bsl",
|
242
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(ЗначениеВДанныеФормы|ValueToFormData
|
256
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n ЗначениеВДанныеФормы|ValueToFormData|\n ДанныеФормыВЗначение|FormDataToValue|\n КопироватьДанныеФормы|CopyFormData|\n УстановитьСоответствиеОбъектаИФормы|SetObjectAndFormConformity|\n ПолучитьСоответствиеОбъектаИФормы|GetObjectAndFormConformity\n)\\s*(?=\\())"
|
243
257
|
},
|
244
258
|
{
|
245
259
|
"comment": "Глобальный контекст - Процедуры и функции работы с функциональными опциями",
|
246
260
|
"name": "support.function.bsl",
|
247
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(ПолучитьФункциональнуюОпцию|GetFunctionalOption
|
261
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n ПолучитьФункциональнуюОпцию|GetFunctionalOption|\n ПолучитьФункциональнуюОпциюИнтерфейса|GetInterfaceFunctionalOption|\n УстановитьПараметрыФункциональныхОпцийИнтерфейса|SetInterfaceFunctionalOptionParameters|\n ПолучитьПараметрыФункциональныхОпцийИнтерфейса|GetInterfaceFunctionalOptionParameters|\n ОбновитьИнтерфейс|RefreshInterface\n)\\s*(?=\\())"
|
248
262
|
},
|
249
263
|
{
|
250
264
|
"comment": "Глобальный контекст - Процедуры и функции работы с криптографией",
|
251
265
|
"name": "support.function.bsl",
|
252
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(УстановитьРасширениеРаботыСКриптографией|InstallCryptoExtension
|
266
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n УстановитьРасширениеРаботыСКриптографией|InstallCryptoExtension|\n НачатьУстановкуРасширенияРаботыСКриптографией|BeginInstallCryptoExtension|\n ПодключитьРасширениеРаботыСКриптографией|AttachCryptoExtension|\n НачатьПодключениеРасширенияРаботыСКриптографией|BeginAttachingCryptoExtension\n)\\s*(?=\\())"
|
253
267
|
},
|
254
268
|
{
|
255
269
|
"comment": "Глобальный контекст - Процедуры и функции работы со стандартным интерфейсом OData",
|
256
270
|
"name": "support.function.bsl",
|
257
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(УстановитьСоставСтандартногоИнтерфейсаOData|SetStandardODataInterfaceContent
|
271
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n УстановитьСоставСтандартногоИнтерфейсаOData|SetStandardODataInterfaceContent|\n ПолучитьСоставСтандартногоИнтерфейсаOData|GetStandardODataInterfaceContent\n)\\s*(?=\\())"
|
258
272
|
},
|
259
273
|
{
|
260
274
|
"comment": "Глобальный контекст - Процедуры и функции работы с двоичными данными",
|
@@ -264,22 +278,22 @@
|
|
264
278
|
{
|
265
279
|
"comment": "Глобальный контекст - Прочие процедуры и функции",
|
266
280
|
"name": "support.function.bsl",
|
267
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(Мин|Min
|
281
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n Мин|Min|\n Макс|Max|\n ОписаниеОшибки|ErrorDescription|\n Вычислить|Eval|\n ИнформацияОбОшибке|ErrorInfo|\n Base64Значение|Base64Value|\n Base64Строка|Base64String|\n ЗаполнитьЗначенияСвойств|FillPropertyValues|\n ЗначениеЗаполнено|ValueIsFilled|\n ПолучитьПредставленияНавигационныхСсылок|GetURLsPresentations|\n НайтиОкноПоНавигационнойСсылке|FindWindowByURL|\n ПолучитьОкна|GetWindows|\n ПерейтиПоНавигационнойСсылке|GotoURL|\n ПолучитьНавигационнуюСсылку|GetURL|\n ПолучитьДопустимыеКодыЛокализации|GetAvailableLocaleCodes|\n ПолучитьНавигационнуюСсылкуИнформационнойБазы|GetInfoBaseURL|\n ПредставлениеКодаЛокализации|LocaleCodePresentation|\n ПолучитьДопустимыеЧасовыеПояса|GetAvailableTimeZones|\n ПредставлениеЧасовогоПояса|TimeZonePresentation|\n ТекущаяУниверсальнаяДата|CurrentUniversalDate|\n ТекущаяУниверсальнаяДатаВМиллисекундах|CurrentUniversalDateInMilliseconds|\n МестноеВремя|ToLocalTime|\n УниверсальноеВремя|ToUniversalTime|\n ЧасовойПояс|TimeZone|\n СмещениеЛетнегоВремени|DaylightTimeOffset|\n СмещениеСтандартногоВремени|StandardTimeOffset|\n КодироватьСтроку|EncodeString|\n РаскодироватьСтроку|DecodeString|\n Найти|Find|\n ПродолжитьВызов|ProceedWithCall\n)\\s*(?=\\())"
|
268
282
|
},
|
269
283
|
{
|
270
284
|
"comment": "Глобальный контекст - События приложения и сеанса",
|
271
285
|
"name": "support.function.bsl",
|
272
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(ПередНачаломРаботыСистемы|BeforeStart
|
286
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n ПередНачаломРаботыСистемы|BeforeStart|\n ПриНачалеРаботыСистемы|OnStart|\n ПередЗавершениемРаботыСистемы|BeforeExit|\n ПриЗавершенииРаботыСистемы|OnExit|\n ОбработкаВнешнегоСобытия|ExternEventProcessing|\n УстановкаПараметровСеанса|SessionParametersSetting|\n ПриИзмененииПараметровЭкрана|OnChangeDisplaySettings\n)\\s*(?=\\())"
|
273
287
|
},
|
274
288
|
{
|
275
289
|
"comment": "Глобальный контекст - Свойства (классы)",
|
276
290
|
"name": "support.class.bsl",
|
277
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(WSСсылки|WSReferences
|
291
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n WSСсылки|WSReferences|\n БиблиотекаКартинок|PictureLib|\n БиблиотекаМакетовОформленияКомпоновкиДанных|DataCompositionAppearanceTemplateLib|\n БиблиотекаСтилей|StyleLib|\n БизнесПроцессы|BusinessProcesses|\n ВнешниеИсточникиДанных|ExternalDataSources|\n ВнешниеОбработки|ExternalDataProcessors|\n ВнешниеОтчеты|ExternalReports|\n Документы|Documents|\n ДоставляемыеУведомления|DeliverableNotifications|\n ЖурналыДокументов|DocumentJournals|\n Задачи|Tasks|\n ИнформацияОбИнтернетСоединении|InternetConnectionInformation|\n ИспользованиеРабочейДаты|WorkingDateUse|\n ИсторияРаботыПользователя|UserWorkHistory|\n Константы|Constants|\n КритерииОтбора|FilterCriteria|\n Метаданные|Metadata|\n Обработки|DataProcessors|\n ОтправкаДоставляемыхУведомлений|DeliverableNotificationSend|\n Отчеты|Reports|\n ПараметрыСеанса|SessionParameters|\n Перечисления|Enums|\n ПланыВидовРасчета|ChartsOfCalculationTypes|\n ПланыВидовХарактеристик|ChartsOfCharacteristicTypes|\n ПланыОбмена|ExchangePlans|\n ПланыСчетов|ChartsOfAccounts|\n ПолнотекстовыйПоиск|FullTextSearch|\n ПользователиИнформационнойБазы|InfoBaseUsers|\n Последовательности|Sequences|\n РасширенияКонфигурации|ConfigurationExtensions|\n РегистрыБухгалтерии|AccountingRegisters|\n РегистрыНакопления|AccumulationRegisters|\n РегистрыРасчета|CalculationRegisters|\n РегистрыСведений|InformationRegisters|\n РегламентныеЗадания|ScheduledJobs|\n СериализаторXDTO|XDTOSerializer|\n Справочники|Catalogs|\n СредстваГеопозиционирования|LocationTools|\n СредстваКриптографии|CryptoToolsManager|\n СредстваМультимедиа|MultimediaTools|\n СредстваОтображенияРекламы|AdvertisingPresentationTools|\n СредстваПочты|MailTools|\n СредстваТелефонии|TelephonyTools|\n ФабрикаXDTO|XDTOFactory|\n ФайловыеПотоки|FileStreams|\n ФоновыеЗадания|BackgroundJobs|\n ХранилищаНастроек|SettingsStorages|\n ВстроенныеПокупки|InAppPurchases|\n ОтображениеРекламы|AdRepresentation|\n ПанельЗадачОС|OSTaskbar|\n ПроверкаВстроенныхПокупок|InAppPurchasesValidation\n)(?=[^\\wа-яё]|$))"
|
278
292
|
},
|
279
293
|
{
|
280
294
|
"comment": "Глобальный контекст - Свойства (переменные)",
|
281
295
|
"name": "support.variable.bsl",
|
282
|
-
"match": "(?i:(?<=[^\\wа-яё\\.]|^)(ГлавныйИнтерфейс|MainInterface
|
296
|
+
"match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\n ГлавныйИнтерфейс|MainInterface|\n ГлавныйСтиль|MainStyle|\n ПараметрЗапуска|LaunchParameter|\n РабочаяДата|WorkingDate|\n ХранилищеВариантовОтчетов|ReportsVariantsStorage|\n ХранилищеНастроекДанныхФорм|FormDataSettingsStorage|\n ХранилищеОбщихНастроек|CommonSettingsStorage|\n ХранилищеПользовательскихНастроекДинамическихСписков|DynamicListsUserSettingsStorage|\n ХранилищеПользовательскихНастроекОтчетов|ReportsUserSettingsStorage|\n ХранилищеСистемныхНастроек|SystemSettingsStorage\n)(?=[^\\wа-яё]|$))"
|
283
297
|
},
|
284
298
|
{
|
285
299
|
"name": "storage.modifier.directive.bsl",
|
data/grammars/source.cs.json
CHANGED
@@ -7,6 +7,9 @@
|
|
7
7
|
"foldingStartMarker": "^\\s*#\\s*region|^\\s*/\\*|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))",
|
8
8
|
"foldingStopMarker": "^\\s*#\\s*endregion|^\\s*\\*/|^\\s*\\}",
|
9
9
|
"patterns": [
|
10
|
+
{
|
11
|
+
"include": "#attribute"
|
12
|
+
},
|
10
13
|
{
|
11
14
|
"include": "#using"
|
12
15
|
},
|
@@ -15,26 +18,67 @@
|
|
15
18
|
},
|
16
19
|
{
|
17
20
|
"include": "#code"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"include": "#method"
|
18
24
|
}
|
19
25
|
],
|
20
26
|
"repository": {
|
21
27
|
"using": {
|
22
|
-
"begin": "
|
28
|
+
"begin": "\\s*\\b(using)\\b",
|
23
29
|
"beginCaptures": {
|
24
30
|
"1": {
|
25
31
|
"name": "keyword.other.using.cs"
|
32
|
+
}
|
33
|
+
},
|
34
|
+
"end": "\\s*(?:$|;)",
|
35
|
+
"patterns": [
|
36
|
+
{
|
37
|
+
"include": "#comments"
|
26
38
|
},
|
27
|
-
|
28
|
-
"
|
39
|
+
{
|
40
|
+
"match": "\\s*\\b(static)\\b",
|
41
|
+
"captures": {
|
42
|
+
"1": {
|
43
|
+
"name": "keyword.other.static.cs"
|
44
|
+
}
|
45
|
+
}
|
29
46
|
},
|
30
|
-
|
47
|
+
{
|
48
|
+
"begin": "(\\w+)(?=.*\\=)",
|
49
|
+
"beginCaptures": {
|
50
|
+
"1": {
|
51
|
+
"name": "entity.name.alias.namespace.cs"
|
52
|
+
}
|
53
|
+
},
|
54
|
+
"patterns": [
|
55
|
+
{
|
56
|
+
"include": "#comments"
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"begin": "\\s*\\=(?=[\\w\\s/])",
|
60
|
+
"patterns": [
|
61
|
+
{
|
62
|
+
"include": "#comments"
|
63
|
+
},
|
64
|
+
{
|
65
|
+
"match": "[\\w.]+",
|
66
|
+
"name": "entity.name.type.namespace.cs"
|
67
|
+
}
|
68
|
+
],
|
69
|
+
"end": "(?=;)"
|
70
|
+
}
|
71
|
+
],
|
72
|
+
"end": ";"
|
73
|
+
},
|
74
|
+
{
|
75
|
+
"match": "[\\w.]+",
|
31
76
|
"name": "entity.name.type.namespace.cs"
|
32
77
|
}
|
33
|
-
|
34
|
-
"end": "\\s*(?:$|(;))"
|
78
|
+
]
|
35
79
|
},
|
36
80
|
"namespace": {
|
37
|
-
"begin": "
|
81
|
+
"begin": "\\s*[^@]?((namespace)\\s+([\\w.]+))",
|
38
82
|
"beginCaptures": {
|
39
83
|
"1": {
|
40
84
|
"name": "meta.namespace.identifier.cs"
|
@@ -52,7 +96,6 @@
|
|
52
96
|
"name": "punctuation.section.namespace.end.cs"
|
53
97
|
}
|
54
98
|
},
|
55
|
-
"name": "meta.namespace.cs",
|
56
99
|
"patterns": [
|
57
100
|
{
|
58
101
|
"begin": "{",
|
@@ -62,7 +105,6 @@
|
|
62
105
|
}
|
63
106
|
},
|
64
107
|
"end": "(?=})",
|
65
|
-
"name": "meta.namespace.body.cs",
|
66
108
|
"patterns": [
|
67
109
|
{
|
68
110
|
"include": "#using"
|
@@ -77,6 +119,83 @@
|
|
77
119
|
}
|
78
120
|
]
|
79
121
|
},
|
122
|
+
"field-declaration": {
|
123
|
+
"patterns": [
|
124
|
+
{
|
125
|
+
"begin": "(?=(?:(?:(?:private|public|volatile|internal|protected|static|readonly|const|event|extern)\\s*)*)(?:[\\w\\s?*,<>\\[\\]]+?)(?:[\\w]+)\\s*(?:;|=|=>))",
|
126
|
+
"end": "(?=;)",
|
127
|
+
"name": "meta.field.declaration.cs",
|
128
|
+
"patterns": [
|
129
|
+
{
|
130
|
+
"begin": "(?==>?)",
|
131
|
+
"end": "(?=;|$)",
|
132
|
+
"patterns": [
|
133
|
+
{
|
134
|
+
"include": "#code"
|
135
|
+
}
|
136
|
+
]
|
137
|
+
},
|
138
|
+
{
|
139
|
+
"begin": "\\s*=\\s*",
|
140
|
+
"end": "(?=;)",
|
141
|
+
"patterns": [
|
142
|
+
{
|
143
|
+
"include": "#code"
|
144
|
+
}
|
145
|
+
]
|
146
|
+
},
|
147
|
+
{
|
148
|
+
"match": "\\s*((?:(?:private|public|volatile|internal|protected|static|readonly|const|event|extern)\\s*)*)\\s*(.+?)\\s*([\\w]+)\\s*(?=;|=)",
|
149
|
+
"captures": {
|
150
|
+
"1": {
|
151
|
+
"name": "storage.modifier.cs"
|
152
|
+
},
|
153
|
+
"2": {
|
154
|
+
"patterns": [
|
155
|
+
{
|
156
|
+
"include": "#type"
|
157
|
+
}
|
158
|
+
]
|
159
|
+
},
|
160
|
+
"3": {
|
161
|
+
"name": "entity.name.variable.cs"
|
162
|
+
}
|
163
|
+
}
|
164
|
+
}
|
165
|
+
]
|
166
|
+
}
|
167
|
+
]
|
168
|
+
},
|
169
|
+
"variable": {
|
170
|
+
"patterns": [
|
171
|
+
{
|
172
|
+
"match": "\\s*\\b(var)\\s+(.*?)(?=(=|;))",
|
173
|
+
"captures": {
|
174
|
+
"1": {
|
175
|
+
"name": "keyword.other.var.cs"
|
176
|
+
},
|
177
|
+
"2": {
|
178
|
+
"name": "entity.name.variables.cs"
|
179
|
+
}
|
180
|
+
}
|
181
|
+
},
|
182
|
+
{
|
183
|
+
"match": "\\s*\\b(?!var|return|yield|throw)([\\w+<>*?,\\[\\]]+)\\s+([\\w]+)\\s*(?=(=(?!=)|;))",
|
184
|
+
"captures": {
|
185
|
+
"1": {
|
186
|
+
"patterns": [
|
187
|
+
{
|
188
|
+
"include": "#type"
|
189
|
+
}
|
190
|
+
]
|
191
|
+
},
|
192
|
+
"2": {
|
193
|
+
"name": "entity.name.variables.cs"
|
194
|
+
}
|
195
|
+
}
|
196
|
+
}
|
197
|
+
]
|
198
|
+
},
|
80
199
|
"block": {
|
81
200
|
"patterns": [
|
82
201
|
{
|
@@ -101,10 +220,31 @@
|
|
101
220
|
}
|
102
221
|
]
|
103
222
|
},
|
223
|
+
"returnType": {
|
224
|
+
"patterns": [
|
225
|
+
{
|
226
|
+
"match": "void",
|
227
|
+
"name": "storage.type.cs"
|
228
|
+
},
|
229
|
+
{
|
230
|
+
"include": "#type"
|
231
|
+
}
|
232
|
+
]
|
233
|
+
},
|
234
|
+
"type": {
|
235
|
+
"patterns": [
|
236
|
+
{
|
237
|
+
"include": "#builtinTypes"
|
238
|
+
},
|
239
|
+
{
|
240
|
+
"include": "#typeName"
|
241
|
+
}
|
242
|
+
]
|
243
|
+
},
|
104
244
|
"builtinTypes": {
|
105
245
|
"patterns": [
|
106
246
|
{
|
107
|
-
"match": "\\b(bool|byte|sbyte|char|decimal|double|enum|float|int|uint|long|ulong|short|ushort
|
247
|
+
"match": "\\b(bool|byte|sbyte|char|decimal|double|enum|float|int|uint|long|ulong|short|ushort)[ ]*(\\?|\\*)?\\b",
|
108
248
|
"name": "storage.value.type.cs",
|
109
249
|
"captures": {
|
110
250
|
"2": {
|
@@ -113,62 +253,236 @@
|
|
113
253
|
}
|
114
254
|
},
|
115
255
|
{
|
116
|
-
"match": "\\b(dynamic|object|string)
|
256
|
+
"match": "\\b(dynamic|object|string)[ ]*([*])?\\b",
|
117
257
|
"name": "storage.reference.type.cs",
|
118
258
|
"captures": {
|
119
259
|
"2": {
|
120
260
|
"name": "punctuation.storage.type.modifier.cs"
|
121
261
|
}
|
122
262
|
}
|
263
|
+
}
|
264
|
+
]
|
265
|
+
},
|
266
|
+
"typeName": {
|
267
|
+
"patterns": [
|
268
|
+
{
|
269
|
+
"begin": "\\b([a-zA-Z]+[\\w\\.]*)\\s*<",
|
270
|
+
"end": ">",
|
271
|
+
"captures": {
|
272
|
+
"1": {
|
273
|
+
"name": "entity.name.generic.class.cs"
|
274
|
+
}
|
275
|
+
},
|
276
|
+
"patterns": [
|
277
|
+
{
|
278
|
+
"match": ","
|
279
|
+
},
|
280
|
+
{
|
281
|
+
"match": "(\\w+([?*])?)",
|
282
|
+
"captures": {
|
283
|
+
"1": {
|
284
|
+
"name": "meta.generic.type.specifier.cs",
|
285
|
+
"patterns": [
|
286
|
+
{
|
287
|
+
"include": "#type"
|
288
|
+
}
|
289
|
+
]
|
290
|
+
}
|
291
|
+
}
|
292
|
+
}
|
293
|
+
]
|
294
|
+
},
|
295
|
+
{
|
296
|
+
"match": "\\b(I[A-Z]+[\\w\\.]*)\\s*(?:\\s*\\[\\s*\\])?\\*?\\b",
|
297
|
+
"captures": {
|
298
|
+
"1": {
|
299
|
+
"name": "entity.name.interface.class.cs"
|
300
|
+
}
|
301
|
+
}
|
123
302
|
},
|
124
303
|
{
|
125
|
-
"match": "\\b(
|
126
|
-
"
|
304
|
+
"match": "\\b([a-zA-Z]+[\\w\\.]*)\\s*(?:\\s*\\[\\s*\\])?\\*?\\b",
|
305
|
+
"captures": {
|
306
|
+
"1": {
|
307
|
+
"name": "entity.name.class.cs"
|
308
|
+
}
|
309
|
+
}
|
310
|
+
}
|
311
|
+
]
|
312
|
+
},
|
313
|
+
"generic-constraints": {
|
314
|
+
"name": "meta.generic.constraints.cs",
|
315
|
+
"begin": "(where)\\s+(\\w+([?*])?)\\s*:",
|
316
|
+
"end": "(?=where|{|$)",
|
317
|
+
"beginCaptures": {
|
318
|
+
"1": {
|
319
|
+
"name": "keyword.other.cs"
|
320
|
+
},
|
321
|
+
"2": {
|
322
|
+
"name": "meta.generic.type.specifier.cs",
|
323
|
+
"patterns": [
|
324
|
+
{
|
325
|
+
"include": "#type"
|
326
|
+
}
|
327
|
+
]
|
328
|
+
}
|
329
|
+
},
|
330
|
+
"patterns": [
|
331
|
+
{
|
332
|
+
"match": "\\b(class|struct)\\b",
|
333
|
+
"name": "keyword.other.cs"
|
334
|
+
},
|
335
|
+
{
|
336
|
+
"match": "(new)\\s*\\(\\s*\\)",
|
337
|
+
"captures": {
|
338
|
+
"1": {
|
339
|
+
"name": "keyword.other.cs"
|
340
|
+
}
|
341
|
+
}
|
342
|
+
},
|
343
|
+
{
|
344
|
+
"include": "#type"
|
345
|
+
},
|
346
|
+
{
|
347
|
+
"include": "#generic-constraints"
|
127
348
|
}
|
128
349
|
]
|
129
350
|
},
|
130
|
-
"
|
131
|
-
"begin": "(
|
351
|
+
"enum-declaration": {
|
352
|
+
"begin": "(?=(?:public|private|protected|internal)?(.*)?(?:enum)\\s+\\w+)",
|
132
353
|
"end": "}",
|
133
354
|
"endCaptures": {
|
134
355
|
"0": {
|
135
|
-
"name": "punctuation.section.
|
356
|
+
"name": "punctuation.section.enum.end.cs"
|
136
357
|
}
|
137
358
|
},
|
138
|
-
"name": "meta.class.cs",
|
139
359
|
"patterns": [
|
140
360
|
{
|
141
|
-
"
|
361
|
+
"match": "\\b(public|private|protected|internal|static)\\b",
|
362
|
+
"name": "storage.modifier.cs"
|
142
363
|
},
|
143
364
|
{
|
144
365
|
"include": "#comments"
|
145
366
|
},
|
146
367
|
{
|
147
|
-
"
|
368
|
+
"begin": "(enum)\\s+",
|
369
|
+
"end": "(?={)",
|
370
|
+
"name": "meta.enum.declaration.cs",
|
371
|
+
"beginCaptures": {
|
148
372
|
"1": {
|
149
|
-
"name": "
|
373
|
+
"name": "keyword.enum.cs"
|
374
|
+
}
|
375
|
+
},
|
376
|
+
"patterns": [
|
377
|
+
{
|
378
|
+
"match": "\\b([a-zA-Z]+\\w*)\\b",
|
379
|
+
"captures": {
|
380
|
+
"1": {
|
381
|
+
"name": "meta.class.enum.identifier.cs"
|
382
|
+
}
|
383
|
+
}
|
384
|
+
}
|
385
|
+
]
|
386
|
+
},
|
387
|
+
{
|
388
|
+
"begin": "{",
|
389
|
+
"beginCaptures": {
|
390
|
+
"0": {
|
391
|
+
"name": "punctuation.section.enum.begin.cs"
|
392
|
+
}
|
393
|
+
},
|
394
|
+
"end": "(?=})",
|
395
|
+
"patterns": [
|
396
|
+
{
|
397
|
+
"include": "#comments"
|
150
398
|
},
|
151
|
-
|
152
|
-
"
|
399
|
+
{
|
400
|
+
"match": ","
|
401
|
+
},
|
402
|
+
{
|
403
|
+
"include": "#attribute"
|
404
|
+
},
|
405
|
+
{
|
406
|
+
"begin": "\\b([a-zA-Z]+\\w*)\\b\\s*",
|
407
|
+
"beginCaptures": {
|
408
|
+
"1": {
|
409
|
+
"name": "entity.name.enum.cs"
|
410
|
+
}
|
411
|
+
},
|
412
|
+
"end": "(?=,|})",
|
413
|
+
"patterns": [
|
414
|
+
{
|
415
|
+
"include": "#comments"
|
416
|
+
},
|
417
|
+
{
|
418
|
+
"begin": "\\s*=\\s*",
|
419
|
+
"end": "(?=,|})",
|
420
|
+
"patterns": [
|
421
|
+
{
|
422
|
+
"include": "#comments"
|
423
|
+
},
|
424
|
+
{
|
425
|
+
"include": "#constants"
|
426
|
+
}
|
427
|
+
]
|
428
|
+
}
|
429
|
+
]
|
430
|
+
}
|
431
|
+
]
|
432
|
+
}
|
433
|
+
]
|
434
|
+
},
|
435
|
+
"type-declaration": {
|
436
|
+
"begin": "(?=(?:public|private|protected|internal|static|partial)?(.*)?(?:class|struct|interface)\\s+\\w+)",
|
437
|
+
"end": "}",
|
438
|
+
"endCaptures": {
|
439
|
+
"0": {
|
440
|
+
"name": "punctuation.section.class.end.cs"
|
441
|
+
}
|
442
|
+
},
|
443
|
+
"patterns": [
|
444
|
+
{
|
445
|
+
"match": "\\b(public|private|protected|internal|static|partial)\\b",
|
446
|
+
"name": "storage.modifier.cs"
|
447
|
+
},
|
448
|
+
{
|
449
|
+
"include": "#comments"
|
450
|
+
},
|
451
|
+
{
|
452
|
+
"begin": "(class|struct|interface)\\s+",
|
453
|
+
"end": "(?={|:|$|where)",
|
454
|
+
"name": "meta.type.declaration.cs",
|
455
|
+
"beginCaptures": {
|
456
|
+
"1": {
|
457
|
+
"name": "keyword.class.cs"
|
153
458
|
}
|
154
459
|
},
|
155
|
-
"
|
156
|
-
|
460
|
+
"patterns": [
|
461
|
+
{
|
462
|
+
"include": "#typeName"
|
463
|
+
}
|
464
|
+
]
|
157
465
|
},
|
158
466
|
{
|
159
467
|
"begin": ":",
|
160
|
-
"end": "(?={)",
|
468
|
+
"end": "(?={|where)",
|
161
469
|
"patterns": [
|
162
470
|
{
|
471
|
+
"include": "#typeName"
|
472
|
+
},
|
473
|
+
{
|
474
|
+
"match": "([\\w<>]+)\\s*",
|
163
475
|
"captures": {
|
164
476
|
"1": {
|
165
477
|
"name": "storage.type.cs"
|
166
478
|
}
|
167
|
-
}
|
168
|
-
"match": "\\s*,?([A-Za-z_]\\w*)\\b"
|
479
|
+
}
|
169
480
|
}
|
170
481
|
]
|
171
482
|
},
|
483
|
+
{
|
484
|
+
"include": "#generic-constraints"
|
485
|
+
},
|
172
486
|
{
|
173
487
|
"begin": "{",
|
174
488
|
"beginCaptures": {
|
@@ -177,20 +491,99 @@
|
|
177
491
|
}
|
178
492
|
},
|
179
493
|
"end": "(?=})",
|
180
|
-
"name": "meta.class.body.cs",
|
181
494
|
"patterns": [
|
182
495
|
{
|
183
|
-
"include": "#
|
184
|
-
},
|
185
|
-
{
|
186
|
-
"include": "#code"
|
496
|
+
"include": "#type-body"
|
187
497
|
}
|
188
498
|
]
|
189
499
|
}
|
190
500
|
]
|
191
501
|
},
|
502
|
+
"type-body": {
|
503
|
+
"patterns": [
|
504
|
+
{
|
505
|
+
"include": "#attribute"
|
506
|
+
},
|
507
|
+
{
|
508
|
+
"include": "#enum-declaration"
|
509
|
+
},
|
510
|
+
{
|
511
|
+
"include": "#type-declaration"
|
512
|
+
},
|
513
|
+
{
|
514
|
+
"include": "#field-declaration"
|
515
|
+
},
|
516
|
+
{
|
517
|
+
"include": "#property-declaration"
|
518
|
+
},
|
519
|
+
{
|
520
|
+
"include": "#method"
|
521
|
+
},
|
522
|
+
{
|
523
|
+
"include": "#code"
|
524
|
+
}
|
525
|
+
]
|
526
|
+
},
|
527
|
+
"typeOperator": {
|
528
|
+
"patterns": [
|
529
|
+
{
|
530
|
+
"include": "#keywordTypeOperator"
|
531
|
+
},
|
532
|
+
{
|
533
|
+
"include": "#castTypeOperator"
|
534
|
+
},
|
535
|
+
{
|
536
|
+
"include": "#functionTypeOperator"
|
537
|
+
}
|
538
|
+
]
|
539
|
+
},
|
540
|
+
"castTypeOperator": {
|
541
|
+
"match": "\\((\\w+[?*,<>\\[\\]]*)\\)",
|
542
|
+
"captures": {
|
543
|
+
"1": {
|
544
|
+
"patterns": [
|
545
|
+
{
|
546
|
+
"include": "#type"
|
547
|
+
}
|
548
|
+
]
|
549
|
+
}
|
550
|
+
}
|
551
|
+
},
|
552
|
+
"functionTypeOperator": {
|
553
|
+
"match": "\\b(typeof|sizeof)\\s*\\((\\w+[?*,<>\\[\\]]*)\\)",
|
554
|
+
"captures": {
|
555
|
+
"1": {
|
556
|
+
"name": "keyword.operator.cs"
|
557
|
+
},
|
558
|
+
"2": {
|
559
|
+
"patterns": [
|
560
|
+
{
|
561
|
+
"include": "#type"
|
562
|
+
}
|
563
|
+
]
|
564
|
+
}
|
565
|
+
}
|
566
|
+
},
|
567
|
+
"keywordTypeOperator": {
|
568
|
+
"match": "\\b(is|as|new)\\s+(\\w+[?*,<>\\[\\]]*)",
|
569
|
+
"captures": {
|
570
|
+
"1": {
|
571
|
+
"name": "keyword.operator.cs"
|
572
|
+
},
|
573
|
+
"2": {
|
574
|
+
"patterns": [
|
575
|
+
{
|
576
|
+
"include": "#type"
|
577
|
+
}
|
578
|
+
]
|
579
|
+
}
|
580
|
+
}
|
581
|
+
},
|
192
582
|
"code": {
|
193
583
|
"patterns": [
|
584
|
+
{
|
585
|
+
"include": "#typeOperator"
|
586
|
+
},
|
194
587
|
{
|
195
588
|
"include": "#block"
|
196
589
|
},
|
@@ -198,13 +591,13 @@
|
|
198
591
|
"include": "#comments"
|
199
592
|
},
|
200
593
|
{
|
201
|
-
"include": "#
|
594
|
+
"include": "#enum-declaration"
|
202
595
|
},
|
203
596
|
{
|
204
|
-
"include": "#
|
597
|
+
"include": "#type-declaration"
|
205
598
|
},
|
206
599
|
{
|
207
|
-
"include": "#
|
600
|
+
"include": "#constants"
|
208
601
|
},
|
209
602
|
{
|
210
603
|
"include": "#keywords"
|
@@ -216,10 +609,10 @@
|
|
216
609
|
"include": "#method-call"
|
217
610
|
},
|
218
611
|
{
|
219
|
-
"include": "#
|
612
|
+
"include": "#variable"
|
220
613
|
},
|
221
614
|
{
|
222
|
-
"include": "#
|
615
|
+
"include": "#builtinTypes"
|
223
616
|
}
|
224
617
|
]
|
225
618
|
},
|
@@ -247,7 +640,7 @@
|
|
247
640
|
"name": "punctuation.definition.comment.cs"
|
248
641
|
}
|
249
642
|
},
|
250
|
-
"end": "
|
643
|
+
"end": "\\*/",
|
251
644
|
"name": "comment.block.cs"
|
252
645
|
},
|
253
646
|
{
|
@@ -262,15 +655,109 @@
|
|
262
655
|
}
|
263
656
|
]
|
264
657
|
},
|
265
|
-
"
|
658
|
+
"string-interpolated": {
|
266
659
|
"patterns": [
|
267
660
|
{
|
268
|
-
"
|
269
|
-
"
|
661
|
+
"begin": "\\$\"",
|
662
|
+
"end": "\"|$",
|
663
|
+
"beginCaptures": {
|
664
|
+
"0": {
|
665
|
+
"name": "punctuation.definition.string.begin.cs"
|
666
|
+
}
|
667
|
+
},
|
668
|
+
"endCaptures": {
|
669
|
+
"0": {
|
670
|
+
"name": "punctuation.definition.string.end.cs"
|
671
|
+
}
|
672
|
+
},
|
673
|
+
"patterns": [
|
674
|
+
{
|
675
|
+
"begin": "([^{}]+?)(?={|\"|$)",
|
676
|
+
"end": "(?={|\"|$)",
|
677
|
+
"beginCaptures": {
|
678
|
+
"1": {
|
679
|
+
"name": "string.quoted.double.cs"
|
680
|
+
}
|
681
|
+
}
|
682
|
+
},
|
683
|
+
{
|
684
|
+
"begin": "{",
|
685
|
+
"end": "}",
|
686
|
+
"name": "meta.interpolated.expression.cs",
|
687
|
+
"patterns": [
|
688
|
+
{
|
689
|
+
"include": "#code"
|
690
|
+
}
|
691
|
+
]
|
692
|
+
},
|
693
|
+
{
|
694
|
+
"begin": "([^{}]+?)(?={|\"|$)",
|
695
|
+
"end": "(?={|\"|$)",
|
696
|
+
"beginCaptures": {
|
697
|
+
"1": {
|
698
|
+
"name": "string.quoted.double.cs"
|
699
|
+
}
|
700
|
+
}
|
701
|
+
}
|
702
|
+
]
|
703
|
+
}
|
704
|
+
]
|
705
|
+
},
|
706
|
+
"string-interpolated-verbatim": {
|
707
|
+
"patterns": [
|
708
|
+
{
|
709
|
+
"begin": "\\$@\"",
|
710
|
+
"end": "\"",
|
711
|
+
"beginCaptures": {
|
712
|
+
"0": {
|
713
|
+
"name": "punctuation.definition.string.begin.cs"
|
714
|
+
}
|
715
|
+
},
|
716
|
+
"endCaptures": {
|
717
|
+
"0": {
|
718
|
+
"name": "punctuation.definition.string.end.cs"
|
719
|
+
}
|
720
|
+
},
|
721
|
+
"patterns": [
|
722
|
+
{
|
723
|
+
"begin": "([^{}]+?)(?={|\"|$)",
|
724
|
+
"end": "(?={|\"|$)",
|
725
|
+
"beginCaptures": {
|
726
|
+
"1": {
|
727
|
+
"name": "string.quoted.double.literal.cs"
|
728
|
+
}
|
729
|
+
}
|
730
|
+
},
|
731
|
+
{
|
732
|
+
"begin": "{",
|
733
|
+
"end": "}",
|
734
|
+
"name": "meta.interpolated.expression.cs",
|
735
|
+
"patterns": [
|
736
|
+
{
|
737
|
+
"include": "#code"
|
738
|
+
}
|
739
|
+
]
|
740
|
+
},
|
741
|
+
{
|
742
|
+
"begin": "([^{}]+?)(?={|\"|$)",
|
743
|
+
"end": "(?={|\"|$)",
|
744
|
+
"beginCaptures": {
|
745
|
+
"1": {
|
746
|
+
"name": "string.quoted.double.literal.cs"
|
747
|
+
}
|
748
|
+
}
|
749
|
+
}
|
750
|
+
]
|
751
|
+
}
|
752
|
+
]
|
753
|
+
},
|
754
|
+
"string": {
|
755
|
+
"patterns": [
|
756
|
+
{
|
757
|
+
"include": "#string-interpolated-verbatim"
|
270
758
|
},
|
271
759
|
{
|
272
|
-
"
|
273
|
-
"name": "constant.numeric.cs"
|
760
|
+
"include": "#string-interpolated"
|
274
761
|
},
|
275
762
|
{
|
276
763
|
"captures": {
|
@@ -325,6 +812,21 @@
|
|
325
812
|
}
|
326
813
|
]
|
327
814
|
},
|
815
|
+
"constants": {
|
816
|
+
"patterns": [
|
817
|
+
{
|
818
|
+
"match": "\\b(true|false|null|this|base)\\b",
|
819
|
+
"name": "constant.language.cs"
|
820
|
+
},
|
821
|
+
{
|
822
|
+
"match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(?i:f|d|m|u|l|ul|lu)?\\b",
|
823
|
+
"name": "constant.numeric.cs"
|
824
|
+
},
|
825
|
+
{
|
826
|
+
"include": "#string"
|
827
|
+
}
|
828
|
+
]
|
829
|
+
},
|
328
830
|
"keywords": {
|
329
831
|
"patterns": [
|
330
832
|
{
|
@@ -336,44 +838,71 @@
|
|
336
838
|
"name": "keyword.linq.cs"
|
337
839
|
},
|
338
840
|
{
|
339
|
-
"match": "\\b(
|
841
|
+
"match": "\\b(using|checked|unchecked|override|readonly|stackalloc|nameof)\\b",
|
340
842
|
"name": "keyword.operator.cs"
|
341
843
|
},
|
342
844
|
{
|
343
|
-
"match": "\\b(event|delegate|fixed|add|remove|set|get|value|alias|global)\\b",
|
845
|
+
"match": "\\b(event|delegate|fixed|add|remove|set|get|value|alias|global|extern)\\b",
|
344
846
|
"name": "keyword.other.cs"
|
847
|
+
}
|
848
|
+
]
|
849
|
+
},
|
850
|
+
"attribute": {
|
851
|
+
"begin": "\\[",
|
852
|
+
"end": "\\]",
|
853
|
+
"name": "meta.annotation.cs",
|
854
|
+
"patterns": [
|
855
|
+
{
|
856
|
+
"include": "#constants"
|
345
857
|
},
|
346
858
|
{
|
347
|
-
"
|
348
|
-
"name": "storage.type.var.cs"
|
859
|
+
"include": "#preprocessor"
|
349
860
|
},
|
350
861
|
{
|
351
|
-
"
|
352
|
-
|
862
|
+
"include": "#builtinTypes"
|
863
|
+
},
|
864
|
+
{
|
865
|
+
"include": "#comments"
|
353
866
|
}
|
354
867
|
]
|
355
868
|
},
|
356
|
-
"
|
869
|
+
"property-declaration": {
|
870
|
+
"begin": "\\s*(?!.*\\b(?:class|interface|struct)\\b)((?:\\w+\\s+)*?)(?!(?:private|public|internal|protected|static|new|virtual|override))(\\w.+?)\\s+(\\w+)\\s*(?={|$)",
|
871
|
+
"end": "}|;|$",
|
872
|
+
"beginCaptures": {
|
873
|
+
"1": {
|
874
|
+
"match": "\\b(private|public|internal|protected|static|new|virtual|override)\\b",
|
875
|
+
"name": "storage.modifier.cs"
|
876
|
+
},
|
877
|
+
"2": {
|
878
|
+
"patterns": [
|
879
|
+
{
|
880
|
+
"include": "#type"
|
881
|
+
}
|
882
|
+
]
|
883
|
+
},
|
884
|
+
"3": {
|
885
|
+
"name": "entity.name.function.cs"
|
886
|
+
}
|
887
|
+
},
|
888
|
+
"name": "meta.property.cs",
|
357
889
|
"patterns": [
|
358
890
|
{
|
359
|
-
"
|
360
|
-
|
361
|
-
|
891
|
+
"include": "#block"
|
892
|
+
},
|
893
|
+
{
|
894
|
+
"begin": "=",
|
895
|
+
"end": "(?=;)",
|
362
896
|
"patterns": [
|
363
897
|
{
|
364
|
-
"include": "#
|
365
|
-
},
|
366
|
-
{
|
367
|
-
"include": "#preprocessor"
|
368
|
-
},
|
369
|
-
{
|
370
|
-
"include": "#builtinTypes"
|
371
|
-
},
|
372
|
-
{
|
373
|
-
"include": "#comments"
|
898
|
+
"include": "#code"
|
374
899
|
}
|
375
900
|
]
|
376
|
-
}
|
901
|
+
}
|
902
|
+
]
|
903
|
+
},
|
904
|
+
"method": {
|
905
|
+
"patterns": [
|
377
906
|
{
|
378
907
|
"begin": "(?=\\bnew\\s+)(?=[\\w<].*\\s+)(?=[^=]+\\()",
|
379
908
|
"end": "(?={|;)",
|
@@ -385,8 +914,22 @@
|
|
385
914
|
]
|
386
915
|
},
|
387
916
|
{
|
388
|
-
"
|
389
|
-
"
|
917
|
+
"match": "\\b(internal|public|protected|private|static|new|abstract|virtual|override|implicit|explicit|operator|async|partial)\\b",
|
918
|
+
"name": "storage.modifier.cs"
|
919
|
+
},
|
920
|
+
{
|
921
|
+
"begin": "(void|[\\w<>.?*\\[\\],]+)\\s*(?=.*)",
|
922
|
+
"beginCaptures": {
|
923
|
+
"1": {
|
924
|
+
"name": "meta.method.return-type.cs",
|
925
|
+
"patterns": [
|
926
|
+
{
|
927
|
+
"include": "#returnType"
|
928
|
+
}
|
929
|
+
]
|
930
|
+
}
|
931
|
+
},
|
932
|
+
"end": "[};]",
|
390
933
|
"endCaptures": {
|
391
934
|
"1": {
|
392
935
|
"name": "punctuation.section.method.end.cs"
|
@@ -395,21 +938,47 @@
|
|
395
938
|
"name": "meta.method.cs",
|
396
939
|
"patterns": [
|
397
940
|
{
|
398
|
-
"
|
399
|
-
},
|
400
|
-
{
|
401
|
-
"include": "#builtinTypes"
|
402
|
-
},
|
403
|
-
{
|
404
|
-
"begin": "([\\w.]+)\\s*\\(",
|
941
|
+
"begin": "([\\w]+)\\s*(<[\\w<>\\s,`?]*>)?\\s*(\\()",
|
405
942
|
"beginCaptures": {
|
406
943
|
"1": {
|
407
|
-
"name": "entity.name.function.cs"
|
944
|
+
"name": "entity.name.function.declaration.cs"
|
945
|
+
},
|
946
|
+
"2": {
|
947
|
+
"name": "meta.generic.method.identifier",
|
948
|
+
"patterns": [
|
949
|
+
{
|
950
|
+
"match": ","
|
951
|
+
},
|
952
|
+
{
|
953
|
+
"match": "(\\w+)",
|
954
|
+
"captures": {
|
955
|
+
"1": {
|
956
|
+
"name": "meta.generic.type.specifier.cs",
|
957
|
+
"patterns": [
|
958
|
+
{
|
959
|
+
"include": "#type"
|
960
|
+
}
|
961
|
+
]
|
962
|
+
}
|
963
|
+
}
|
964
|
+
}
|
965
|
+
]
|
966
|
+
},
|
967
|
+
"3": {
|
968
|
+
"name": "punctuation.definition.method-parameters.begin.cs"
|
408
969
|
}
|
409
970
|
},
|
410
971
|
"end": "\\)",
|
972
|
+
"endCaptures": {
|
973
|
+
"0": {
|
974
|
+
"name": "punctuation.definition.method-parameters.end.cs"
|
975
|
+
}
|
976
|
+
},
|
411
977
|
"name": "meta.method.identifier.cs",
|
412
978
|
"patterns": [
|
979
|
+
{
|
980
|
+
"include": "#attribute"
|
981
|
+
},
|
413
982
|
{
|
414
983
|
"include": "#parameters"
|
415
984
|
},
|
@@ -418,21 +987,11 @@
|
|
418
987
|
},
|
419
988
|
{
|
420
989
|
"include": "#comments"
|
421
|
-
},
|
422
|
-
{
|
423
|
-
"include": "#builtinTypes"
|
424
990
|
}
|
425
991
|
]
|
426
992
|
},
|
427
993
|
{
|
428
|
-
"
|
429
|
-
"end": "(?=[\\w.]+\\s*\\()",
|
430
|
-
"name": "meta.method.return-type.cs",
|
431
|
-
"patterns": [
|
432
|
-
{
|
433
|
-
"include": "#builtinTypes"
|
434
|
-
}
|
435
|
-
]
|
994
|
+
"include": "#generic-constraints"
|
436
995
|
},
|
437
996
|
{
|
438
997
|
"begin": ":\\s*(this|base)\\s*\\(",
|
@@ -466,50 +1025,15 @@
|
|
466
1025
|
"include": "#code"
|
467
1026
|
}
|
468
1027
|
]
|
469
|
-
}
|
470
|
-
]
|
471
|
-
},
|
472
|
-
{
|
473
|
-
"begin": "(?!new)(?=[\\w<].*\\s+)(?=[^=]+\\{)",
|
474
|
-
"end": "}",
|
475
|
-
"endCaptures": {
|
476
|
-
"0": {
|
477
|
-
"name": "punctuation.section.property.end.cs"
|
478
|
-
}
|
479
|
-
},
|
480
|
-
"name": "meta.property.cs",
|
481
|
-
"patterns": [
|
482
|
-
{
|
483
|
-
"include": "#storage-modifiers"
|
484
|
-
},
|
485
|
-
{
|
486
|
-
"begin": "([\\w.]+)\\s*(?={)",
|
487
|
-
"captures": {
|
488
|
-
"1": {
|
489
|
-
"name": "entity.name.function.cs"
|
490
|
-
}
|
491
|
-
},
|
492
|
-
"end": "(?={)",
|
493
|
-
"name": "meta.method.identifier.cs"
|
494
|
-
},
|
495
|
-
{
|
496
|
-
"begin": "(?=\\w.*\\s+[\\w.]+\\s*\\{)",
|
497
|
-
"end": "(?=[\\w.]+\\s*\\{)",
|
498
|
-
"name": "meta.method.return-type.cs",
|
499
|
-
"patterns": [
|
500
|
-
{
|
501
|
-
"include": "#builtinTypes"
|
502
|
-
}
|
503
|
-
]
|
504
1028
|
},
|
505
1029
|
{
|
506
|
-
"begin": "
|
1030
|
+
"begin": "=>",
|
507
1031
|
"beginCaptures": {
|
508
1032
|
"0": {
|
509
|
-
"name": "punctuation.section.
|
1033
|
+
"name": "punctuation.section.method.begin.cs"
|
510
1034
|
}
|
511
1035
|
},
|
512
|
-
"end": "(
|
1036
|
+
"end": "(?=;)",
|
513
1037
|
"name": "meta.method.body.cs",
|
514
1038
|
"patterns": [
|
515
1039
|
{
|
@@ -541,7 +1065,7 @@
|
|
541
1065
|
"patterns": [
|
542
1066
|
{
|
543
1067
|
"match": ",",
|
544
|
-
"name": "punctuation.definition.
|
1068
|
+
"name": "punctuation.definition.separator.parameter.cs"
|
545
1069
|
},
|
546
1070
|
{
|
547
1071
|
"include": "#code"
|
@@ -549,13 +1073,18 @@
|
|
549
1073
|
]
|
550
1074
|
},
|
551
1075
|
"parameters": {
|
552
|
-
"
|
1076
|
+
"name": "meta.parameters.cs",
|
1077
|
+
"begin": "\\b(ref|params|out)?\\s*\\b(\\w+(?:\\s*<.*?>)?(?:\\s*\\*)*(?:\\s*\\?)?(?:\\s*\\[.*?\\])?)\\s+(@?\\w+)\\s*(=)?",
|
553
1078
|
"beginCaptures": {
|
554
1079
|
"1": {
|
555
|
-
"name": "storage.
|
1080
|
+
"name": "storage.modifier.cs"
|
556
1081
|
},
|
557
1082
|
"2": {
|
558
|
-
"
|
1083
|
+
"patterns": [
|
1084
|
+
{
|
1085
|
+
"include": "#type"
|
1086
|
+
}
|
1087
|
+
]
|
559
1088
|
},
|
560
1089
|
"3": {
|
561
1090
|
"name": "variable.parameter.function.cs"
|
@@ -597,10 +1126,6 @@
|
|
597
1126
|
"name": "meta.preprocessor.cs"
|
598
1127
|
}
|
599
1128
|
]
|
600
|
-
},
|
601
|
-
"storage-modifiers": {
|
602
|
-
"match": "\\b(event|delegate|internal|public|protected|private|static|const|new|sealed|abstract|virtual|override|extern|unsafe|readonly|volatile|implicit|explicit|operator|async|partial|alias)\\b",
|
603
|
-
"name": "storage.modifier.cs"
|
604
1129
|
}
|
605
1130
|
}
|
606
1131
|
}
|