Skip to content

Commit e0c6e25

Browse files
committed
Use last version of TextMate grammar for ts and js
1 parent 81e2d5d commit e0c6e25

File tree

3 files changed

+3645
-3332
lines changed

3 files changed

+3645
-3332
lines changed

eclipse/jsdt/ts.eclipse.ide.jsdt.ui/syntaxes/JavaScript.tmLanguage.json

Lines changed: 49 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@
9898
"patterns": [
9999
{
100100
"name": "meta.var-single-variable.expr.js",
101-
"begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n (=\\s*(\n (async\\s+) |\n (function\\s*[(<]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) |\n ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))\n ) |\n (:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )))\n )\n)",
101+
"begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n (=\\s*(\n (async\\s+) |\n (function\\s*[(<]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) |\n ([(]\\s*(([)]\\s*:)|([_$[:alpha:]][_$[:alnum:]]*\\s*:)|(\\.\\.\\.) )) |\n ([<]\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s*[^=>])|(\\s*[,]))) |\n ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))\n ) |\n (:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )))\n )\n)",
102102
"beginCaptures": {
103103
"1": {
104104
"name": "entity.name.function.js"
@@ -614,7 +614,7 @@
614614
},
615615
"namespace-declaration": {
616616
"name": "meta.namespace.declaration.js",
617-
"begin": "(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(namespace|module)\\s+",
617+
"begin": "(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`])",
618618
"beginCaptures": {
619619
"1": {
620620
"name": "keyword.control.export.js"
@@ -1019,6 +1019,12 @@
10191019
{
10201020
"include": "#property-accessor"
10211021
},
1022+
{
1023+
"include": "#after-operator-block"
1024+
},
1025+
{
1026+
"include": "#decl-block"
1027+
},
10221028
{
10231029
"include": "#expression"
10241030
},
@@ -1126,7 +1132,7 @@
11261132
},
11271133
{
11281134
"name": "entity.name.function.js",
1129-
"match": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=(\\?\\s*)?\\s*\n (=\\s*(\n (async\\s+) |\n (function\\s*[(<]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) |\n ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))\n ) |\n (:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )))\n )\n)"
1135+
"match": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=(\\?\\s*)?\\s*\n (=\\s*(\n (async\\s+) |\n (function\\s*[(<]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) |\n ([(]\\s*(([)]\\s*:)|([_$[:alpha:]][_$[:alnum:]]*\\s*:)|(\\.\\.\\.) )) |\n ([<]\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s*[^=>])|(\\s*[,]))) |\n ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))\n ) |\n (:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )))\n )\n)"
11301136
},
11311137
{
11321138
"name": "variable.object.property.js",
@@ -1166,7 +1172,7 @@
11661172
"name": "keyword.generator.asterisk.js"
11671173
}
11681174
},
1169-
"end": "(?=\\}|;|,)|(?<=\\})",
1175+
"end": "(?=\\}|;|,|$)|(?<=\\})",
11701176
"patterns": [
11711177
{
11721178
"include": "#method-declaration-name"
@@ -1183,46 +1189,11 @@
11831189
{
11841190
"include": "#return-type"
11851191
},
1186-
{
1187-
"include": "#method-overload-declaration"
1188-
},
11891192
{
11901193
"include": "#decl-block"
11911194
}
11921195
]
11931196
},
1194-
"method-overload-declaration": {
1195-
"begin": "(?<!\\.|\\$)(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(?:\\b(?:(new)|(constructor))\\b(?!\\$|:))|(?:(\\*)\\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\\'[^']*\\')|(\\\"[^\"]*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))?\\s*[\\(\\<]))",
1196-
"beginCaptures": {
1197-
"1": {
1198-
"name": "storage.modifier.js"
1199-
},
1200-
"2": {
1201-
"name": "storage.modifier.js"
1202-
},
1203-
"3": {
1204-
"name": "storage.modifier.async.js"
1205-
},
1206-
"4": {
1207-
"name": "storage.type.property.js"
1208-
},
1209-
"5": {
1210-
"name": "keyword.operator.new.js"
1211-
},
1212-
"6": {
1213-
"name": "storage.type.js"
1214-
},
1215-
"7": {
1216-
"name": "keyword.generator.asterisk.js"
1217-
}
1218-
},
1219-
"end": "(?=\\(|\\<)",
1220-
"patterns": [
1221-
{
1222-
"include": "#method-declaration-name"
1223-
}
1224-
]
1225-
},
12261197
"method-declaration-name": {
12271198
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'[^']*\\')|(\\\"[^\"]*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])",
12281199
"end": "(?=\\(|\\<)",
@@ -1275,7 +1246,7 @@
12751246
"include": "#return-type"
12761247
},
12771248
{
1278-
"include": "#method-overload-declaration"
1249+
"include": "#object-literal-method-overload-declaration"
12791250
},
12801251
{
12811252
"include": "#decl-block"
@@ -1383,7 +1354,7 @@
13831354
"name": "entity.name.function.js"
13841355
}
13851356
},
1386-
"end": "(?=;|\\})|(?<=\\})",
1357+
"end": "(?=$|;|\\})|(?<=\\})",
13871358
"patterns": [
13881359
{
13891360
"include": "#comment"
@@ -1397,35 +1368,11 @@
13971368
{
13981369
"include": "#return-type"
13991370
},
1400-
{
1401-
"include": "#function-overload-declaration"
1402-
},
14031371
{
14041372
"include": "#decl-block"
14051373
}
14061374
]
14071375
},
1408-
"function-overload-declaration": {
1409-
"name": "meta.function.overload.js",
1410-
"match": "(?<!\\.|\\$)\\b(?:(export)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",
1411-
"captures": {
1412-
"1": {
1413-
"name": "keyword.control.export.js"
1414-
},
1415-
"2": {
1416-
"name": "storage.modifier.async.js"
1417-
},
1418-
"3": {
1419-
"name": "storage.type.function.js"
1420-
},
1421-
"4": {
1422-
"name": "keyword.generator.asterisk.js"
1423-
},
1424-
"5": {
1425-
"name": "entity.name.function.js"
1426-
}
1427-
}
1428-
},
14291376
"object-literal": {
14301377
"name": "meta.objectliteral.js",
14311378
"begin": "\\{",
@@ -1497,7 +1444,7 @@
14971444
}
14981445
},
14991446
{
1500-
"match": "(?x)(?:\\s*\\b(public|private|protected|readonly)\\s+)?(\\.\\.\\.)?\\s*(?<!=|:)([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\??)(?=\\s*\n (=\\s*(\n (async\\s+) |\n (function\\s*[(<]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) |\n ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))\n ) |\n (:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )))\n )\n)",
1447+
"match": "(?x)(?:\\s*\\b(public|private|protected|readonly)\\s+)?(\\.\\.\\.)?\\s*(?<!=|:)([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\??)(?=\\s*\n (=\\s*(\n (async\\s+) |\n (function\\s*[(<]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) |\n ([(]\\s*(([)]\\s*:)|([_$[:alpha:]][_$[:alnum:]]*\\s*:)|(\\.\\.\\.) )) |\n ([<]\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s*[^=>])|(\\s*[,]))) |\n ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))\n ) |\n (:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )))\n )\n)",
15011448
"captures": {
15021449
"1": {
15031450
"name": "storage.modifier.js"
@@ -2041,16 +1988,34 @@
20411988
]
20421989
},
20431990
"variable-initializer": {
2044-
"begin": "(?<!=|!)(=)(?!=)",
2045-
"beginCaptures": {
2046-
"1": {
2047-
"name": "keyword.operator.assignment.js"
2048-
}
2049-
},
2050-
"end": "(?=$|[,);}\\]])",
20511991
"patterns": [
20521992
{
2053-
"include": "#expression"
1993+
"begin": "(?<!=|!)(=)(?!=)(?=\\s*\\S)",
1994+
"beginCaptures": {
1995+
"1": {
1996+
"name": "keyword.operator.assignment.js"
1997+
}
1998+
},
1999+
"end": "(?=$|[,);}\\]])",
2000+
"patterns": [
2001+
{
2002+
"include": "#expression"
2003+
}
2004+
]
2005+
},
2006+
{
2007+
"begin": "(?<!=|!)(=)(?!=)",
2008+
"beginCaptures": {
2009+
"1": {
2010+
"name": "keyword.operator.assignment.js"
2011+
}
2012+
},
2013+
"end": "(?=[,);}\\]])|(?=^\\s*$)",
2014+
"patterns": [
2015+
{
2016+
"include": "#expression"
2017+
}
2018+
]
20542019
}
20552020
]
20562021
},
@@ -2397,7 +2362,7 @@
23972362
}
23982363
},
23992364
{
2400-
"match": "(?x)(?:(\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n (async\\s+)|(function\\s*[(<])|(function\\s+)|\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)|\n ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)))",
2365+
"match": "(?x)(?:(\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n (async\\s+)|(function\\s*[(<])|(function\\s+)|\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)|\n ([(]\\s*(([)]\\s*:)|([_$[:alpha:]][_$[:alnum:]]*\\s*:)|(\\.\\.\\.) )) |\n ([<]\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s*[^=>])|(\\s*[,]))) |\n ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)))",
24012366
"captures": {
24022367
"1": {
24032368
"name": "punctuation.accessor.js"
@@ -2465,7 +2430,7 @@
24652430
"name": "keyword.operator.new.js"
24662431
}
24672432
},
2468-
"end": "(?<=\\))|(?=[;),]|$|((?<!\\.|\\$)\\bnew\\b(?!\\$)))",
2433+
"end": "(?<=\\))|(?=[;),}]|$|((?<!\\.|\\$)\\bnew\\b(?!\\$)))",
24692434
"patterns": [
24702435
{
24712436
"include": "#paren-expression"
@@ -2516,7 +2481,7 @@
25162481
},
25172482
{
25182483
"name": "meta.object.member.js",
2519-
"begin": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*(\n (async\\s+)|(function\\s*[(<])|(function\\s+)|\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)|\n ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))))",
2484+
"begin": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*(\n (async\\s+)|(function\\s*[(<])|(function\\s+)|\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)|\n ([(]\\s*(([)]\\s*:)|([_$[:alpha:]][_$[:alnum:]]*\\s*:)|(\\.\\.\\.) )) |\n ([<]\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s*[^=>])|(\\s*[,]))) |\n ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))))",
25202485
"beginCaptures": {
25212486
"0": {
25222487
"name": "meta.object-literal.key.js"
@@ -2693,15 +2658,6 @@
26932658
},
26942659
"arrow-function": {
26952660
"patterns": [
2696-
{
2697-
"name": "meta.arrow.js",
2698-
"match": "(?<!\\.|\\$)(\\basync)(?=\\s*[<(])",
2699-
"captures": {
2700-
"1": {
2701-
"name": "storage.modifier.async.js"
2702-
}
2703-
}
2704-
},
27052661
{
27062662
"name": "meta.arrow.js",
27072663
"match": "(?:(?<!\\.|\\$)(\\basync)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)",
@@ -2716,7 +2672,12 @@
27162672
},
27172673
{
27182674
"name": "meta.arrow.js",
2719-
"begin": "(?x)\\s*(?=(<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)",
2675+
"begin": "(?x) (?:\n (?<!\\.|\\$)(\\basync)(?=\\s*[<(])\n) | (\\s*\n (?=\n # sure shot arrow functions even if => is on new line\n (\n [(]\\s*\n (\n ([)]\\s*:) | # ():\n ([_$[:alpha:]][_$[:alnum:]]*\\s*:) | # [(]param:\n (\\.\\.\\.) # [(]...\n )\n ) |\n (\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\n (\n (\\s+extends\\s*[^=>]) | # < typeparam extends \n (\\s*[,]) # < typeparam,\n )\n ) |\n # arrow function possible to detect only with => on same line\n (\n (<([^<>]|\\<[^<>]+\\>)+>\\s*)? # typeparameters\n \\(([^()]|\\([^()]*\\))*\\) # parameteres\n (\\s*:\\s*(.)*)? # return type\n \\s*=> # arrow operator\n )\n )\n)",
2676+
"beginCaptures": {
2677+
"1": {
2678+
"name": "storage.modifier.async.js"
2679+
}
2680+
},
27202681
"end": "(?==>)",
27212682
"patterns": [
27222683
{
@@ -3687,5 +3648,5 @@
36873648
]
36883649
}
36893650
},
3690-
"version": "https://github.com/Microsoft/TypeScript-TmLanguage/commit/3ee427b1527b890e3a56c1545b8ba1c39953fa36"
3651+
"version": "https://github.com/Microsoft/TypeScript-TmLanguage/commit/f97fcdbb2f80123605982ca63b9ba68bb837df87"
36913652
}

0 commit comments

Comments
 (0)