Fix the end of ternary expression

Fixes #244
This commit is contained in:
Sheetal Nandi 2016-08-31 17:09:03 -07:00
Родитель 7fa318b5da
Коммит 42d20a65fd
6 изменённых файлов: 149 добавлений и 4 удалений

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

@ -142,7 +142,7 @@ repository:
ternary-expression:
begin: (?=\?)
end: (?=$|[;,}])
end: (?=$|[;,})\]])
patterns:
- include: '#ternary-operator'
- include: '#expression'

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

@ -3400,7 +3400,7 @@
<key>begin</key>
<string>(?=\?)</string>
<key>end</key>
<string>(?=$|[;,}])</string>
<string>(?=$|[;,})\]])</string>
<key>patterns</key>
<array>
<dict>

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

@ -146,7 +146,7 @@ repository:
ternary-expression:
begin: (?=\?)
end: (?=$|[;,}])
end: (?=$|[;,})\]])
patterns:
- include: '#ternary-operator'
- include: '#expression'

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

@ -3790,7 +3790,7 @@
<key>begin</key>
<string>(?=\?)</string>
<key>end</key>
<string>(?=$|[;,}])</string>
<string>(?=$|[;,})\]])</string>
<key>patterns</key>
<array>
<dict>

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

@ -0,0 +1,138 @@
original file
-----------------------------------
a.withLatestFrom(axis === 'x' ? initialX : initialY)
.map(x => undefined)
.switch()
.publish().refCount();
const targetX = targetSideObs('x');
const targetY = targetSideObs('y');
-----------------------------------
>a.withLatestFrom(axis === 'x' ? initialX : initialY)
^^^^^^^^^^^^^^^^
source.ts
^
source.ts meta.brace.round.ts
^^^^^
source.ts
^^^
source.ts keyword.operator.comparison.ts
^
source.ts
^
source.ts string.quoted.single.ts punctuation.definition.string.begin.ts
^
source.ts string.quoted.single.ts
^
source.ts string.quoted.single.ts punctuation.definition.string.end.ts
^
source.ts
^
source.ts keyword.operator.ternary.ts
^^^^^^^^^^
source.ts
^
source.ts keyword.operator.ternary.ts
^^^^^^^^^
source.ts
^
source.ts meta.brace.round.ts
^^
source.ts
> .map(x => undefined)
^^^^^
source.ts
^
source.ts meta.brace.round.ts
^
source.ts meta.arrow.ts variable.parameter.ts
^
source.ts meta.arrow.ts
^^
source.ts meta.arrow.ts storage.type.function.arrow.ts
^
source.ts meta.arrow.ts
^^^^^^^^^
source.ts constant.language.undefined.ts
^
source.ts meta.brace.round.ts
^^
source.ts
> .switch()
^^^^^^^^
source.ts
^
source.ts meta.brace.round.ts
^
source.ts meta.brace.round.ts
^^
source.ts
> .publish().refCount();
^^^^^^^^^
source.ts
^
source.ts meta.brace.round.ts
^
source.ts meta.brace.round.ts
^^^^^^^^^
source.ts
^
source.ts meta.brace.round.ts
^
source.ts meta.brace.round.ts
^^^
source.ts
>
^^
source.ts
>const targetX = targetSideObs('x');
^^^^^
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 variable.other.readwrite.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts keyword.operator.assignment.ts
^^^^^^^^^^^^^^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.brace.round.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts string.quoted.single.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.brace.round.ts
^^^
source.ts
>const targetY = targetSideObs('y');
^^^^^
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 variable.other.readwrite.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts keyword.operator.assignment.ts
^^^^^^^^^^^^^^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.brace.round.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts string.quoted.single.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.brace.round.ts
^^
source.ts

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

@ -0,0 +1,7 @@
a.withLatestFrom(axis === 'x' ? initialX : initialY)
.map(x => undefined)
.switch()
.publish().refCount();
const targetX = targetSideObs('x');
const targetY = targetSideObs('y');