From e6dbe68eddc61cf218c339a3ffc876ae18662ea4 Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Tue, 27 Dec 2022 12:00:29 -0500 Subject: [PATCH 01/13] group params and block params separately in block statements --- src/language-handlebars/printer-glimmer.js | 32 ++++++++++++---------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/language-handlebars/printer-glimmer.js b/src/language-handlebars/printer-glimmer.js index 19249ff52a9a..c4885a068a50 100644 --- a/src/language-handlebars/printer-glimmer.js +++ b/src/language-handlebars/printer-glimmer.js @@ -533,21 +533,24 @@ function printOpenBlock(path, print) { const openingMustache = printOpeningBlockOpeningMustache(node); const closingMustache = printOpeningBlockClosingMustache(node); - const attributes = [printPath(path, print)]; + const blockKeyword = [printPath(path, print)]; - const params = printParams(path, print); - if (params) { - attributes.push(line, params); + const printParamsResult = printParams(path, print); + let params = []; + if (printParamsResult) { + params = [line, group(printParamsResult)]; } + let blockParams = []; if (isNonEmptyArray(node.program.blockParams)) { - const block = printBlockParams(node.program); - attributes.push(line, block); + blockParams = [line, printBlockParams(node.program)]; } return group([ openingMustache, - indent(attributes), + indent(blockKeyword), + indent(params), + indent(blockParams), softline, closingMustache, ]); @@ -564,8 +567,12 @@ function printElseBlock(node, options) { function printElseIfLikeBlock(path, print, ifLikeKeyword) { const node = path.getValue(); - let blockParams = []; + const elseBlockKeywords = group(["else", line, ifLikeKeyword]); + + const params = [line, group(printParams(path, print))]; + + let blockParams = []; if (isNonEmptyArray(node.program.blockParams)) { blockParams = [line, printBlockParams(node.program)]; } @@ -574,13 +581,8 @@ function printElseIfLikeBlock(path, print, ifLikeKeyword) { return group([ printInverseBlockOpeningMustache(parentNode), - indent( - group([ - group(["else", line, ifLikeKeyword]), - line, - printParams(path, print), - ]) - ), + indent(elseBlockKeywords), + indent(params), indent(blockParams), softline, printInverseBlockClosingMustache(parentNode), From 66d9ab6370b798280b2fd2b978bf7240e1cd1b39 Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Tue, 27 Dec 2022 12:01:28 -0500 Subject: [PATCH 02/13] add/update tests for block statement param breaking --- .../__snapshots__/jsfmt.spec.js.snap | 73 +++++++++++-------- .../block-statement/block-statement.hbs | 4 + .../block-statement/custom-else.hbs | 12 ++- 3 files changed, 54 insertions(+), 35 deletions(-) diff --git a/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap b/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap index 8894daaed253..9bdfcc4dfc57 100644 --- a/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap @@ -17,6 +17,10 @@ printWidth: 80 Hello {{/block}} +{{#block param param param param param param param param param param param hashKey=hashValue as |blockParam|}} + Hello +{{/block}} + {{#block param param param param param param param hashKey=HashValue hashKey=hashValue}} Hello {{/block}} @@ -71,14 +75,7 @@ printWidth: 80 }}{{/block}} {{#block - param - param - param - param - param - param - param - hashKey=hashValue + param param param param param param param hashKey=hashValue as |blockParam| }} Hello @@ -92,26 +89,24 @@ printWidth: 80 param param param - hashKey=HashValue + param + param + param + param hashKey=hashValue + as |blockParam| }} Hello {{/block}} {{#block - param - param - param - param - param - param - param - param - param - param - param - param - param + param param param param param param param hashKey=HashValue hashKey=hashValue +}} + Hello +{{/block}} + +{{#block + param param param param param param param param param param param param param }} Hello {{/block}} @@ -286,12 +281,16 @@ printWidth: 80 j {{/when}} -{{#when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst as |b|}} +{{#when abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |b|}} {{b}} -{{else when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnop as |d|}} +{{else when abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |d|}} + {{d}} +{{/when}} + +{{#when abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz as |b|}} + {{b}} +{{else when abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz as |d|}} {{d}} -{{else when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz as |f|}} - {{f}} {{/when}} =====================================output===================================== @@ -415,19 +414,31 @@ printWidth: 80 {{/when}} {{#when - abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst + abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |b| }} {{b}} -{{else when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnop +{{else when + abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |d| }} {{d}} +{{/when}} + +{{#when + abcdefghijklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + as |b| +}} + {{b}} {{else when - abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz - as |f| + abcdefghijklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + as |d| }} - {{f}} + {{d}} {{/when}} ================================================================================ `; diff --git a/tests/format/handlebars/block-statement/block-statement.hbs b/tests/format/handlebars/block-statement/block-statement.hbs index 78b7e47d7cc5..b050884afd40 100644 --- a/tests/format/handlebars/block-statement/block-statement.hbs +++ b/tests/format/handlebars/block-statement/block-statement.hbs @@ -9,6 +9,10 @@ Hello {{/block}} +{{#block param param param param param param param param param param param hashKey=hashValue as |blockParam|}} + Hello +{{/block}} + {{#block param param param param param param param hashKey=HashValue hashKey=hashValue}} Hello {{/block}} diff --git a/tests/format/handlebars/block-statement/custom-else.hbs b/tests/format/handlebars/block-statement/custom-else.hbs index 72580285e949..4462cba112f0 100644 --- a/tests/format/handlebars/block-statement/custom-else.hbs +++ b/tests/format/handlebars/block-statement/custom-else.hbs @@ -119,10 +119,14 @@ j {{/when}} -{{#when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst as |b|}} +{{#when abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |b|}} {{b}} -{{else when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnop as |d|}} +{{else when abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |d|}} + {{d}} +{{/when}} + +{{#when abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz as |b|}} + {{b}} +{{else when abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz as |d|}} {{d}} -{{else when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz as |f|}} - {{f}} {{/when}} From e88b6c0f312b47e163052c73e033441dc2f872ba Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Tue, 27 Dec 2022 15:56:14 -0500 Subject: [PATCH 03/13] add changelog entry --- changelog_unreleased/handlebars/14067.md | 57 ++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 changelog_unreleased/handlebars/14067.md diff --git a/changelog_unreleased/handlebars/14067.md b/changelog_unreleased/handlebars/14067.md new file mode 100644 index 000000000000..6edfdfc9426a --- /dev/null +++ b/changelog_unreleased/handlebars/14067.md @@ -0,0 +1,57 @@ +#### Group params in opening block statements (#14067 by @jamescdavis) + +This is a follow-up to #13930 to establish wrapping consistency between opening block statements and else blocks by +grouping params in opening blocks. This causes params to break to a new line together and not be split across lines +unless the length of params exceeds the print width. This also updates the else block wrapping to behave exactly the +same as opening blocks. + + +```hbs +{{! Input }} +{{#block param param param param param param param param param param as |blockParam|}} + Hello +{{else block param param param param param param param param param param as |blockParam|}} + There +{{/block}} + +{{! Prettier stable }} +{{#block + param + param + param + param + param + param + param + param + param + param + as |blockParam| +}} + Hello +{{else block param +param +param +param +param +param +param +param +param +param}} + There +{{/block}} + +{{! Prettier main }} +{{#block + param param param param param param param param param param + as |blockParam| +}} + Hello +{{else block + param param param param param param param param param param + as |blockParam| +}} + There +{{/block}} +``` From 8d7f4123bec9376c2663f24657bd0d8921cf50ee Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Fri, 30 Dec 2022 15:21:01 +0800 Subject: [PATCH 04/13] Revert change in tests --- .../__snapshots__/jsfmt.spec.js.snap | 25 +++++++++++++++++++ .../block-statement/custom-else.hbs | 8 ++++++ 2 files changed, 33 insertions(+) diff --git a/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap b/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap index 9bdfcc4dfc57..2c91abe68f60 100644 --- a/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap @@ -281,6 +281,14 @@ printWidth: 80 j {{/when}} +{{#when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst as |b|}} + {{b}} +{{else when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnop as |d|}} + {{d}} +{{else when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz as |f|}} + {{f}} +{{/when}} + {{#when abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |b|}} {{b}} {{else when abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |d|}} @@ -413,6 +421,23 @@ printWidth: 80 j {{/when}} +{{#when + abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst + as |b| +}} + {{b}} +{{else when + abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnop + as |d| +}} + {{d}} +{{else when + abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz + as |f| +}} + {{f}} +{{/when}} + {{#when abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |b| diff --git a/tests/format/handlebars/block-statement/custom-else.hbs b/tests/format/handlebars/block-statement/custom-else.hbs index 4462cba112f0..f86228bf215c 100644 --- a/tests/format/handlebars/block-statement/custom-else.hbs +++ b/tests/format/handlebars/block-statement/custom-else.hbs @@ -119,6 +119,14 @@ j {{/when}} +{{#when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst as |b|}} + {{b}} +{{else when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnop as |d|}} + {{d}} +{{else when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz as |f|}} + {{f}} +{{/when}} + {{#when abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |b|}} {{b}} {{else when abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |d|}} From ad7368ea2fa9d868f9b7738c6493d1ec9cf11ec6 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Fri, 30 Dec 2022 15:32:14 +0800 Subject: [PATCH 05/13] Simplify --- src/language-handlebars/printer-glimmer.js | 54 ++++++++-------------- 1 file changed, 20 insertions(+), 34 deletions(-) diff --git a/src/language-handlebars/printer-glimmer.js b/src/language-handlebars/printer-glimmer.js index c4885a068a50..176181d4cba6 100644 --- a/src/language-handlebars/printer-glimmer.js +++ b/src/language-handlebars/printer-glimmer.js @@ -529,31 +529,23 @@ function printInverseBlockClosingMustache(node) { function printOpenBlock(path, print) { const node = path.getValue(); + const parts = [ + printOpeningBlockOpeningMustache(node), + indent(printPath(path, print)), + ]; - const openingMustache = printOpeningBlockOpeningMustache(node); - const closingMustache = printOpeningBlockClosingMustache(node); - - const blockKeyword = [printPath(path, print)]; - - const printParamsResult = printParams(path, print); - let params = []; - if (printParamsResult) { - params = [line, group(printParamsResult)]; + const paramsDoc = printParams(path, print); + if (paramsDoc) { + parts.push(indent([line, group(paramsDoc)])); } - let blockParams = []; if (isNonEmptyArray(node.program.blockParams)) { - blockParams = [line, printBlockParams(node.program)]; + parts.push(indent([line, printBlockParams(node.program)])); } - return group([ - openingMustache, - indent(blockKeyword), - indent(params), - indent(blockParams), - softline, - closingMustache, - ]); + parts.push(softline, printOpeningBlockClosingMustache(node)); + + return group(parts); } function printElseBlock(node, options) { @@ -567,26 +559,20 @@ function printElseBlock(node, options) { function printElseIfLikeBlock(path, print, ifLikeKeyword) { const node = path.getValue(); + const parentNode = path.getParentNode(1); + const parts = [ + printInverseBlockOpeningMustache(parentNode), + indent(group(["else", line, ifLikeKeyword])), + indent([line, group(printParams(path, print))]), + ]; - const elseBlockKeywords = group(["else", line, ifLikeKeyword]); - - const params = [line, group(printParams(path, print))]; - - let blockParams = []; if (isNonEmptyArray(node.program.blockParams)) { - blockParams = [line, printBlockParams(node.program)]; + parts.push(indent([line, printBlockParams(node.program)])); } - const parentNode = path.getParentNode(1); + parts.push(softline, printInverseBlockClosingMustache(parentNode)); - return group([ - printInverseBlockOpeningMustache(parentNode), - indent(elseBlockKeywords), - indent(params), - indent(blockParams), - softline, - printInverseBlockClosingMustache(parentNode), - ]); + return group(parts); } function printCloseBlock(path, print, options) { From 9030cdc7be3e03a0cb16860b0ebcde4cc890ce19 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Fri, 30 Dec 2022 15:36:50 +0800 Subject: [PATCH 06/13] Fix type check --- src/language-handlebars/printer-glimmer.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/language-handlebars/printer-glimmer.js b/src/language-handlebars/printer-glimmer.js index 176181d4cba6..79a152b643f6 100644 --- a/src/language-handlebars/printer-glimmer.js +++ b/src/language-handlebars/printer-glimmer.js @@ -30,6 +30,10 @@ const { isWhitespaceNode, } = require("./utils.js"); +/** + * @typedef {import("../document").Doc} Doc + */ + const NEWLINES_TO_PRESERVE_MAX = 2; // Formatter based on @glimmerjs/syntax's built-in test formatter: @@ -529,6 +533,7 @@ function printInverseBlockClosingMustache(node) { function printOpenBlock(path, print) { const node = path.getValue(); + /** @type {Doc[]} */ const parts = [ printOpeningBlockOpeningMustache(node), indent(printPath(path, print)), @@ -560,6 +565,7 @@ function printElseBlock(node, options) { function printElseIfLikeBlock(path, print, ifLikeKeyword) { const node = path.getValue(); const parentNode = path.getParentNode(1); + /** @type {Doc[]} */ const parts = [ printInverseBlockOpeningMustache(parentNode), indent(group(["else", line, ifLikeKeyword])), From 66765785e7f0a4bda5777de1ad39c214bf6b08c7 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Fri, 30 Dec 2022 16:01:17 +0800 Subject: [PATCH 07/13] Simplify logic --- src/language-handlebars/printer-glimmer.js | 45 +++++++++++----------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/src/language-handlebars/printer-glimmer.js b/src/language-handlebars/printer-glimmer.js index 79a152b643f6..c3b494babf62 100644 --- a/src/language-handlebars/printer-glimmer.js +++ b/src/language-handlebars/printer-glimmer.js @@ -534,23 +534,24 @@ function printInverseBlockClosingMustache(node) { function printOpenBlock(path, print) { const node = path.getValue(); /** @type {Doc[]} */ - const parts = [ - printOpeningBlockOpeningMustache(node), - indent(printPath(path, print)), - ]; + const parts = []; const paramsDoc = printParams(path, print); if (paramsDoc) { - parts.push(indent([line, group(paramsDoc)])); + parts.push(group(paramsDoc)); } if (isNonEmptyArray(node.program.blockParams)) { - parts.push(indent([line, printBlockParams(node.program)])); + parts.push(printBlockParams(node.program)); } - parts.push(softline, printOpeningBlockClosingMustache(node)); - - return group(parts); + return group([ + printOpeningBlockOpeningMustache(node), + printPath(path, print), + parts.length > 0 ? indent([line, join(line, parts)]) : "", + softline, + printOpeningBlockClosingMustache(node), + ]); } function printElseBlock(node, options) { @@ -565,20 +566,20 @@ function printElseBlock(node, options) { function printElseIfLikeBlock(path, print, ifLikeKeyword) { const node = path.getValue(); const parentNode = path.getParentNode(1); - /** @type {Doc[]} */ - const parts = [ - printInverseBlockOpeningMustache(parentNode), - indent(group(["else", line, ifLikeKeyword])), - indent([line, group(printParams(path, print))]), - ]; - - if (isNonEmptyArray(node.program.blockParams)) { - parts.push(indent([line, printBlockParams(node.program)])); - } - parts.push(softline, printInverseBlockClosingMustache(parentNode)); - - return group(parts); + return group([ + printInverseBlockOpeningMustache(parentNode), + group(["else", line, ifLikeKeyword]), + indent([ + line, + group(printParams(path, print)), + ...(isNonEmptyArray(node.program.blockParams) + ? [line, printBlockParams(node.program)] + : []), + ]), + softline, + printInverseBlockClosingMustache(parentNode), + ]); } function printCloseBlock(path, print, options) { From a611951008056e8da44e8c2d26e8f748cca0d50a Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Fri, 30 Dec 2022 10:23:23 -0500 Subject: [PATCH 08/13] add test for else if wrapping --- .../__snapshots__/jsfmt.spec.js.snap | 165 ++++++++++++++++++ .../handlebars/block-statement/if-else.hbs | 80 +++++++++ 2 files changed, 245 insertions(+) diff --git a/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap b/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap index 2c91abe68f60..ca4497f21dd0 100644 --- a/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap @@ -606,6 +606,86 @@ printWidth: 80 Another thing {{~/if~}} +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{#if a}} + 1 + {{else if b}} + 2 + {{else}} + 3 + {{/if}} +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ =====================================output=====================================

{{#if isAtWork}} @@ -713,6 +793,91 @@ printWidth: 80 {{~else if anotherCondition~}} Another thing {{~/if~}} + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{#if + a + }} + 1 + {{else + if + b + }} + 2 + {{else}} + 3 + {{/if}} +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
================================================================================ `; diff --git a/tests/format/handlebars/block-statement/if-else.hbs b/tests/format/handlebars/block-statement/if-else.hbs index f8594ea34e45..9130358dd6e2 100644 --- a/tests/format/handlebars/block-statement/if-else.hbs +++ b/tests/format/handlebars/block-statement/if-else.hbs @@ -106,3 +106,83 @@ {{~else if anotherCondition~}} Another thing {{~/if~}} + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{#if a}} + 1 + {{else if b}} + 2 + {{else}} + 3 + {{/if}} +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From a298c46a0cffc18b9e6a7a9d3c5b3f7bb0ea4c9d Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Fri, 30 Dec 2022 10:23:55 -0500 Subject: [PATCH 09/13] indent else if group --- src/language-handlebars/printer-glimmer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/language-handlebars/printer-glimmer.js b/src/language-handlebars/printer-glimmer.js index c3b494babf62..fa3e578e384a 100644 --- a/src/language-handlebars/printer-glimmer.js +++ b/src/language-handlebars/printer-glimmer.js @@ -569,7 +569,7 @@ function printElseIfLikeBlock(path, print, ifLikeKeyword) { return group([ printInverseBlockOpeningMustache(parentNode), - group(["else", line, ifLikeKeyword]), + indent(group(["else", line, ifLikeKeyword])), indent([ line, group(printParams(path, print)), From 458e2f0fcbfec8b9825e4a9742fced818e192861 Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Fri, 30 Dec 2022 11:04:18 -0500 Subject: [PATCH 10/13] don't group else if keywords --- src/language-handlebars/printer-glimmer.js | 2 +- .../block-statement/__snapshots__/jsfmt.spec.js.snap | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/language-handlebars/printer-glimmer.js b/src/language-handlebars/printer-glimmer.js index fa3e578e384a..55277f4c8e8d 100644 --- a/src/language-handlebars/printer-glimmer.js +++ b/src/language-handlebars/printer-glimmer.js @@ -569,7 +569,7 @@ function printElseIfLikeBlock(path, print, ifLikeKeyword) { return group([ printInverseBlockOpeningMustache(parentNode), - indent(group(["else", line, ifLikeKeyword])), + ["else", " ", ifLikeKeyword], indent([ line, group(printParams(path, print)), diff --git a/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap b/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap index ca4497f21dd0..99f53fa15e30 100644 --- a/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap @@ -834,8 +834,7 @@ printWidth: 80 a }} 1 - {{else - if + {{else if b }} 2 From 39cdd541c3854c1f20141870f733a040cf201e60 Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Fri, 30 Dec 2022 11:07:07 -0500 Subject: [PATCH 11/13] add test for custom else long block keyword --- .../__snapshots__/jsfmt.spec.js.snap | 18 ++++++++++++++++++ .../handlebars/block-statement/custom-else.hbs | 6 ++++++ 2 files changed, 24 insertions(+) diff --git a/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap b/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap index 99f53fa15e30..641470597c9c 100644 --- a/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap @@ -301,6 +301,12 @@ printWidth: 80 {{d}} {{/when}} +{{#abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst param param param as |foo|}} + 1 +{{else abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst param param param as |bar|}} + 2 +{{/abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst}} + =====================================output=====================================

{{#when isAtWork}} @@ -465,6 +471,18 @@ printWidth: 80 }} {{d}} {{/when}} + +{{#abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst + param param param + as |foo| +}} + 1 +{{else abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst + param param param + as |bar| +}} + 2 +{{/abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst}} ================================================================================ `; diff --git a/tests/format/handlebars/block-statement/custom-else.hbs b/tests/format/handlebars/block-statement/custom-else.hbs index f86228bf215c..7b5225cb89c8 100644 --- a/tests/format/handlebars/block-statement/custom-else.hbs +++ b/tests/format/handlebars/block-statement/custom-else.hbs @@ -138,3 +138,9 @@ {{else when abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz as |d|}} {{d}} {{/when}} + +{{#abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst param param param as |foo|}} + 1 +{{else abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst param param param as |bar|}} + 2 +{{/abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst}} From d3478fcd6812887822169273383e4f80cb3cfe84 Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Thu, 26 Jan 2023 09:50:15 -0500 Subject: [PATCH 12/13] move if-else max wrap test to print-width-5 subdir --- .../__snapshots__/jsfmt.spec.js.snap | 164 ------------------ .../handlebars/block-statement/if-else.hbs | 80 --------- .../__snapshots__/jsfmt.spec.js.snap | 30 ++++ .../block-statement/print-width-5/if-else.hbs | 7 + .../print-width-5/jsfmt.spec.js | 1 + 5 files changed, 38 insertions(+), 244 deletions(-) create mode 100644 tests/format/handlebars/block-statement/print-width-5/__snapshots__/jsfmt.spec.js.snap create mode 100644 tests/format/handlebars/block-statement/print-width-5/if-else.hbs create mode 100644 tests/format/handlebars/block-statement/print-width-5/jsfmt.spec.js diff --git a/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap b/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap index 641470597c9c..b519b203c234 100644 --- a/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap @@ -624,86 +624,6 @@ printWidth: 80 Another thing {{~/if~}} -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{#if a}} - 1 - {{else if b}} - 2 - {{else}} - 3 - {{/if}} -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- =====================================output=====================================

{{#if isAtWork}} @@ -811,90 +731,6 @@ printWidth: 80 {{~else if anotherCondition~}} Another thing {{~/if~}} - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{#if - a - }} - 1 - {{else if - b - }} - 2 - {{else}} - 3 - {{/if}} -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
================================================================================ `; diff --git a/tests/format/handlebars/block-statement/if-else.hbs b/tests/format/handlebars/block-statement/if-else.hbs index 9130358dd6e2..f8594ea34e45 100644 --- a/tests/format/handlebars/block-statement/if-else.hbs +++ b/tests/format/handlebars/block-statement/if-else.hbs @@ -106,83 +106,3 @@ {{~else if anotherCondition~}} Another thing {{~/if~}} - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{#if a}} - 1 - {{else if b}} - 2 - {{else}} - 3 - {{/if}} -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/format/handlebars/block-statement/print-width-5/__snapshots__/jsfmt.spec.js.snap b/tests/format/handlebars/block-statement/print-width-5/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 000000000000..0c71582c7066 --- /dev/null +++ b/tests/format/handlebars/block-statement/print-width-5/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,30 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`if-else.hbs - {"printWidth":5} format 1`] = ` +====================================options===================================== +parsers: ["glimmer"] +printWidth: 5 + | printWidth +=====================================input====================================== +{{#if a}} + 1 +{{else if b}} + 2 +{{else}} + 3 +{{/if}} + +=====================================output===================================== +{{#if + a +}} + 1 +{{else if + b +}} + 2 +{{else}} + 3 +{{/if}} +================================================================================ +`; diff --git a/tests/format/handlebars/block-statement/print-width-5/if-else.hbs b/tests/format/handlebars/block-statement/print-width-5/if-else.hbs new file mode 100644 index 000000000000..bc0ab1884a9e --- /dev/null +++ b/tests/format/handlebars/block-statement/print-width-5/if-else.hbs @@ -0,0 +1,7 @@ +{{#if a}} + 1 +{{else if b}} + 2 +{{else}} + 3 +{{/if}} diff --git a/tests/format/handlebars/block-statement/print-width-5/jsfmt.spec.js b/tests/format/handlebars/block-statement/print-width-5/jsfmt.spec.js new file mode 100644 index 000000000000..63b9732fdf80 --- /dev/null +++ b/tests/format/handlebars/block-statement/print-width-5/jsfmt.spec.js @@ -0,0 +1 @@ +run_spec(__dirname, ["glimmer"], { printWidth: 5 }); From 4415170d725345deac7ee63926b3624b217d17b4 Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Thu, 26 Jan 2023 09:57:14 -0500 Subject: [PATCH 13/13] add custom-else max wrap test --- .../__snapshots__/jsfmt.spec.js.snap | 51 +++++++++++++++++++ .../print-width-5/custom-else.hbs | 15 ++++++ 2 files changed, 66 insertions(+) create mode 100644 tests/format/handlebars/block-statement/print-width-5/custom-else.hbs diff --git a/tests/format/handlebars/block-statement/print-width-5/__snapshots__/jsfmt.spec.js.snap b/tests/format/handlebars/block-statement/print-width-5/__snapshots__/jsfmt.spec.js.snap index 0c71582c7066..8b868949a482 100644 --- a/tests/format/handlebars/block-statement/print-width-5/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/handlebars/block-statement/print-width-5/__snapshots__/jsfmt.spec.js.snap @@ -1,5 +1,56 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`custom-else.hbs - {"printWidth":5} format 1`] = ` +====================================options===================================== +parsers: ["glimmer"] +printWidth: 5 + | printWidth +=====================================input====================================== +{{#when a}} + 1 +{{else when c}} + 2 +{{else}} + 3 +{{/when}} + +{{#when a as |b|}} + {{b}} +{{else when c as |d|}} + {{d}} +{{else}} + 3 +{{/when}} + +=====================================output===================================== +{{#when + a +}} + 1 +{{else when + c +}} + 2 +{{else}} + 3 +{{/when}} + +{{#when + a + as |b| +}} + {{b}} +{{else when + c + as |d| +}} + {{d}} +{{else}} + 3 +{{/when}} +================================================================================ +`; + exports[`if-else.hbs - {"printWidth":5} format 1`] = ` ====================================options===================================== parsers: ["glimmer"] diff --git a/tests/format/handlebars/block-statement/print-width-5/custom-else.hbs b/tests/format/handlebars/block-statement/print-width-5/custom-else.hbs new file mode 100644 index 000000000000..5f0e48dea282 --- /dev/null +++ b/tests/format/handlebars/block-statement/print-width-5/custom-else.hbs @@ -0,0 +1,15 @@ +{{#when a}} + 1 +{{else when c}} + 2 +{{else}} + 3 +{{/when}} + +{{#when a as |b|}} + {{b}} +{{else when c as |d|}} + {{d}} +{{else}} + 3 +{{/when}}