Skip to content

Commit 078c5ff

Browse files
committed
Merge branch 'master' into multiLineArrowParameters
2 parents b83a38f + e375f75 commit 078c5ff

18 files changed

+567
-100
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 56 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ variables:
2626
lookBehindOf: '^of|{{nonPropertyLookBehind}}of'
2727
lookBehindTypeof: '^typeof|{{nonPropertyLookBehind}}typeof'
2828
lookBehindCase: '^case|{{nonPropertyLookBehind}}case'
29+
lookBehindImport: '^import|{{nonPropertyLookBehind}}import'
2930
matchingParenthesis: (\(([^\(\)]|(\([^\(\)]*\)))*\))
3031
matchingBraces: (\{([^\{\}]|(\{[^\{\}]*\}))*\})
3132
matchingBrackets: (\[([^\[\]]|(\[[^\[\]]*\]))*\])
@@ -35,7 +36,7 @@ variables:
3536
typeParamersStart: ([_$[:alpha:]]|{{matchingBraces}}|{{matchingParenthesis}}|{{matchingBrackets}})
3637
typeParameters: (<\s*{{typeParamersStart}}([^=<>]|=[^<]|\<\s*{{typeParamersStart}}([^=<>]|=[^<])*\>)*>\s*)
3738
# Identifier start | matching braces | matching parenthesis | matching square brackets | matching strings
38-
typeArgumentsStart: ({{typeParamersStart}}|(\'[^\']*\')|(\"[^\"]*\")|(\`[^\`]*\`))
39+
typeArgumentsStart: ({{identifier}}|{{matchingBraces}}|{{matchingParenthesis}}|{{matchingBrackets}}|(\'[^\']*\')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,]|=>|&(?!&)|\|(?!\|)))
3940
typeArgumentsInnerExpressionPart: '[^<>\(]|{{matchingParenthesis}}|(?<==)\>'
4041
typeArguments: '<\s*{{typeArgumentsStart}}({{typeArgumentsInnerExpressionPart}}|\<\s*{{typeArgumentsStart}}({{typeArgumentsInnerExpressionPart}})*(?!=)\>)*(?!=)>'
4142
functionCallLookup: \s*(\?\.\s*)?({{typeArguments}}\s*)?\(
@@ -875,6 +876,14 @@ repository:
875876
'2': { name: keyword.control.import.ts }
876877
end: (?=;|$|^)
877878
patterns:
879+
- include: '#comment'
880+
- include: '#string'
881+
- begin: (?<={{lookBehindImport}})(?!\s*["'])
882+
end: \bfrom\b
883+
endCaptures:
884+
'0': { name: keyword.control.from.ts }
885+
patterns:
886+
- include: '#import-export-declaration'
878887
- include: '#import-export-declaration'
879888

880889
export-declaration:
@@ -1012,7 +1021,7 @@ repository:
10121021
#object literals
10131022
after-operator-block-as-object-literal:
10141023
name: meta.objectliteral.ts
1015-
begin: (?<=[=(,\[?+!]|{{lookBehindAwait}}|{{lookBehindReturn}}|{{lookBehindYield}}|{{lookBehindThrow}}|{{lookBehindIn}}|{{lookBehindOf}}|{{lookBehindTypeof}}|&&|\|\||\*)\s*(\{)
1024+
begin: (?<!\+\+|--)(?<=[=(,\[?+!]|{{lookBehindAwait}}|{{lookBehindReturn}}|{{lookBehindYield}}|{{lookBehindThrow}}|{{lookBehindIn}}|{{lookBehindOf}}|{{lookBehindTypeof}}|&&|\|\||\*)\s*(\{)
10161025
beginCaptures:
10171026
'1': { name: punctuation.definition.block.ts }
10181027
end: \}
@@ -1199,7 +1208,7 @@ repository:
11991208
# If '<' is preceeded by 'return', 'throw', 'yield', or 'await', it's most likely a type assertion
12001209
# If '=', '(', ',', ':', or '>' are followed by a '<', it is also likely a type assertion as otherwise it would be a syntax error
12011210
# '<=' and '<<=' are cannot be type assertions, as they are assignment operators.
1202-
begin: (?:(?<={{lookBehindReturn}}|{{lookBehindThrow}}|{{lookBehindYield}}|{{lookBehindAwait}}|{{lookBehindDefault}}|[=(,:>*?\&\|\^]|[^_$[:alnum:]](?:\+\+|\-\-)|[^\+]\+|[^\-]\-))\s*(<)(?!<?\=)
1211+
begin: (?:(?<!\+\+|--)(?<={{lookBehindReturn}}|{{lookBehindThrow}}|{{lookBehindYield}}|{{lookBehindAwait}}|{{lookBehindDefault}}|[=(,:>*?\&\|\^]|[^_$[:alnum:]](?:\+\+|\-\-)|[^\+]\+|[^\-]\-))\s*(<)(?!<?\=)
12031212
beginCaptures:
12041213
'1': { name: meta.brace.angle.ts }
12051214
end: (\>)\s*
@@ -1386,11 +1395,13 @@ repository:
13861395
- name: support.class.builtin.ts
13871396
match: |-
13881397
(?x){{startOfIdentifier}}(Array|ArrayBuffer|Atomics|Boolean|DataView|Date|Float32Array|Float64Array|Function|Generator
1389-
|GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Promise|Proxy
1398+
|GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Proxy
13901399
|Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|TypedArray
13911400
|Uint8Array|Uint16Array|Uint32Array|Uint8ClampedArray|WeakMap|WeakSet)\b(?!\$)
13921401
- name: support.class.error.ts
13931402
match: '{{startOfIdentifier}}((Eval|Internal|Range|Reference|Syntax|Type|URI)?Error)\b(?!\$)'
1403+
- name: support.class.promise.ts
1404+
match: '{{startOfIdentifier}}(Promise)\b(?!\$)'
13941405
# known builtin function calls
13951406
- name: support.function.ts
13961407
match: |-
@@ -1643,6 +1654,8 @@ repository:
16431654
slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|
16441655
submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|
16451656
toDataURL|toggle|toString|values|write|writeln
1657+
) |
1658+
(all|catch|finally|race|reject|resolve|then
16461659
)
16471660
)(?=\s*\()
16481661
captures:
@@ -1651,6 +1664,7 @@ repository:
16511664
'3': { name: support.function.event-handler.ts }
16521665
'4': { name: support.function.ts }
16531666
'5': { name: support.function.dom.ts }
1667+
'6': { name: support.function.promise.ts }
16541668
16551669
identifiers:
16561670
patterns:
@@ -1885,10 +1899,9 @@ repository:
18851899

18861900
#conditional type
18871901
type-conditional:
1888-
match: '{{startOfIdentifier}}({{identifier}})\s+(extends)\s+'
1902+
match: '{{startOfIdentifier}}(extends)\s+'
18891903
captures:
1890-
'1': { name: entity.name.type.ts }
1891-
'2': { name: storage.modifier.ts }
1904+
'1': { name: storage.modifier.ts }
18921905

18931906
# Parenthesis can contain either types and function parameters
18941907
# (number | string) or (param: number, param2: string)
@@ -2089,77 +2102,82 @@ repository:
20892102
regex:
20902103
patterns:
20912104
- name: string.regexp.ts
2092-
begin: (?<=[=(:,\[?+!]|{{lookBehindReturn}}|{{lookBehindCase}}|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)+\])+\/(?![\/*])[gimuy]*(?!\s*[a-zA-Z0-9_$]))
2105+
begin: (?<!\+\+|--)(?<=[=(:,\[?+!]|{{lookBehindReturn}}|{{lookBehindCase}}|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)+\])+\/(?![\/*])[gimsuy]*(?!\s*[a-zA-Z0-9_$]))
20932106
beginCaptures:
2094-
'1': {name: punctuation.definition.string.begin.ts}
2095-
end: (/)([gimuy]*)
2107+
'1': { name: punctuation.definition.string.begin.ts }
2108+
end: (/)([gimsuy]*)
20962109
endCaptures:
2097-
'1': {name: punctuation.definition.string.end.ts}
2098-
'2': {name: keyword.other.ts}
2110+
'1': { name: punctuation.definition.string.end.ts }
2111+
'2': { name: keyword.other.ts}
20992112
patterns:
21002113
- include: '#regexp'
21012114
# Check if complete regexp syntax
21022115
- name: string.regexp.ts
2103-
begin: (?<![_$[:alnum:])\]])\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)+\])+\/(?![\/*])[gimuy]*(?!\s*[a-zA-Z0-9_$]))
2116+
begin: (?<![_$[:alnum:])\]]|\+\+|--)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)+\])+\/(?![\/*])[gimsuy]*(?!\s*[a-zA-Z0-9_$]))
21042117
beginCaptures:
2105-
'0': {name: punctuation.definition.string.begin.ts}
2106-
end: (/)([gimuy]*)
2118+
'0': { name: punctuation.definition.string.begin.ts }
2119+
end: (/)([gimsuy]*)
21072120
endCaptures:
2108-
'1': {name: punctuation.definition.string.end.ts}
2109-
'2': {name: keyword.other.ts}
2121+
'1': { name: punctuation.definition.string.end.ts }
2122+
'2': { name: keyword.other.ts }
21102123
patterns:
21112124
- include: '#regexp'
21122125

21132126
regexp:
21142127
patterns:
21152128
- name: keyword.control.anchor.regexp
21162129
match: \\[bB]|\^|\$
2117-
- name: keyword.other.back-reference.regexp
2118-
match: \\[1-9]\d*
2130+
- match: \\[1-9]\d*|\\k<([a-zA-Z_$][\w$]*)>
2131+
captures:
2132+
'0': { name: keyword.other.back-reference.regexp }
2133+
'1': { name: variable.other.regexp }
21192134
- name: keyword.operator.quantifier.regexp
21202135
match: '[?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\??'
21212136
- name: keyword.operator.or.regexp
21222137
match: \|
21232138
- name: meta.group.assertion.regexp
2124-
begin: (\()((\?=)|(\?!))
2139+
begin: (\()((\?=)|(\?!)|(\?<=)|(\?<!))
21252140
beginCaptures:
2126-
'1': {name: punctuation.definition.group.regexp}
2127-
'2': {name: punctuation.definition.group.assertion.regexp}
2128-
'3': {name: meta.assertion.look-ahead.regexp}
2129-
'4': {name: meta.assertion.negative-look-ahead.regexp}
2141+
'1': { name: punctuation.definition.group.regexp }
2142+
'2': { name: punctuation.definition.group.assertion.regexp }
2143+
'3': { name: meta.assertion.look-ahead.regexp }
2144+
'4': { name: meta.assertion.negative-look-ahead.regexp }
2145+
'5': { name: meta.assertion.look-behind.regexp }
2146+
'6': { name: meta.assertion.negative-look-behind.regexp }
21302147
end: (\))
21312148
endCaptures:
2132-
'1': {name: punctuation.definition.group.regexp}
2149+
'1': {name: punctuation.definition.group.regexp }
21332150
patterns:
21342151
- include: '#regexp'
21352152
- name: meta.group.regexp
2136-
begin: \((\?:)?
2153+
begin: \((?:(\?:)|(?:\?<([a-zA-Z_$][\w$]*)>))?
21372154
beginCaptures:
2138-
'0': {name: punctuation.definition.group.regexp}
2139-
'1': {name: punctuation.definition.group.no-capture.regexp}
2155+
'0': { name: punctuation.definition.group.regexp }
2156+
'1': { name: punctuation.definition.group.no-capture.regexp }
2157+
'2': { name: variable.other.regexp }
21402158
end: \)
21412159
endCaptures:
2142-
'0': {name: punctuation.definition.group.regexp}
2160+
'0': { name: punctuation.definition.group.regexp }
21432161
patterns:
21442162
- include: '#regexp'
21452163
- name: constant.other.character-class.set.regexp
21462164
begin: (\[)(\^)?
21472165
beginCaptures:
2148-
'1': {name: punctuation.definition.character-class.regexp}
2149-
'2': {name: keyword.operator.negation.regexp}
2166+
'1': { name: punctuation.definition.character-class.regexp }
2167+
'2': { name: keyword.operator.negation.regexp }
21502168
end: (\])
21512169
endCaptures:
2152-
'1': {name: punctuation.definition.character-class.regexp}
2170+
'1': {name: punctuation.definition.character-class.regexp }
21532171
patterns:
21542172
- name: constant.other.character-class.range.regexp
21552173
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])|(\\.))
21562174
captures:
2157-
'1': {name: constant.character.numeric.regexp}
2158-
'2': {name: constant.character.control.regexp}
2159-
'3': {name: constant.character.escape.backslash.regexp}
2160-
'4': {name: constant.character.numeric.regexp}
2161-
'5': {name: constant.character.control.regexp}
2162-
'6': {name: constant.character.escape.backslash.regexp}
2175+
'1': { name: constant.character.numeric.regexp }
2176+
'2': { name: constant.character.control.regexp }
2177+
'3': { name: constant.character.escape.backslash.regexp }
2178+
'4': { name: constant.character.numeric.regexp }
2179+
'5': { name: constant.character.control.regexp }
2180+
'6': { name: constant.character.escape.backslash.regexp }
21632181
- include: '#regex-character-class'
21642182
- include: '#regex-character-class'
21652183

0 commit comments

Comments
 (0)