Skip to content

Commit 9b9b130

Browse files
committed
Update type predeicate matching per microsoft/TypeScript#32695
1 parent f833322 commit 9b9b130

File tree

5 files changed

+1128
-10
lines changed

5 files changed

+1128
-10
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2442,8 +2442,22 @@ repository:
24422442
match: '{{startOfIdentifier}}import(?=\s*\()'
24432443

24442444
type-predicate-operator:
2445-
name: keyword.operator.expression.is.ts
2446-
match: '{{startOfIdentifier}}is{{endOfIdentifier}}'
2445+
patterns:
2446+
- match: '{{startOfIdentifier}}(?:(asserts)\s+)?(?!asserts)(?:(this)|({{identifier}}))\s(is){{endOfIdentifier}}'
2447+
captures:
2448+
'1': { name: keyword.operator.type.asserts.ts }
2449+
'2': { name: variable.parameter.ts variable.language.this.ts }
2450+
'3': { name: variable.parameter.ts }
2451+
'4': { name: keyword.operator.expression.is.ts }
2452+
- match: '{{startOfIdentifier}}(asserts)\s+(?!is)(?:(this)|({{identifier}})){{endOfIdentifier}}'
2453+
captures:
2454+
'1': { name: keyword.operator.type.asserts.ts }
2455+
'2': { name: variable.parameter.ts variable.language.this.ts }
2456+
'3': { name: variable.parameter.ts }
2457+
- name: keyword.operator.type.asserts.ts
2458+
match: '{{startOfIdentifier}}asserts{{endOfIdentifier}}'
2459+
- name: keyword.operator.expression.is.ts
2460+
match: '{{startOfIdentifier}}is{{endOfIdentifier}}'
24472461

24482462
#name of the type and type name followed by type arguments
24492463
type-name:

TypeScript.tmLanguage

Lines changed: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7367,10 +7367,70 @@
73677367
</dict>
73687368
<key>type-predicate-operator</key>
73697369
<dict>
7370-
<key>name</key>
7371-
<string>keyword.operator.expression.is.ts</string>
7372-
<key>match</key>
7373-
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))is(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
7370+
<key>patterns</key>
7371+
<array>
7372+
<dict>
7373+
<key>match</key>
7374+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(?:(asserts)\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\s(is)(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
7375+
<key>captures</key>
7376+
<dict>
7377+
<key>1</key>
7378+
<dict>
7379+
<key>name</key>
7380+
<string>keyword.operator.type.asserts.ts</string>
7381+
</dict>
7382+
<key>2</key>
7383+
<dict>
7384+
<key>name</key>
7385+
<string>variable.parameter.ts variable.language.this.ts</string>
7386+
</dict>
7387+
<key>3</key>
7388+
<dict>
7389+
<key>name</key>
7390+
<string>variable.parameter.ts</string>
7391+
</dict>
7392+
<key>4</key>
7393+
<dict>
7394+
<key>name</key>
7395+
<string>keyword.operator.expression.is.ts</string>
7396+
</dict>
7397+
</dict>
7398+
</dict>
7399+
<dict>
7400+
<key>match</key>
7401+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(asserts)\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
7402+
<key>captures</key>
7403+
<dict>
7404+
<key>1</key>
7405+
<dict>
7406+
<key>name</key>
7407+
<string>keyword.operator.type.asserts.ts</string>
7408+
</dict>
7409+
<key>2</key>
7410+
<dict>
7411+
<key>name</key>
7412+
<string>variable.parameter.ts variable.language.this.ts</string>
7413+
</dict>
7414+
<key>3</key>
7415+
<dict>
7416+
<key>name</key>
7417+
<string>variable.parameter.ts</string>
7418+
</dict>
7419+
</dict>
7420+
</dict>
7421+
<dict>
7422+
<key>name</key>
7423+
<string>keyword.operator.type.asserts.ts</string>
7424+
<key>match</key>
7425+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))asserts(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
7426+
</dict>
7427+
<dict>
7428+
<key>name</key>
7429+
<string>keyword.operator.expression.is.ts</string>
7430+
<key>match</key>
7431+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))is(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
7432+
</dict>
7433+
</array>
73747434
</dict>
73757435
<key>type-name</key>
73767436
<dict>

TypeScriptReact.tmLanguage

Lines changed: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7315,10 +7315,70 @@
73157315
</dict>
73167316
<key>type-predicate-operator</key>
73177317
<dict>
7318-
<key>name</key>
7319-
<string>keyword.operator.expression.is.tsx</string>
7320-
<key>match</key>
7321-
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))is(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
7318+
<key>patterns</key>
7319+
<array>
7320+
<dict>
7321+
<key>match</key>
7322+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(?:(asserts)\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\s(is)(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
7323+
<key>captures</key>
7324+
<dict>
7325+
<key>1</key>
7326+
<dict>
7327+
<key>name</key>
7328+
<string>keyword.operator.type.asserts.tsx</string>
7329+
</dict>
7330+
<key>2</key>
7331+
<dict>
7332+
<key>name</key>
7333+
<string>variable.parameter.tsx variable.language.this.tsx</string>
7334+
</dict>
7335+
<key>3</key>
7336+
<dict>
7337+
<key>name</key>
7338+
<string>variable.parameter.tsx</string>
7339+
</dict>
7340+
<key>4</key>
7341+
<dict>
7342+
<key>name</key>
7343+
<string>keyword.operator.expression.is.tsx</string>
7344+
</dict>
7345+
</dict>
7346+
</dict>
7347+
<dict>
7348+
<key>match</key>
7349+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(asserts)\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
7350+
<key>captures</key>
7351+
<dict>
7352+
<key>1</key>
7353+
<dict>
7354+
<key>name</key>
7355+
<string>keyword.operator.type.asserts.tsx</string>
7356+
</dict>
7357+
<key>2</key>
7358+
<dict>
7359+
<key>name</key>
7360+
<string>variable.parameter.tsx variable.language.this.tsx</string>
7361+
</dict>
7362+
<key>3</key>
7363+
<dict>
7364+
<key>name</key>
7365+
<string>variable.parameter.tsx</string>
7366+
</dict>
7367+
</dict>
7368+
</dict>
7369+
<dict>
7370+
<key>name</key>
7371+
<string>keyword.operator.type.asserts.tsx</string>
7372+
<key>match</key>
7373+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))asserts(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
7374+
</dict>
7375+
<dict>
7376+
<key>name</key>
7377+
<string>keyword.operator.expression.is.tsx</string>
7378+
<key>match</key>
7379+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))is(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
7380+
</dict>
7381+
</array>
73227382
</dict>
73237383
<key>type-name</key>
73247384
<dict>

0 commit comments

Comments
 (0)