Skip to content

Commit 36f2ea4

Browse files
Make sure escapes in classes are preserved in string literals (tailwindlabs#286)
* Add tests for escapes * Make sure escapes in classes are preserved in string literals * Update changelog
1 parent 590715b commit 36f2ea4

File tree

4 files changed

+20
-2
lines changed

4 files changed

+20
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
### Changed
1111

1212
- Only remove duplicate Tailwind classes ([#277](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/277))
13+
- Make sure escapes in classes are preserved in string literals ([#286](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/286))
1314

1415
## [0.6.1] - 2024-05-31
1516

src/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -450,12 +450,12 @@ function sortStringLiteral(
450450
node.extra = {
451451
...node.extra,
452452
rawValue: result,
453-
raw: raw[0] + result + raw.slice(-1),
453+
raw: raw[0] + result.replace(/\\/g, '\\\\') + raw.slice(-1),
454454
}
455455
} else {
456456
// TypeScript (Literal)
457457
let raw = node.raw
458-
node.raw = raw[0] + result + raw.slice(-1)
458+
node.raw = raw[0] + result.replace(/\\/g, '\\\\') + raw.slice(-1)
459459
}
460460
return didChange
461461
}

tests/format.test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,15 @@ let javascript = [
9393
';<div class={`flex ` + ` ` + `text-red-500`} />',
9494
';<div class={`flex ` + ` ` + `text-red-500`} />',
9595
],
96+
[
97+
`;<div class={"before:content-['\\\\2248']"} />`,
98+
`;<div class={"before:content-['\\\\2248']"} />`,
99+
],
100+
101+
[
102+
`;<div class={\`before:content-['\\\\2248']\`} />`,
103+
`;<div class={\`before:content-['\\\\2248']\`} />`,
104+
],
96105
]
97106
javascript = javascript.concat(
98107
javascript.map((test) => [
@@ -141,6 +150,11 @@ let vue = [
141150
`<div :class="' sm:p-5 ' + ' flex ' + ' underline ' + ' sm:m-5 '"></div>`,
142151
`<div :class="'sm:p-5 ' + ' flex' + ' underline' + ' sm:m-5'"></div>`,
143152
],
153+
154+
[
155+
`<div :class="'before:content-[\\'\\\\2248\\']'" />`,
156+
`<div :class="'before:content-[\\'\\\\2248\\']'" />`,
157+
],
144158
]
145159

146160
let glimmer = [

tests/plugins.test.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,9 @@ import Custom from '../components/Custom.astro'
430430
`<div class={' flex ' + ' underline ' + ' block '}></div>`,
431431
`<div class={' flex ' + ' underline ' + ' block '}></div>`,
432432
],
433+
434+
// Escapes
435+
t`<div class={"before:content-['\\\\2248']"}></div>`,
433436
],
434437
},
435438
},

0 commit comments

Comments
 (0)