Skip to content

Commit 8610134

Browse files
committed
1 parent 377ed36 commit 8610134

9 files changed

+157
-69
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 44 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1002,7 +1002,7 @@ repository:
10021002
#object literals
10031003
after-operator-block-as-object-literal:
10041004
name: meta.objectliteral.ts
1005-
begin: (?<=[=(,\[?+!]|{{lookBehindAwait}}|{{lookBehindReturn}}|{{lookBehindYield}}|{{lookBehindThrow}}|{{lookBehindIn}}|{{lookBehindOf}}|{{lookBehindTypeof}}|&&|\|\||\*)\s*(\{)
1005+
begin: (?<!\+\+|--)(?<=[=(,\[?+!]|{{lookBehindAwait}}|{{lookBehindReturn}}|{{lookBehindYield}}|{{lookBehindThrow}}|{{lookBehindIn}}|{{lookBehindOf}}|{{lookBehindTypeof}}|&&|\|\||\*)\s*(\{)
10061006
beginCaptures:
10071007
'1': { name: punctuation.definition.block.ts }
10081008
end: \}
@@ -1154,7 +1154,7 @@ repository:
11541154
# If '<' is preceeded by 'return', 'throw', 'yield', or 'await', it's most likely a type assertion
11551155
# If '=', '(', ',', ':', or '>' are followed by a '<', it is also likely a type assertion as otherwise it would be a syntax error
11561156
# '<=' and '<<=' are cannot be type assertions, as they are assignment operators.
1157-
begin: (?:(?<={{lookBehindReturn}}|{{lookBehindThrow}}|{{lookBehindYield}}|{{lookBehindAwait}}|{{lookBehindDefault}}|[=(,:>*?\&\|\^]|[^_$[:alnum:]](?:\+\+|\-\-)|[^\+]\+|[^\-]\-))\s*(<)(?!<?\=)
1157+
begin: (?:(?<!\+\+|--)(?<={{lookBehindReturn}}|{{lookBehindThrow}}|{{lookBehindYield}}|{{lookBehindAwait}}|{{lookBehindDefault}}|[=(,:>*?\&\|\^]|[^_$[:alnum:]](?:\+\+|\-\-)|[^\+]\+|[^\-]\-))\s*(<)(?!<?\=)
11581158
beginCaptures:
11591159
'1': { name: meta.brace.angle.ts }
11601160
end: (\>)\s*
@@ -1341,11 +1341,13 @@ repository:
13411341
- name: support.class.builtin.ts
13421342
match: |-
13431343
(?x){{startOfIdentifier}}(Array|ArrayBuffer|Atomics|Boolean|DataView|Date|Float32Array|Float64Array|Function|Generator
1344-
|GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Promise|Proxy
1344+
|GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Proxy
13451345
|Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|TypedArray
13461346
|Uint8Array|Uint16Array|Uint32Array|Uint8ClampedArray|WeakMap|WeakSet)\b(?!\$)
13471347
- name: support.class.error.ts
13481348
match: '{{startOfIdentifier}}((Eval|Internal|Range|Reference|Syntax|Type|URI)?Error)\b(?!\$)'
1349+
- name: support.class.promise.ts
1350+
match: '{{startOfIdentifier}}(Promise)\b(?!\$)'
13491351
# known builtin function calls
13501352
- name: support.function.ts
13511353
match: |-
@@ -1598,6 +1600,8 @@ repository:
15981600
slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|
15991601
submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|
16001602
toDataURL|toggle|toString|values|write|writeln
1603+
) |
1604+
(all|catch|finally|race|reject|resolve|then
16011605
)
16021606
)(?=\s*\()
16031607
captures:
@@ -1606,6 +1610,7 @@ repository:
16061610
'3': { name: support.function.event-handler.ts }
16071611
'4': { name: support.function.ts }
16081612
'5': { name: support.function.dom.ts }
1613+
'6': { name: support.function.promise.ts }
16091614
16101615
identifiers:
16111616
patterns:
@@ -2029,77 +2034,82 @@ repository:
20292034
regex:
20302035
patterns:
20312036
- name: string.regexp.ts
2032-
begin: (?<=[=(:,\[?+!]|{{lookBehindReturn}}|{{lookBehindCase}}|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)+\])+\/(?![\/*])[gimuy]*(?!\s*[a-zA-Z0-9_$]))
2037+
begin: (?<!\+\+|--)(?<=[=(:,\[?+!]|{{lookBehindReturn}}|{{lookBehindCase}}|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)+\])+\/(?![\/*])[gimsuy]*(?!\s*[a-zA-Z0-9_$]))
20332038
beginCaptures:
2034-
'1': {name: punctuation.definition.string.begin.ts}
2035-
end: (/)([gimuy]*)
2039+
'1': { name: punctuation.definition.string.begin.ts }
2040+
end: (/)([gimsuy]*)
20362041
endCaptures:
2037-
'1': {name: punctuation.definition.string.end.ts}
2038-
'2': {name: keyword.other.ts}
2042+
'1': { name: punctuation.definition.string.end.ts }
2043+
'2': { name: keyword.other.ts}
20392044
patterns:
20402045
- include: '#regexp'
20412046
# Check if complete regexp syntax
20422047
- name: string.regexp.ts
2043-
begin: (?<![_$[:alnum:])\]])\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)+\])+\/(?![\/*])[gimuy]*(?!\s*[a-zA-Z0-9_$]))
2048+
begin: (?<![_$[:alnum:])\]]|\+\+|--)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)+\])+\/(?![\/*])[gimsuy]*(?!\s*[a-zA-Z0-9_$]))
20442049
beginCaptures:
2045-
'0': {name: punctuation.definition.string.begin.ts}
2046-
end: (/)([gimuy]*)
2050+
'0': { name: punctuation.definition.string.begin.ts }
2051+
end: (/)([gimsuy]*)
20472052
endCaptures:
2048-
'1': {name: punctuation.definition.string.end.ts}
2049-
'2': {name: keyword.other.ts}
2053+
'1': { name: punctuation.definition.string.end.ts }
2054+
'2': { name: keyword.other.ts }
20502055
patterns:
20512056
- include: '#regexp'
20522057

20532058
regexp:
20542059
patterns:
20552060
- name: keyword.control.anchor.regexp
20562061
match: \\[bB]|\^|\$
2057-
- name: keyword.other.back-reference.regexp
2058-
match: \\[1-9]\d*
2062+
- match: \\[1-9]\d*|\\k<([a-zA-Z_$][\w$]*)>
2063+
captures:
2064+
'0': { name: keyword.other.back-reference.regexp }
2065+
'1': { name: variable.other.regexp }
20592066
- name: keyword.operator.quantifier.regexp
20602067
match: '[?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\??'
20612068
- name: keyword.operator.or.regexp
20622069
match: \|
20632070
- name: meta.group.assertion.regexp
2064-
begin: (\()((\?=)|(\?!))
2071+
begin: (\()((\?=)|(\?!)|(\?<=)|(\?<!))
20652072
beginCaptures:
2066-
'1': {name: punctuation.definition.group.regexp}
2067-
'2': {name: punctuation.definition.group.assertion.regexp}
2068-
'3': {name: meta.assertion.look-ahead.regexp}
2069-
'4': {name: meta.assertion.negative-look-ahead.regexp}
2073+
'1': { name: punctuation.definition.group.regexp }
2074+
'2': { name: punctuation.definition.group.assertion.regexp }
2075+
'3': { name: meta.assertion.look-ahead.regexp }
2076+
'4': { name: meta.assertion.negative-look-ahead.regexp }
2077+
'5': { name: meta.assertion.look-behind.regexp }
2078+
'6': { name: meta.assertion.negative-look-behind.regexp }
20702079
end: (\))
20712080
endCaptures:
2072-
'1': {name: punctuation.definition.group.regexp}
2081+
'1': {name: punctuation.definition.group.regexp }
20732082
patterns:
20742083
- include: '#regexp'
20752084
- name: meta.group.regexp
2076-
begin: \((\?:)?
2085+
begin: \((?:(\?:)|(?:\?<([a-zA-Z_$][\w$]*)>))?
20772086
beginCaptures:
2078-
'0': {name: punctuation.definition.group.regexp}
2079-
'1': {name: punctuation.definition.group.no-capture.regexp}
2087+
'0': { name: punctuation.definition.group.regexp }
2088+
'1': { name: punctuation.definition.group.no-capture.regexp }
2089+
'2': { name: variable.other.regexp }
20802090
end: \)
20812091
endCaptures:
2082-
'0': {name: punctuation.definition.group.regexp}
2092+
'0': { name: punctuation.definition.group.regexp }
20832093
patterns:
20842094
- include: '#regexp'
20852095
- name: constant.other.character-class.set.regexp
20862096
begin: (\[)(\^)?
20872097
beginCaptures:
2088-
'1': {name: punctuation.definition.character-class.regexp}
2089-
'2': {name: keyword.operator.negation.regexp}
2098+
'1': { name: punctuation.definition.character-class.regexp }
2099+
'2': { name: keyword.operator.negation.regexp }
20902100
end: (\])
20912101
endCaptures:
2092-
'1': {name: punctuation.definition.character-class.regexp}
2102+
'1': {name: punctuation.definition.character-class.regexp }
20932103
patterns:
20942104
- name: constant.other.character-class.range.regexp
20952105
match: (?:.|(\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\c[A-Z])|(\\.))\-(?:[^\]\\]|(\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\c[A-Z])|(\\.))
20962106
captures:
2097-
'1': {name: constant.character.numeric.regexp}
2098-
'2': {name: constant.character.control.regexp}
2099-
'3': {name: constant.character.escape.backslash.regexp}
2100-
'4': {name: constant.character.numeric.regexp}
2101-
'5': {name: constant.character.control.regexp}
2102-
'6': {name: constant.character.escape.backslash.regexp}
2107+
'1': { name: constant.character.numeric.regexp }
2108+
'2': { name: constant.character.control.regexp }
2109+
'3': { name: constant.character.escape.backslash.regexp }
2110+
'4': { name: constant.character.numeric.regexp }
2111+
'5': { name: constant.character.control.regexp }
2112+
'6': { name: constant.character.escape.backslash.regexp }
21032113
- include: '#regex-character-class'
21042114
- include: '#regex-character-class'
21052115

TypeScript.tmLanguage

Lines changed: 51 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3129,7 +3129,7 @@
31293129
<key>name</key>
31303130
<string>meta.objectliteral.ts</string>
31313131
<key>begin</key>
3132-
<string>(?&lt;=[=(,\[?+!]|^await|[^\._$[:alnum:]]await|^return|[^\._$[:alnum:]]return|^yield|[^\._$[:alnum:]]yield|^throw|[^\._$[:alnum:]]throw|^in|[^\._$[:alnum:]]in|^of|[^\._$[:alnum:]]of|^typeof|[^\._$[:alnum:]]typeof|&amp;&amp;|\|\||\*)\s*(\{)</string>
3132+
<string>(?&lt;!\+\+|--)(?&lt;=[=(,\[?+!]|^await|[^\._$[:alnum:]]await|^return|[^\._$[:alnum:]]return|^yield|[^\._$[:alnum:]]yield|^throw|[^\._$[:alnum:]]throw|^in|[^\._$[:alnum:]]in|^of|[^\._$[:alnum:]]of|^typeof|[^\._$[:alnum:]]typeof|&amp;&amp;|\|\||\*)\s*(\{)</string>
31333133
<key>beginCaptures</key>
31343134
<dict>
31353135
<key>1</key>
@@ -3597,7 +3597,7 @@
35973597
<key>name</key>
35983598
<string>cast.expr.ts</string>
35993599
<key>begin</key>
3600-
<string>(?:(?&lt;=^return|[^\._$[:alnum:]]return|^throw|[^\._$[:alnum:]]throw|^yield|[^\._$[:alnum:]]yield|^await|[^\._$[:alnum:]]await|^default|[^\._$[:alnum:]]default|[=(,:&gt;*?\&amp;\|\^]|[^_$[:alnum:]](?:\+\+|\-\-)|[^\+]\+|[^\-]\-))\s*(&lt;)(?!&lt;?\=)</string>
3600+
<string>(?:(?&lt;!\+\+|--)(?&lt;=^return|[^\._$[:alnum:]]return|^throw|[^\._$[:alnum:]]throw|^yield|[^\._$[:alnum:]]yield|^await|[^\._$[:alnum:]]await|^default|[^\._$[:alnum:]]default|[=(,:&gt;*?\&amp;\|\^]|[^_$[:alnum:]](?:\+\+|\-\-)|[^\+]\+|[^\-]\-))\s*(&lt;)(?!&lt;?\=)</string>
36013601
<key>beginCaptures</key>
36023602
<dict>
36033603
<key>1</key>
@@ -4096,7 +4096,7 @@
40964096
<string>support.class.builtin.ts</string>
40974097
<key>match</key>
40984098
<string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(Array|ArrayBuffer|Atomics|Boolean|DataView|Date|Float32Array|Float64Array|Function|Generator
4099-
|GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Promise|Proxy
4099+
|GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Proxy
41004100
|Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|TypedArray
41014101
|Uint8Array|Uint16Array|Uint32Array|Uint8ClampedArray|WeakMap|WeakSet)\b(?!\$)</string>
41024102
</dict>
@@ -4106,6 +4106,12 @@
41064106
<key>match</key>
41074107
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))((Eval|Internal|Range|Reference|Syntax|Type|URI)?Error)\b(?!\$)</string>
41084108
</dict>
4109+
<dict>
4110+
<key>name</key>
4111+
<string>support.class.promise.ts</string>
4112+
<key>match</key>
4113+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(Promise)\b(?!\$)</string>
4114+
</dict>
41094115
<dict>
41104116
<key>name</key>
41114117
<string>support.function.ts</string>
@@ -4528,6 +4534,8 @@
45284534
slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|
45294535
submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|
45304536
toDataURL|toggle|toString|values|write|writeln
4537+
) |
4538+
(all|catch|finally|race|reject|resolve|then
45314539
)
45324540
)(?=\s*\()</string>
45334541
<key>captures</key>
@@ -4557,6 +4565,11 @@
45574565
<key>name</key>
45584566
<string>support.function.dom.ts</string>
45594567
</dict>
4568+
<key>6</key>
4569+
<dict>
4570+
<key>name</key>
4571+
<string>support.function.promise.ts</string>
4572+
</dict>
45604573
</dict>
45614574
</dict>
45624575
</array>
@@ -5719,7 +5732,7 @@
57195732
<key>name</key>
57205733
<string>string.regexp.ts</string>
57215734
<key>begin</key>
5722-
<string>(?&lt;=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=&gt;|&amp;&amp;|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)+\])+\/(?![\/*])[gimuy]*(?!\s*[a-zA-Z0-9_$]))</string>
5735+
<string>(?&lt;!\+\+|--)(?&lt;=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=&gt;|&amp;&amp;|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)+\])+\/(?![\/*])[gimsuy]*(?!\s*[a-zA-Z0-9_$]))</string>
57235736
<key>beginCaptures</key>
57245737
<dict>
57255738
<key>1</key>
@@ -5729,7 +5742,7 @@
57295742
</dict>
57305743
</dict>
57315744
<key>end</key>
5732-
<string>(/)([gimuy]*)</string>
5745+
<string>(/)([gimsuy]*)</string>
57335746
<key>endCaptures</key>
57345747
<dict>
57355748
<key>1</key>
@@ -5755,7 +5768,7 @@
57555768
<key>name</key>
57565769
<string>string.regexp.ts</string>
57575770
<key>begin</key>
5758-
<string>(?&lt;![_$[:alnum:])\]])\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)+\])+\/(?![\/*])[gimuy]*(?!\s*[a-zA-Z0-9_$]))</string>
5771+
<string>(?&lt;![_$[:alnum:])\]]|\+\+|--)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)+\])+\/(?![\/*])[gimsuy]*(?!\s*[a-zA-Z0-9_$]))</string>
57595772
<key>beginCaptures</key>
57605773
<dict>
57615774
<key>0</key>
@@ -5765,7 +5778,7 @@
57655778
</dict>
57665779
</dict>
57675780
<key>end</key>
5768-
<string>(/)([gimuy]*)</string>
5781+
<string>(/)([gimsuy]*)</string>
57695782
<key>endCaptures</key>
57705783
<dict>
57715784
<key>1</key>
@@ -5800,10 +5813,21 @@
58005813
<string>\\[bB]|\^|\$</string>
58015814
</dict>
58025815
<dict>
5803-
<key>name</key>
5804-
<string>keyword.other.back-reference.regexp</string>
58055816
<key>match</key>
5806-
<string>\\[1-9]\d*</string>
5817+
<string>\\[1-9]\d*|\\k&lt;([a-zA-Z_$][\w$]*)&gt;</string>
5818+
<key>captures</key>
5819+
<dict>
5820+
<key>0</key>
5821+
<dict>
5822+
<key>name</key>
5823+
<string>keyword.other.back-reference.regexp</string>
5824+
</dict>
5825+
<key>1</key>
5826+
<dict>
5827+
<key>name</key>
5828+
<string>variable.other.regexp</string>
5829+
</dict>
5830+
</dict>
58075831
</dict>
58085832
<dict>
58095833
<key>name</key>
@@ -5821,7 +5845,7 @@
58215845
<key>name</key>
58225846
<string>meta.group.assertion.regexp</string>
58235847
<key>begin</key>
5824-
<string>(\()((\?=)|(\?!))</string>
5848+
<string>(\()((\?=)|(\?!)|(\?&lt;=)|(\?&lt;!))</string>
58255849
<key>beginCaptures</key>
58265850
<dict>
58275851
<key>1</key>
@@ -5844,6 +5868,16 @@
58445868
<key>name</key>
58455869
<string>meta.assertion.negative-look-ahead.regexp</string>
58465870
</dict>
5871+
<key>5</key>
5872+
<dict>
5873+
<key>name</key>
5874+
<string>meta.assertion.look-behind.regexp</string>
5875+
</dict>
5876+
<key>6</key>
5877+
<dict>
5878+
<key>name</key>
5879+
<string>meta.assertion.negative-look-behind.regexp</string>
5880+
</dict>
58475881
</dict>
58485882
<key>end</key>
58495883
<string>(\))</string>
@@ -5867,7 +5901,7 @@
58675901
<key>name</key>
58685902
<string>meta.group.regexp</string>
58695903
<key>begin</key>
5870-
<string>\((\?:)?</string>
5904+
<string>\((?:(\?:)|(?:\?&lt;([a-zA-Z_$][\w$]*)&gt;))?</string>
58715905
<key>beginCaptures</key>
58725906
<dict>
58735907
<key>0</key>
@@ -5880,6 +5914,11 @@
58805914
<key>name</key>
58815915
<string>punctuation.definition.group.no-capture.regexp</string>
58825916
</dict>
5917+
<key>2</key>
5918+
<dict>
5919+
<key>name</key>
5920+
<string>variable.other.regexp</string>
5921+
</dict>
58835922
</dict>
58845923
<key>end</key>
58855924
<string>\)</string>

TypeScriptReact.YAML-tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ variables:
1616
jsxClosingTag: (</){{jsxTagName}}?\s*(>)
1717
jsxTagStart: (<){{jsxTagName}}(?=({{typeArguments}})?\s+(?!\?)|\/?>)
1818
jsxTagStartLookahead: (?={{jsxTagStart}})
19-
jsxLookBehindInExpression: (?<=[({\[,?=>:*]|&&|\|\||\?|{{lookBehindReturn}}|{{lookBehindDefault}}|^)\s*
19+
jsxLookBehindInExpression: (?<!\+\+|--)(?<=[({\[,?=>:*]|&&|\|\||\?|{{lookBehindReturn}}|{{lookBehindDefault}}|^)\s*
2020

2121
repository:
2222
# Additions:

0 commit comments

Comments
 (0)