diff --git a/lib/pegjs/html/glimmer-tag-string.pegjs b/lib/pegjs/html/glimmer-tag-string.pegjs new file mode 100644 index 0000000..89483e9 --- /dev/null +++ b/lib/pegjs/html/glimmer-tag-string.pegjs @@ -0,0 +1,8 @@ +@import "../non-separator-colon.pegjs" as nonSeparatorColon + +start = tagString + +tagString 'valid tag string' + = c:$tagChar+ + +tagChar = [_a-zA-Z0-9-.] / nonSeparatorColon / '@' diff --git a/lib/pegjs/html/tag-component.pegjs b/lib/pegjs/html/tag-component.pegjs index 8c7be34..7e4b36c 100644 --- a/lib/pegjs/html/tag-component.pegjs +++ b/lib/pegjs/html/tag-component.pegjs @@ -3,7 +3,7 @@ @import "./attribute.pegjs" as attribute @import "./attribute-bracketed.pegjs" as bracketedAttribute @import "./attribute-shorthand.pegjs" as shorthandAttributes -@import "./tag-string.pegjs" as tagString +@import "./glimmer-tag-string.pegjs" as glimmerTagString @import "../mustache/ast/in-tag.pegjs" as inTagMustache @import "../syntax/block-params.pegjs" as blockParamsRaw @import "../whitespace.pegjs" as _ @@ -29,7 +29,7 @@ htmlStart // @TODO / coercion componentTag - = '%' _ s:tagString + = '%' _ s:glimmerTagString { return s; } diff --git a/tests/integration/glimmer/blocks-test.js b/tests/integration/glimmer/blocks-test.js index 8da915e..2e32fde 100644 --- a/tests/integration/glimmer/blocks-test.js +++ b/tests/integration/glimmer/blocks-test.js @@ -20,7 +20,7 @@ module('glimmer: blocks', function (hooks) { assert.compilesTo(emblem, '{{comp.name}}'); - }); + }); test('recursive nesting part 2', function (assert) { const emblem = w( @@ -33,4 +33,15 @@ module('glimmer: blocks', function (hooks) { assert.compilesTo(emblem, '

Hello

'); }); + + test("block params with nested comp", function (assert) { + const emblem = w( + "%MyComponent @value=foo as |comp1 @comp2|", + " %comp.name @value1=foo" + ); + + assert.compilesTo(emblem, + ''); + }); + });