Skip to content

Commit 3ea9114

Browse files
Shinigami92ST-DDT
andauthored
Handle whitespace in interpolations (#448)
Co-authored-by: ST-DDT <[email protected]>
1 parent 2d9f897 commit 3ea9114

File tree

4 files changed

+52
-1
lines changed

4 files changed

+52
-1
lines changed

src/printer.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1553,8 +1553,10 @@ export class PugPrinter {
15531553
break;
15541554
case 'interpolated-code':
15551555
case 'end-pug-interpolation':
1556-
if (/^ .+$/.test(val)) {
1556+
if (/^ .+$/.test(val) || val === ' ') {
15571557
result += ' ';
1558+
} else if (/^.+ $/.test(val)) {
1559+
needsTrailingWhitespace = true;
15581560
}
15591561
break;
15601562
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
li #[b #{ key }:] #{ value }
2+
li #{ key } #{ value }
3+
li #[b #{ key }:] #[i= value]
4+
5+
li #[b #{ key }: ]#{ value }
6+
li #[b #{ key }: ]#[i= value]
7+
8+
li #[b #{ key } :]#{ value }
9+
li #[b #{ key } :]#[i= value]
10+
11+
div
12+
li #[b #{ key }:] #{ value }
13+
li #{ key } #{ value }
14+
li #[b #{ key }:] #[i= value]
15+
16+
li #[b #{ key }: ]#{ value }
17+
li #[b #{ key }: ]#[i= value]
18+
19+
li #[b #{ key } :]#{ value }
20+
li #[b #{ key } :]#[i= value]
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 handle whitespace in interpolations', () => {
6+
const { expected, actual } = compareFiles(__dirname);
7+
expect(actual).toBe(expected);
8+
});
9+
});
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
li #[b #{ key }:] #{ value }
2+
li #{ key } #{ value }
3+
li #[b #{ key }:] #[i= value]
4+
5+
li #[b #{ key }: ]#{ value }
6+
li #[b #{ key }: ]#[i= value]
7+
8+
li #[b #{ key } :]#{ value }
9+
li #[b #{ key } :]#[i= value]
10+
11+
div
12+
li #[b #{ key }:] #{ value }
13+
li #{ key } #{ value }
14+
li #[b #{ key }:] #[i= value]
15+
16+
li #[b #{ key }: ]#{ value }
17+
li #[b #{ key }: ]#[i= value]
18+
19+
li #[b #{ key } :]#{ value }
20+
li #[b #{ key } :]#[i= value]

0 commit comments

Comments
 (0)