Skip to content

Commit f5e468d

Browse files
Fix @layer replacement bug (#1458)
Fixes #1457 - [x] need a bit of manual testing but I think everything is good
1 parent dbdc14f commit f5e468d

File tree

5 files changed

+19
-42
lines changed

5 files changed

+19
-42
lines changed

packages/tailwindcss-language-server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
"vite": "^6.3.5",
9797
"vite-tsconfig-paths": "^5.1.4",
9898
"vitest": "^3.2.1",
99-
"vscode-css-languageservice": "6.3.6",
99+
"vscode-css-languageservice": "6.3.7",
100100
"vscode-jsonrpc": "8.2.0",
101101
"vscode-languageclient": "8.1.0",
102102
"vscode-languageserver": "8.1.0",

packages/tailwindcss-language-server/src/language/rewriting.test.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
import { describe, expect, test } from 'vitest'
22
import { rewriteCss } from './rewriting'
3-
import dedent from 'dedent'
43

5-
// TODO: Remove once the bundled CSS language service is updated
6-
test('@layer statements are removed', () => {
4+
// https://github.com/tailwindlabs/tailwindcss-intellisense/issues/1457
5+
test('@layer statements inside comments do not break', () => {
76
let input = [
87
//
9-
'@layer theme, base, components, utilities;',
10-
'@import "tailwindcss";',
8+
'/* @layer',
9+
'*/',
10+
'@import "./path/to/a/file.css";',
11+
'',
12+
'@source "./**/*.{ts,tsx}";',
1113
]
1214

1315
let output = [
1416
//
15-
'', // wrong
16-
'@import "tailwindcss" ;',
17+
'/* @layer',
18+
'*/',
19+
'@import "./path/to/a/file.css" ;', // wrong
20+
'',
21+
'@source "./**/*.{ts,tsx}";',
1722
]
1823

1924
expect(rewriteCss(input.join('\n'))).toBe(output.join('\n'))
@@ -31,7 +36,7 @@ test('@layer blocks', () => {
3136

3237
let output = [
3338
//
34-
'@media(℘) {',
39+
'@layer utilities {',
3540
' .foo {',
3641
' color: red;',
3742
' }',

packages/tailwindcss-language-server/src/language/rewriting.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,6 @@ function replaceWithStyleRule(delta = 0) {
2929
* errors for things that aren't actually errors.
3030
*/
3131
export function rewriteCss(css: string) {
32-
// Remove inline `@layer` directives
33-
// TODO: This should be unnecessary once we have updated the bundled CSS
34-
// language service
35-
css = css.replace(/@layer\s+[^;{]+(;|$)/g, '')
36-
3732
css = css.replace(/@screen(\s+[^{]+){/g, replaceWithAtRule(-2))
3833
css = css.replace(/@variants(\s+[^{]+){/g, replaceWithAtRule())
3934
css = css.replace(/@responsive(\s*){/g, replaceWithAtRule())
@@ -47,7 +42,6 @@ export function rewriteCss(css: string) {
4742

4843
css = css.replace(/@(custom-variant)(\s+[^{]+){/g, replaceWithStyleRule())
4944
css = css.replace(/@(variant)(\s+[^{]+){/g, replaceWithStyleRule())
50-
css = css.replace(/@layer(\s+[^{]{2,}){/g, replaceWithAtRule(-3))
5145
css = css.replace(/@reference\s*([^;]{2,})/g, '@import $1')
5246

5347
css = css.replace(

packages/tailwindcss-language-server/tests/css/css-server.test.ts

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -618,17 +618,6 @@ defineTest({
618618

619619
// Symbols show up for @custom-variant
620620
expect(await doc.symbols()).toMatchObject([
621-
{
622-
kind: SymbolKind.Module,
623-
name: '@layer base',
624-
location: {
625-
uri: '{workspace:default}/file-1.css',
626-
range: {
627-
start: { line: 0, character: 0 },
628-
end: { line: 4, character: 1 },
629-
},
630-
},
631-
},
632621
{
633622
kind: SymbolKind.Class,
634623
name: '.foo',
@@ -640,17 +629,6 @@ defineTest({
640629
},
641630
},
642631
},
643-
{
644-
kind: SymbolKind.Module,
645-
name: '@layer utilities',
646-
location: {
647-
uri: '{workspace:default}/file-1.css',
648-
range: {
649-
start: { line: 5, character: 0 },
650-
end: { line: 9, character: 1 },
651-
},
652-
},
653-
},
654632
{
655633
kind: SymbolKind.Class,
656634
name: '.bar',

pnpm-lock.yaml

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)