Skip to content

Commit 794d9d1

Browse files
chimuraifisker
andauthored
bugfix(graphql): Keep useful empty lines in description (#13013)
Co-authored-by: fisker Cheung <[email protected]>
1 parent dd2af6f commit 794d9d1

File tree

4 files changed

+185
-4
lines changed

4 files changed

+185
-4
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#### Keep useful empty lines in description (#13013 by @chimurai)
2+
3+
<!-- prettier-ignore -->
4+
```graphql
5+
# Input
6+
"""
7+
First line
8+
9+
Second Line
10+
"""
11+
type Person {
12+
name: String
13+
}
14+
15+
# Prettier 2.7.0
16+
"""
17+
First line
18+
Second Line
19+
"""
20+
type Person {
21+
name: String
22+
}
23+
24+
25+
# Prettier main
26+
"""
27+
First line
28+
29+
Second Line
30+
"""
31+
type Person {
32+
name: String
33+
}
34+
```

src/language-graphql/printer-graphql.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,11 @@ function genericPrint(path, options, print) {
130130
lines[0] = lines[0].trim();
131131
}
132132

133-
return join(
134-
hardline,
135-
['"""', ...(lines.length > 0 ? lines : []), '"""'].filter(Boolean)
136-
);
133+
if (lines.every((line) => line === "")) {
134+
lines.length = 0;
135+
}
136+
137+
return join(hardline, ['"""', ...lines, '"""']);
137138
}
138139
return [
139140
'"',

tests/format/graphql/string/__snapshots__/jsfmt.spec.js.snap

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,55 @@ type Person {name: String}
3232
"""
3333
type Person {name: String}
3434
35+
36+
"""
37+
38+
39+
Empty lines before
40+
"""
41+
type Person {name: String}
42+
43+
"""
44+
Empty lines after
45+
46+
47+
"""
48+
type Person {name: String}
49+
50+
"""
51+
52+
53+
Empty lines around
54+
55+
56+
"""
57+
type Person {name: String}
58+
59+
"""
60+
First line
61+
62+
Second Line
63+
"""
64+
type Person {name: String}
65+
66+
"""
67+
68+
69+
First line
70+
71+
Second Line
72+
"""
73+
type Person {name: String}
74+
75+
"""
76+
First line
77+
78+
Second Line
79+
80+
81+
"""
82+
type Person {name: String}
83+
3584
=====================================output=====================================
3685
"""
3786
Customer
@@ -74,6 +123,54 @@ type Person {
74123
name: String
75124
}
76125
126+
"""
127+
Empty lines before
128+
"""
129+
type Person {
130+
name: String
131+
}
132+
133+
"""
134+
Empty lines after
135+
"""
136+
type Person {
137+
name: String
138+
}
139+
140+
"""
141+
Empty lines around
142+
"""
143+
type Person {
144+
name: String
145+
}
146+
147+
"""
148+
First line
149+
150+
Second Line
151+
"""
152+
type Person {
153+
name: String
154+
}
155+
156+
"""
157+
First line
158+
159+
Second Line
160+
"""
161+
type Person {
162+
name: String
163+
}
164+
165+
"""
166+
First line
167+
168+
Second Line
169+
"""
170+
type Person {
171+
name: String
172+
}
173+
77174
================================================================================
78175
`;
79176

tests/format/graphql/string/description.graphql

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,52 @@ type Person {name: String}
2323
2
2424
"""
2525
type Person {name: String}
26+
27+
28+
"""
29+
30+
31+
Empty lines before
32+
"""
33+
type Person {name: String}
34+
35+
"""
36+
Empty lines after
37+
38+
39+
"""
40+
type Person {name: String}
41+
42+
"""
43+
44+
45+
Empty lines around
46+
47+
48+
"""
49+
type Person {name: String}
50+
51+
"""
52+
First line
53+
54+
Second Line
55+
"""
56+
type Person {name: String}
57+
58+
"""
59+
60+
61+
First line
62+
63+
Second Line
64+
"""
65+
type Person {name: String}
66+
67+
"""
68+
First line
69+
70+
Second Line
71+
72+
73+
"""
74+
type Person {name: String}

0 commit comments

Comments
 (0)