Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit37fb53a

Browse files
[handlebars] group params in opening block statements (#14067)
Co-authored-by: fisker Cheung <lionkay@gmail.com>
1 parent310a5b1 commit37fb53a

File tree

9 files changed

+282
-50
lines changed

9 files changed

+282
-50
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
####Group params in opening block statements (#14067 by@jamescdavis)
2+
3+
This is a follow-up to#13930 to establish wrapping consistency between opening block statements and else blocks by
4+
grouping params in opening blocks. This causes params to break to a new line together and not be split across lines
5+
unless the length of params exceeds the print width. This also updates the else block wrapping to behave exactly the
6+
same as opening blocks.
7+
8+
<!-- prettier-ignore-->
9+
```hbs
10+
{{! Input }}
11+
{{#block param param param param param param param param param param as |blockParam|}}
12+
Hello
13+
{{else block param param param param param param param param param param as |blockParam|}}
14+
There
15+
{{/block}}
16+
17+
{{! Prettier stable }}
18+
{{#block
19+
param
20+
param
21+
param
22+
param
23+
param
24+
param
25+
param
26+
param
27+
param
28+
param
29+
as |blockParam|
30+
}}
31+
Hello
32+
{{else block param
33+
param
34+
param
35+
param
36+
param
37+
param
38+
param
39+
param
40+
param
41+
param}}
42+
There
43+
{{/block}}
44+
45+
{{! Prettier main }}
46+
{{#block
47+
param param param param param param param param param param
48+
as |blockParam|
49+
}}
50+
Hello
51+
{{else block
52+
param param param param param param param param param param
53+
as |blockParam|
54+
}}
55+
There
56+
{{/block}}
57+
```

‎src/language-handlebars/printer-glimmer.js‎

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ const {
3030
isWhitespaceNode,
3131
}=require("./utils.js");
3232

33+
/**
34+
*@typedef {import("../document").Doc} Doc
35+
*/
36+
3337
constNEWLINES_TO_PRESERVE_MAX=2;
3438

3539
// Formatter based on@glimmerjs/syntax's built-in test formatter:
@@ -529,27 +533,24 @@ function printInverseBlockClosingMustache(node) {
529533

530534
functionprintOpenBlock(path,print){
531535
constnode=path.getValue();
536+
/**@type {Doc[]} */
537+
constparts=[];
532538

533-
constopeningMustache=printOpeningBlockOpeningMustache(node);
534-
constclosingMustache=printOpeningBlockClosingMustache(node);
535-
536-
constattributes=[printPath(path,print)];
537-
538-
constparams=printParams(path,print);
539-
if(params){
540-
attributes.push(line,params);
539+
constparamsDoc=printParams(path,print);
540+
if(paramsDoc){
541+
parts.push(group(paramsDoc));
541542
}
542543

543544
if(isNonEmptyArray(node.program.blockParams)){
544-
constblock=printBlockParams(node.program);
545-
attributes.push(line,block);
545+
parts.push(printBlockParams(node.program));
546546
}
547547

548548
returngroup([
549-
openingMustache,
550-
indent(attributes),
549+
printOpeningBlockOpeningMustache(node),
550+
printPath(path,print),
551+
parts.length>0 ?indent([line,join(line,parts)]) :"",
551552
softline,
552-
closingMustache,
553+
printOpeningBlockClosingMustache(node),
553554
]);
554555
}
555556

@@ -564,24 +565,18 @@ function printElseBlock(node, options) {
564565

565566
functionprintElseIfLikeBlock(path,print,ifLikeKeyword){
566567
constnode=path.getValue();
567-
letblockParams=[];
568-
569-
if(isNonEmptyArray(node.program.blockParams)){
570-
blockParams=[line,printBlockParams(node.program)];
571-
}
572-
573568
constparentNode=path.getParentNode(1);
574569

575570
returngroup([
576571
printInverseBlockOpeningMustache(parentNode),
577-
indent(
578-
group([
579-
group(["else",line,ifLikeKeyword]),
580-
line,
581-
printParams(path,print),
582-
])
583-
),
584-
indent(blockParams),
572+
["else"," ",ifLikeKeyword],
573+
indent([
574+
line,
575+
group(printParams(path,print)),
576+
...(isNonEmptyArray(node.program.blockParams)
577+
?[line,printBlockParams(node.program)]
578+
:[]),
579+
]),
585580
softline,
586581
printInverseBlockClosingMustache(parentNode),
587582
]);

‎tests/format/handlebars/block-statement/__snapshots__/jsfmt.spec.js.snap‎

Lines changed: 77 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ printWidth: 80
1717
Hello
1818
{{/block}}
1919
20+
{{#block param param param param param param param param param param param hashKey=hashValue as |blockParam|}}
21+
Hello
22+
{{/block}}
23+
2024
{{#block param param param param param param param hashKey=HashValue hashKey=hashValue}}
2125
Hello
2226
{{/block}}
@@ -71,14 +75,7 @@ printWidth: 80
7175
}}{{/block}}
7276
7377
{{#block
74-
param
75-
param
76-
param
77-
param
78-
param
79-
param
80-
param
81-
hashKey=hashValue
78+
param param param param param param param hashKey=hashValue
8279
as |blockParam|
8380
}}
8481
Hello
@@ -92,26 +89,24 @@ printWidth: 80
9289
param
9390
param
9491
param
95-
hashKey=HashValue
92+
param
93+
param
94+
param
95+
param
9696
hashKey=hashValue
97+
as |blockParam|
9798
}}
9899
Hello
99100
{{/block}}
100101
101102
{{#block
102-
param
103-
param
104-
param
105-
param
106-
param
107-
param
108-
param
109-
param
110-
param
111-
param
112-
param
113-
param
114-
param
103+
param param param param param param param hashKey=HashValue hashKey=hashValue
104+
}}
105+
Hello
106+
{{/block}}
107+
108+
{{#block
109+
param param param param param param param param param param param paramparam
115110
}}
116111
Hello
117112
{{/block}}
@@ -294,6 +289,24 @@ printWidth: 80
294289
{{f}}
295290
{{/when}}
296291
292+
{{#when abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |b|}}
293+
{{b}}
294+
{{else when abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |d|}}
295+
{{d}}
296+
{{/when}}
297+
298+
{{#when abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz as |b|}}
299+
{{b}}
300+
{{else when abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz as |d|}}
301+
{{d}}
302+
{{/when}}
303+
304+
{{#abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst param param param as |foo|}}
305+
1
306+
{{else abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst param param param as |bar|}}
307+
2
308+
{{/abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst}}
309+
297310
=====================================output=====================================
298311
<h1>
299312
{{#whenisAtWork}}
@@ -419,7 +432,8 @@ printWidth: 80
419432
as |b|
420433
}}
421434
{{b}}
422-
{{else whenabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnop
435+
{{elsewhen
436+
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnop
423437
as |d|
424438
}}
425439
{{d}}
@@ -429,6 +443,46 @@ printWidth: 80
429443
}}
430444
{{f}}
431445
{{/when}}
446+
447+
{{#when
448+
abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy
449+
as |b|
450+
}}
451+
{{b}}
452+
{{elsewhen
453+
abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy
454+
as |d|
455+
}}
456+
{{d}}
457+
{{/when}}
458+
459+
{{#when
460+
abcdefghijklmnopqrstuvwxyz
461+
abcdefghijklmnopqrstuvwxyz
462+
abcdefghijklmnopqrstuvwxyz
463+
as |b|
464+
}}
465+
{{b}}
466+
{{elsewhen
467+
abcdefghijklmnopqrstuvwxyz
468+
abcdefghijklmnopqrstuvwxyz
469+
abcdefghijklmnopqrstuvwxyz
470+
as |d|
471+
}}
472+
{{d}}
473+
{{/when}}
474+
475+
{{#abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst
476+
param paramparam
477+
as |foo|
478+
}}
479+
1
480+
{{else abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst
481+
param paramparam
482+
as |bar|
483+
}}
484+
2
485+
{{/abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst}}
432486
================================================================================
433487
`;
434488

‎tests/format/handlebars/block-statement/block-statement.hbs‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
Hello
1010
{{/block}}
1111

12+
{{#blockparamparamparamparamparamparamparamparamparamparamparamhashKey=hashValueas |blockParam|}}
13+
Hello
14+
{{/block}}
15+
1216
{{#blockparamparamparamparamparamparamparamhashKey=HashValuehashKey=hashValue}}
1317
Hello
1418
{{/block}}

‎tests/format/handlebars/block-statement/custom-else.hbs‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,3 +126,21 @@
126126
{{else when abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz as |f|}}
127127
{{f}}
128128
{{/when}}
129+
130+
{{#whenabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyas |b|}}
131+
{{b}}
132+
{{else when abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy as |d|}}
133+
{{d}}
134+
{{/when}}
135+
136+
{{#whenabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzas |b|}}
137+
{{b}}
138+
{{else when abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz as |d|}}
139+
{{d}}
140+
{{/when}}
141+
142+
{{#abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstparamparamparamas |foo|}}
143+
1
144+
{{else abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst param param param as |bar|}}
145+
2
146+
{{/abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrst}}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp