Fix incorrect end lookback for labeled blocks

Fixes #625
This commit is contained in:
Sheetal Nandi 2018-06-07 08:53:18 -07:00
Родитель ef418e5849
Коммит 612844a285
6 изменённых файлов: 84 добавлений и 7 удалений

Просмотреть файл

@ -177,7 +177,7 @@ repository:
beginCaptures:
'1': { name: entity.name.label.ts }
'2': { name: punctuation.separator.label.ts }
end: (?<=\{)
end: (?<=\})
patterns:
- include: '#decl-block'
- match: '{{label}}'

Просмотреть файл

@ -218,7 +218,7 @@
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\{)</string>
<string>(?&lt;=\})</string>
<key>patterns</key>
<array>
<dict>

Просмотреть файл

@ -218,7 +218,7 @@
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\{)</string>
<string>(?&lt;=\})</string>
<key>patterns</key>
<array>
<dict>

Просмотреть файл

@ -105,8 +105,10 @@ Grammar: TypeScript.tmLanguage
^
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts
> }
^^^^
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
>}
^^
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
^
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts
>}
^
source.ts meta.class.ts punctuation.definition.block.ts

Просмотреть файл

@ -0,0 +1,70 @@
original file
-----------------------------------
console.log(1);
foo: {
console.log(1);
}
console.log(1);
-----------------------------------
Grammar: TypeScript.tmLanguage
-----------------------------------
>console.log(1);
^^^^^^^
source.ts meta.function-call.ts support.class.console.ts
^
source.ts meta.function-call.ts punctuation.accessor.ts
^^^
source.ts meta.function-call.ts support.function.console.ts
^
source.ts meta.brace.round.ts
^
source.ts constant.numeric.decimal.ts
^
source.ts meta.brace.round.ts
^
source.ts punctuation.terminator.statement.ts
>foo: {
^^^
source.ts entity.name.label.ts
^
source.ts punctuation.separator.label.ts
^
source.ts
^
source.ts meta.block.ts punctuation.definition.block.ts
> console.log(1);
^^^^
source.ts meta.block.ts
^^^^^^^
source.ts meta.block.ts meta.function-call.ts support.class.console.ts
^
source.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts
^^^
source.ts meta.block.ts meta.function-call.ts support.function.console.ts
^
source.ts meta.block.ts meta.brace.round.ts
^
source.ts meta.block.ts constant.numeric.decimal.ts
^
source.ts meta.block.ts meta.brace.round.ts
^
source.ts meta.block.ts punctuation.terminator.statement.ts
>}
^
source.ts meta.block.ts punctuation.definition.block.ts
>console.log(1);
^^^^^^^
source.ts meta.function-call.ts support.class.console.ts
^
source.ts meta.function-call.ts punctuation.accessor.ts
^^^
source.ts meta.function-call.ts support.function.console.ts
^
source.ts meta.brace.round.ts
^
source.ts constant.numeric.decimal.ts
^
source.ts meta.brace.round.ts
^
source.ts punctuation.terminator.statement.ts

5
tests/cases/Issue625.ts Normal file
Просмотреть файл

@ -0,0 +1,5 @@
console.log(1);
foo: {
console.log(1);
}
console.log(1);