github-linguist 5.0.0 → 5.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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}
|
351
|
+
"match": "(?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(->|→)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))"
|
361
352
|
},
|
362
353
|
{
|
363
354
|
"name": "keyword.other.big-arrow.haskell",
|
364
|
-
"match": "(?<![\\p{S}\\p{P}
|
355
|
+
"match": "(?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(=>|⇒)(?!(?:[\\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}
|
911
|
+
"match": "((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\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
|
}
|