diff --git a/TypeScript.YAML-tmLanguage b/TypeScript.YAML-tmLanguage index 4bc3eb49..dea780a1 100644 --- a/TypeScript.YAML-tmLanguage +++ b/TypeScript.YAML-tmLanguage @@ -1092,6 +1092,7 @@ repository: '3': { name: keyword.control.default.ts } end: (?=$|{{endOfStatement}}) patterns: + - include: '#interface-declaration' - include: '#expression' - name: meta.export.ts begin: '{{startOfIdentifier}}(export)(?!\s*:){{endOfIdentifier}}' diff --git a/TypeScript.tmLanguage b/TypeScript.tmLanguage index ce37a3da..50de6106 100644 --- a/TypeScript.tmLanguage +++ b/TypeScript.tmLanguage @@ -3533,6 +3533,10 @@ (?=$|;|^\s*abstract\b|^\s*async\b|^\s*class\b|^\s*const\b|^\s*declare\b|^\s*enum\b|^\s*export\b|^\s*function\b|^\s*import\b|^\s*interface\b|^\s*let\b|^\s*module\b|^\s*namespace\b|^\s*return\b|^\s*type\b|^\s*var\b) patterns + + include + #interface-declaration + include #expression diff --git a/TypeScriptReact.tmLanguage b/TypeScriptReact.tmLanguage index 73640638..fc21a5eb 100644 --- a/TypeScriptReact.tmLanguage +++ b/TypeScriptReact.tmLanguage @@ -3537,6 +3537,10 @@ (?=$|;|^\s*abstract\b|^\s*async\b|^\s*class\b|^\s*const\b|^\s*declare\b|^\s*enum\b|^\s*export\b|^\s*function\b|^\s*import\b|^\s*interface\b|^\s*let\b|^\s*module\b|^\s*namespace\b|^\s*return\b|^\s*type\b|^\s*var\b) patterns + + include + #interface-declaration + include #expression diff --git a/tests/baselines/Issue653.baseline.txt b/tests/baselines/Issue653.baseline.txt new file mode 100644 index 00000000..fdd60792 --- /dev/null +++ b/tests/baselines/Issue653.baseline.txt @@ -0,0 +1,44 @@ +original file +----------------------------------- +export default interface IFoo { + x: string; +} +----------------------------------- + +Grammar: TypeScript.tmLanguage +----------------------------------- +>export default interface IFoo { + ^^^^^^ + source.ts meta.export.default.ts keyword.control.export.ts + ^ + source.ts meta.export.default.ts + ^^^^^^^ + source.ts meta.export.default.ts keyword.control.default.ts + ^ + source.ts meta.export.default.ts + ^^^^^^^^^ + source.ts meta.export.default.ts meta.interface.ts storage.type.interface.ts + ^ + source.ts meta.export.default.ts meta.interface.ts + ^^^^ + source.ts meta.export.default.ts meta.interface.ts entity.name.type.interface.ts + ^ + source.ts meta.export.default.ts meta.interface.ts + ^ + source.ts meta.export.default.ts meta.interface.ts punctuation.definition.block.ts +> x: string; + ^^^^ + source.ts meta.export.default.ts meta.interface.ts meta.field.declaration.ts + ^ + source.ts meta.export.default.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts + ^ + source.ts meta.export.default.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts + ^ + source.ts meta.export.default.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts + ^^^^^^ + source.ts meta.export.default.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts + ^ + source.ts meta.export.default.ts meta.interface.ts punctuation.terminator.statement.ts +>} + ^ + source.ts meta.export.default.ts meta.interface.ts punctuation.definition.block.ts \ No newline at end of file diff --git a/tests/cases/Issue653.ts b/tests/cases/Issue653.ts new file mode 100644 index 00000000..e86712ee --- /dev/null +++ b/tests/cases/Issue653.ts @@ -0,0 +1,3 @@ +export default interface IFoo { + x: string; +} \ No newline at end of file