Skip to content

Commit aed6523

Browse files
jwerreShinigami92
andauthored
Transform trailing whitespace to recommended way (#418)
Co-authored-by: Shinigami92 <[email protected]>
1 parent 4ec814b commit aed6523

File tree

4 files changed

+38
-1
lines changed

4 files changed

+38
-1
lines changed

src/printer.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1479,6 +1479,8 @@ export class PugPrinter {
14791479
let val: string = token.val;
14801480
let needsTrailingWhitespace: boolean = false;
14811481

1482+
const endsWithWhitespace: boolean = val[val.length - 1] === ' ';
1483+
14821484
if (this.pipelessText) {
14831485
switch (this.previousToken?.type) {
14841486
case 'newline':
@@ -1499,7 +1501,7 @@ export class PugPrinter {
14991501
);
15001502
}
15011503
} else {
1502-
if (this.nextToken && val[val.length - 1] === ' ') {
1504+
if (this.nextToken && endsWithWhitespace) {
15031505
switch (this.nextToken.type) {
15041506
case 'interpolated-code':
15051507
case 'start-pug-interpolation':
@@ -1568,6 +1570,10 @@ export class PugPrinter {
15681570
result += ' ';
15691571
}
15701572

1573+
if (endsWithWhitespace && this.nextToken?.type === 'indent') {
1574+
result += '\n' + this.indentString.repeat(this.indentLevel + 1) + '|';
1575+
}
1576+
15711577
return result;
15721578
}
15731579

tests/issues/issue-417/formatted.pug

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
p Aliquam pulvinar enim eu enim finibus euismod.
2+
|
3+
a(href="https://example.com") Link
4+
|
5+
| Suspendisse suscipit nunc non mauris sodales elementum.
6+
7+
div
8+
p Aliquam pulvinar enim eu enim finibus euismod.
9+
p Aliquam pulvinar enim eu enim finibus euismod.
10+
|
11+
a(href="https://example.com") Link
12+
|
13+
| Suspendisse suscipit nunc non mauris sodales elementum.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { compareFiles } from 'tests/common';
2+
import { describe, expect, it } from 'vitest';
3+
4+
describe('Issues', () => {
5+
it('should add two empty piped lines before and after link tag', () => {
6+
const { expected, actual } = compareFiles(__dirname);
7+
expect(actual).toBe(expected);
8+
});
9+
});
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
p Aliquam pulvinar enim eu enim finibus euismod.
2+
a(href="https://example.com") Link
3+
| Suspendisse suscipit nunc non mauris sodales elementum.
4+
5+
div
6+
p Aliquam pulvinar enim eu enim finibus euismod.
7+
p Aliquam pulvinar enim eu enim finibus euismod.
8+
a(href="https://example.com") Link
9+
| Suspendisse suscipit nunc non mauris sodales elementum.

0 commit comments

Comments
 (0)