Better end regex for variable initializer

Fixes #471
This commit is contained in:
Sheetal Nandi 2017-06-13 17:45:41 -07:00
Родитель 4fae4f50ae
Коммит 06d27e6412
5 изменённых файлов: 84 добавлений и 3 удалений

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

@ -1080,7 +1080,7 @@ repository:
- begin: (?<!=|!)(=)(?!=)
beginCaptures:
'1': { name: keyword.operator.assignment.ts }
end: (?=[,);}\]])|(?=^\s*$)|(?<=\S)(?<!=)
end: (?=[,);}\]])|(?=^\s*$)|(?<=\S)(?<!=)(?=\s*$)
patterns:
- include: '#expression'

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

@ -3272,7 +3272,7 @@
</dict>
</dict>
<key>end</key>
<string>(?=[,);}\]])|(?=^\s*$)|(?&lt;=\S)(?&lt;!=)</string>
<string>(?=[,);}\]])|(?=^\s*$)|(?&lt;=\S)(?&lt;!=)(?=\s*$)</string>
<key>patterns</key>
<array>
<dict>

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

@ -3276,7 +3276,7 @@
</dict>
</dict>
<key>end</key>
<string>(?=[,);}\]])|(?=^\s*$)|(?&lt;=\S)(?&lt;!=)</string>
<string>(?=[,);}\]])|(?=^\s*$)|(?&lt;=\S)(?&lt;!=)(?=\s*$)</string>
<key>patterns</key>
<array>
<dict>

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

@ -0,0 +1,76 @@
original file
-----------------------------------
const foo =
true || `${'hello'}.txt`
function syntaxHighlightingIsBroken() {
}
-----------------------------------
Grammar: TypeScript.tmLanguage
-----------------------------------
>const foo =
^^^^^
source.ts meta.var.expr.ts storage.type.ts
^
source.ts meta.var.expr.ts
^^^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
^
source.ts meta.var.expr.ts keyword.operator.assignment.ts
^^
source.ts meta.var.expr.ts
> true || `${'hello'}.txt`
^^^^
source.ts meta.var.expr.ts
^^^^
source.ts meta.var.expr.ts constant.language.boolean.true.ts
^
source.ts meta.var.expr.ts
^^
source.ts meta.var.expr.ts keyword.operator.logical.ts
^
source.ts meta.var.expr.ts
^
source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts
^^
source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts
^
source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts string.quoted.single.ts punctuation.definition.string.begin.ts
^^^^^
source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts string.quoted.single.ts
^
source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts string.quoted.single.ts punctuation.definition.string.end.ts
^
source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts
^^^^
source.ts meta.var.expr.ts string.template.ts
^
source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts
^
source.ts meta.var.expr.ts
>
^^
source.ts
>function syntaxHighlightingIsBroken() {
^^^^^^^^
source.ts meta.function.ts storage.type.function.ts
^
source.ts meta.function.ts
^^^^^^^^^^^^^^^^^^^^^^^^^^
source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts
^
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
^
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
^
source.ts meta.function.ts
^
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
^^
source.ts meta.function.ts meta.block.ts
>}
^
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts

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

@ -0,0 +1,5 @@
const foo =
true || `${'hello'}.txt`
function syntaxHighlightingIsBroken() {
}