Skip to content

Commit

Permalink
Support for intrinsic keyword in type alias as part of microsoft/Type…
Browse files Browse the repository at this point in the history
  • Loading branch information
sheetalkamat committed Nov 20, 2020
1 parent 784ee07 commit a755c6b
Show file tree
Hide file tree
Showing 5 changed files with 164 additions and 0 deletions.
7 changes: 7 additions & 0 deletions TypeScript.YAML-tmLanguage
Expand Up @@ -1074,6 +1074,13 @@ repository:
patterns:
- include: '#comment'
- include: '#type-parameters'
- begin: '(=)\s*(intrinsic){{endOfIdentifier}}'
beginCaptures:
'1': { name: keyword.operator.assignment.ts }
'2': { name: keyword.control.intrinsic.ts }
end: (?=\}|{{endOfStatement}})
patterns:
- include: '#type'
- begin: '(=)\s*'
beginCaptures:
'1': { name: keyword.operator.assignment.ts }
Expand Down
26 changes: 26 additions & 0 deletions TypeScript.tmLanguage
Expand Up @@ -3387,6 +3387,32 @@
<key>include</key>
<string>#type-parameters</string>
</dict>
<dict>
<key>begin</key>
<string>(=)\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.operator.assignment.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.intrinsic.ts</string>
</dict>
</dict>
<key>end</key>
<string>(?=\}|;|(?:^\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(=)\s*</string>
Expand Down
26 changes: 26 additions & 0 deletions TypeScriptReact.tmLanguage
Expand Up @@ -3409,6 +3409,32 @@
<key>include</key>
<string>#type-parameters</string>
</dict>
<dict>
<key>begin</key>
<string>(=)\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.operator.assignment.tsx</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.intrinsic.tsx</string>
</dict>
</dict>
<key>end</key>
<string>(?=\}|;|(?:^\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(=)\s*</string>
Expand Down
102 changes: 102 additions & 0 deletions tests/baselines/intrinsic.baseline.txt
@@ -0,0 +1,102 @@
original file
-----------------------------------
type Uppercase<S extends string> = intrinsic;
type Lowercase<S extends string> = intrinsic;
type Capitalize<S extends string> = intrinsic;
-----------------------------------

Grammar: TypeScript.tmLanguage
-----------------------------------
>type Uppercase<S extends string> = intrinsic;
^^^^
source.ts meta.type.declaration.ts storage.type.type.ts
^
source.ts meta.type.declaration.ts
^^^^^^^^^
source.ts meta.type.declaration.ts entity.name.type.alias.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts
^^^^^^^
source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts
^^^^^^
source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts
^
source.ts meta.type.declaration.ts
^
source.ts meta.type.declaration.ts keyword.operator.assignment.ts
^
source.ts meta.type.declaration.ts
^^^^^^^^^
source.ts meta.type.declaration.ts keyword.control.intrinsic.ts
^
source.ts punctuation.terminator.statement.ts
>type Lowercase<S extends string> = intrinsic;
^^^^
source.ts meta.type.declaration.ts storage.type.type.ts
^
source.ts meta.type.declaration.ts
^^^^^^^^^
source.ts meta.type.declaration.ts entity.name.type.alias.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts
^^^^^^^
source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts
^^^^^^
source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts
^
source.ts meta.type.declaration.ts
^
source.ts meta.type.declaration.ts keyword.operator.assignment.ts
^
source.ts meta.type.declaration.ts
^^^^^^^^^
source.ts meta.type.declaration.ts keyword.control.intrinsic.ts
^
source.ts punctuation.terminator.statement.ts
>type Capitalize<S extends string> = intrinsic;
^^^^
source.ts meta.type.declaration.ts storage.type.type.ts
^
source.ts meta.type.declaration.ts
^^^^^^^^^^
source.ts meta.type.declaration.ts entity.name.type.alias.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts
^^^^^^^
source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts
^^^^^^
source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts
^
source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts
^
source.ts meta.type.declaration.ts
^
source.ts meta.type.declaration.ts keyword.operator.assignment.ts
^
source.ts meta.type.declaration.ts
^^^^^^^^^
source.ts meta.type.declaration.ts keyword.control.intrinsic.ts
^
source.ts punctuation.terminator.statement.ts
3 changes: 3 additions & 0 deletions tests/cases/intrinsic.ts
@@ -0,0 +1,3 @@
type Uppercase<S extends string> = intrinsic;
type Lowercase<S extends string> = intrinsic;
type Capitalize<S extends string> = intrinsic;

0 comments on commit a755c6b

Please sign in to comment.