Skip to content

Commit

Permalink
Add const assertion as per microsoft/TypeScript#29510
Browse files Browse the repository at this point in the history
  • Loading branch information
sheetalkamat committed Jan 22, 2019
1 parent 76cfeab commit b80870c
Show file tree
Hide file tree
Showing 7 changed files with 531 additions and 9 deletions.
34 changes: 31 additions & 3 deletions TypeScript.YAML-tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -1280,13 +1280,19 @@ repository:
- include: '#comment'
- include: '#array-literal'
- name: meta.object.member.ts meta.object-literal.key.ts
begin: (?=[\'\"])
end: (?=:)|((?<=[\'\"])(?=\s*[\(\<]))
begin: (?=[\'\"\`])
end: (?=:)|((?<=[\'\"\`])(?=((\s*[\(\<,}])|(\s+(as)\s+))))
patterns:
- include: '#comment'
- include: '#string'
- name: meta.object.member.ts meta.object-literal.key.ts
begin: (?x)(?={{anyNumber}})
end: (?=:)|(?=\s*([\(\<,}])|(\s+as\s+))
patterns:
- include: '#comment'
- include: '#numeric-literal'
- name: meta.method.declaration.ts
begin: (?<=[\]\'\"])(?=\s*[\(\<])
begin: (?<=[\]\'\"\`])(?=\s*[\(\<])
end: (?=\}|;|,)|(?<=\})
patterns:
- include: '#function-body'
Expand Down Expand Up @@ -1316,6 +1322,18 @@ repository:
match: ({{identifier}})\s*(?=,|\}|$|\/\/|\/\*)
captures:
'1': { name: variable.other.readwrite.ts }
- name: meta.object.member.ts
match: '{{startOfIdentifier}}(as)\s+(const)(?=\s*([,}]|$))'
captures:
'1': { name: keyword.control.as.ts }
'2': { name: storage.modifier.ts }
- name: meta.object.member.ts
begin: '{{startOfIdentifier}}(as)\s+'
beginCaptures:
'1': { name: keyword.control.as.ts }
end: (?=$|^|[,}]|({{startOfIdentifier}}(as)\s+))
patterns:
- include: '#type'
- name: meta.object.member.ts
begin: (?={{identifier}}\s*=)
end: (?=,|\}|$|\/\/|\/\*)
Expand Down Expand Up @@ -1483,6 +1501,12 @@ repository:
#cast expression
cast:
patterns:
- name: cast.expr.ts
match: \s*(<)\s*(const)\s*(>)
captures:
'1': { name: meta.brace.angle.ts }
'2': { name: storage.modifier.ts }
'3': { name: meta.brace.angle.ts }
- name: cast.expr.ts
# We need to differentiate between the relational '<' operator and the beginning of a type assertion/cast using the surrounding context.
# If '<' is preceeded by 'return', 'throw', 'yield', or 'await', it's most likely a type assertion
Expand Down Expand Up @@ -1541,6 +1565,10 @@ repository:
- name: keyword.operator.expression.void.ts
match: '{{startOfIdentifier}}void{{endOfIdentifier}}'
#handle as operator specifically to be recognized only if it is 'as' followed by space
- match: '{{startOfIdentifier}}(as)\s+(const)(?=\s*($|[;,:})\]]))'
captures:
'1': { name: keyword.control.as.ts }
'2': { name: storage.modifier.ts }
- begin: '{{startOfIdentifier}}(as)\s+'
beginCaptures:
'1': { name: keyword.control.as.ts }
Expand Down
117 changes: 114 additions & 3 deletions TypeScript.tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -4119,9 +4119,9 @@
<key>name</key>
<string>meta.object.member.ts meta.object-literal.key.ts</string>
<key>begin</key>
<string>(?=[\'\"])</string>
<string>(?=[\'\"\`])</string>
<key>end</key>
<string>(?=:)|((?&lt;=[\'\"])(?=\s*[\(\&lt;]))</string>
<string>(?=:)|((?&lt;=[\'\"\`])(?=((\s*[\(\&lt;,}])|(\s+(as)\s+))))</string>
<key>patterns</key>
<array>
<dict>
Expand All @@ -4134,11 +4134,39 @@
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>meta.object.member.ts meta.object-literal.key.ts</string>
<key>begin</key>
<string>(?x)(?=(\b(?&lt;!\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\b(?!\$))|(\b(?&lt;!\$)0(?:b|B)[01][01_]*(n)?\b(?!\$))|(\b(?&lt;!\$)0(?:o|O)?[0-7][0-7_]*(n)?\b(?!\$))|((?&lt;!\$)(?:
(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\b)| # 1.1E+3
(?:\b[0-9][0-9_]*(\.)[eE][+-]?[0-9][0-9_]*(n)?\b)| # 1.E+3
(?:\B(\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\b)| # .1E+3
(?:\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\b)| # 1E+3
(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b)| # 1.1
(?:\b[0-9][0-9_]*(\.)(n)?\B)| # 1.
(?:\B(\.)[0-9][0-9_]*(n)?\b)| # .1
(?:\b[0-9][0-9_]*(n)?\b(?!\.)) # 1
)(?!\$)))</string>
<key>end</key>
<string>(?=:)|(?=\s*([\(\&lt;,}])|(\s+as\s+))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#numeric-literal</string>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>meta.method.declaration.ts</string>
<key>begin</key>
<string>(?&lt;=[\]\'\"])(?=\s*[\(\&lt;])</string>
<string>(?&lt;=[\]\'\"\`])(?=\s*[\(\&lt;])</string>
<key>end</key>
<string>(?=\}|;|,)|(?&lt;=\})</string>
<key>patterns</key>
Expand Down Expand Up @@ -4266,6 +4294,48 @@
</dict>
</dict>
</dict>
<dict>
<key>name</key>
<string>meta.object.member.ts</string>
<key>match</key>
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(as)\s+(const)(?=\s*([,}]|$))</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.as.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
</dict>
</dict>
<dict>
<key>name</key>
<string>meta.object.member.ts</string>
<key>begin</key>
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(as)\s+</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.as.ts</string>
</dict>
</dict>
<key>end</key>
<string>(?=$|^|[,}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(as)\s+))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type</string>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>meta.object.member.ts</string>
Expand Down Expand Up @@ -4866,6 +4936,30 @@
<dict>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>cast.expr.ts</string>
<key>match</key>
<string>\s*(&lt;)\s*(const)\s*(&gt;)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.brace.angle.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>meta.brace.angle.ts</string>
</dict>
</dict>
</dict>
<dict>
<key>name</key>
<string>cast.expr.ts</string>
Expand Down Expand Up @@ -5026,6 +5120,23 @@
<key>match</key>
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))void(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
</dict>
<dict>
<key>match</key>
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(as)\s+(const)(?=\s*($|[;,:})\]]))</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.as.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
</dict>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(as)\s+</string>
Expand Down
93 changes: 90 additions & 3 deletions TypeScriptReact.tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -4123,9 +4123,9 @@
<key>name</key>
<string>meta.object.member.tsx meta.object-literal.key.tsx</string>
<key>begin</key>
<string>(?=[\'\"])</string>
<string>(?=[\'\"\`])</string>
<key>end</key>
<string>(?=:)|((?&lt;=[\'\"])(?=\s*[\(\&lt;]))</string>
<string>(?=:)|((?&lt;=[\'\"\`])(?=((\s*[\(\&lt;,}])|(\s+(as)\s+))))</string>
<key>patterns</key>
<array>
<dict>
Expand All @@ -4138,11 +4138,39 @@
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>meta.object.member.tsx meta.object-literal.key.tsx</string>
<key>begin</key>
<string>(?x)(?=(\b(?&lt;!\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\b(?!\$))|(\b(?&lt;!\$)0(?:b|B)[01][01_]*(n)?\b(?!\$))|(\b(?&lt;!\$)0(?:o|O)?[0-7][0-7_]*(n)?\b(?!\$))|((?&lt;!\$)(?:
(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\b)| # 1.1E+3
(?:\b[0-9][0-9_]*(\.)[eE][+-]?[0-9][0-9_]*(n)?\b)| # 1.E+3
(?:\B(\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\b)| # .1E+3
(?:\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\b)| # 1E+3
(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b)| # 1.1
(?:\b[0-9][0-9_]*(\.)(n)?\B)| # 1.
(?:\B(\.)[0-9][0-9_]*(n)?\b)| # .1
(?:\b[0-9][0-9_]*(n)?\b(?!\.)) # 1
)(?!\$)))</string>
<key>end</key>
<string>(?=:)|(?=\s*([\(\&lt;,}])|(\s+as\s+))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#numeric-literal</string>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>meta.method.declaration.tsx</string>
<key>begin</key>
<string>(?&lt;=[\]\'\"])(?=\s*[\(\&lt;])</string>
<string>(?&lt;=[\]\'\"\`])(?=\s*[\(\&lt;])</string>
<key>end</key>
<string>(?=\}|;|,)|(?&lt;=\})</string>
<key>patterns</key>
Expand Down Expand Up @@ -4270,6 +4298,48 @@
</dict>
</dict>
</dict>
<dict>
<key>name</key>
<string>meta.object.member.tsx</string>
<key>match</key>
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(as)\s+(const)(?=\s*([,}]|$))</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.as.tsx</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.modifier.tsx</string>
</dict>
</dict>
</dict>
<dict>
<key>name</key>
<string>meta.object.member.tsx</string>
<key>begin</key>
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(as)\s+</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.as.tsx</string>
</dict>
</dict>
<key>end</key>
<string>(?=$|^|[,}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(as)\s+))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type</string>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>meta.object.member.tsx</string>
Expand Down Expand Up @@ -4972,6 +5042,23 @@
<key>match</key>
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))void(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
</dict>
<dict>
<key>match</key>
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(as)\s+(const)(?=\s*($|[;,:})\]]))</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.as.tsx</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.modifier.tsx</string>
</dict>
</dict>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(as)\s+</string>
Expand Down
Loading

0 comments on commit b80870c

Please sign in to comment.