From 89ca6d80ba298fffca1618b81299cc5dbce2b8de Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Fri, 25 Oct 2024 16:19:35 -0400 Subject: [PATCH 1/3] Show all potential class conflicts in v4 projects --- .../tests/diagnostics/diagnostics.test.js | 61 +++++++++++++++++++ .../diagnostics/getCssConflictDiagnostics.ts | 2 +- 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/packages/tailwindcss-language-server/tests/diagnostics/diagnostics.test.js b/packages/tailwindcss-language-server/tests/diagnostics/diagnostics.test.js index 67d83fc4..9321b56d 100644 --- a/packages/tailwindcss-language-server/tests/diagnostics/diagnostics.test.js +++ b/packages/tailwindcss-language-server/tests/diagnostics/diagnostics.test.js @@ -254,3 +254,64 @@ withFixture('v4/with-prefix', (c) => { expected: [], }) }) + +withFixture('v4/basic', (c) => { + function testMatch(name, { code, expected, language = 'html' }) { + test.only(name, async () => { + let promise = new Promise((resolve) => { + c.onNotification('textDocument/publishDiagnostics', ({ diagnostics }) => { + resolve(diagnostics) + }) + }) + + let doc = await c.openDocument({ text: code, lang: language }) + let diagnostics = await promise + + expected = JSON.parse(JSON.stringify(expected).replaceAll('{{URI}}', doc.uri)) + + expect(diagnostics).toMatchObject(expected) + }) + } + + testMatch('conflicts show even when unknown classes are present', { + code: `
testing
`, + expected: [ + { + code: 'cssConflict', + message: "'max-w-4xl' applies the same CSS properties as 'max-w-6xl'.", + className: { + className: 'max-w-4xl', + classList: { + classList: 'foo max-w-4xl max-w-6xl hover:underline', + }, + }, + otherClassNames: [ + { + className: 'max-w-6xl', + classList: { + classList: 'foo max-w-4xl max-w-6xl hover:underline', + }, + }, + ], + }, + { + code: 'cssConflict', + message: "'max-w-6xl' applies the same CSS properties as 'max-w-4xl'.", + className: { + className: 'max-w-6xl', + classList: { + classList: 'foo max-w-4xl max-w-6xl hover:underline', + }, + }, + otherClassNames: [ + { + className: 'max-w-4xl', + classList: { + classList: 'foo max-w-4xl max-w-6xl hover:underline', + }, + }, + ], + }, + ], + }) +}) diff --git a/packages/tailwindcss-language-service/src/diagnostics/getCssConflictDiagnostics.ts b/packages/tailwindcss-language-service/src/diagnostics/getCssConflictDiagnostics.ts index a3be599e..ec6dc166 100644 --- a/packages/tailwindcss-language-service/src/diagnostics/getCssConflictDiagnostics.ts +++ b/packages/tailwindcss-language-service/src/diagnostics/getCssConflictDiagnostics.ts @@ -353,7 +353,7 @@ function* findConflicts( conflictingClassNames.push(otherClassName) } - if (conflictingClassNames.length === 0) return + if (conflictingClassNames.length === 0) continue yield [className, conflictingClassNames] } From c1e51e000e3070550513383f8f0f143afb59f400 Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Fri, 25 Oct 2024 16:20:33 -0400 Subject: [PATCH 2/3] Update changelog --- packages/vscode-tailwindcss/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/vscode-tailwindcss/CHANGELOG.md b/packages/vscode-tailwindcss/CHANGELOG.md index b2094667..612a7268 100644 --- a/packages/vscode-tailwindcss/CHANGELOG.md +++ b/packages/vscode-tailwindcss/CHANGELOG.md @@ -6,6 +6,7 @@ - Properly validate `theme(…)` function paths in v4 ([#1074](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1074)) - Support loading TypeScript configs and plugins in v4 projects ([#1076](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1076)) - Show colors for logical border properties ([#1075](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1075)) +- Show all potential class conflicts in v4 projects ([#1077](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1077)) ## 0.12.12 From b754d58fa876fca75a282df86cc6505a46ff9d15 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Fri, 8 Nov 2024 15:03:49 +0100 Subject: [PATCH 3/3] remove `.only` --- .../tests/diagnostics/diagnostics.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tailwindcss-language-server/tests/diagnostics/diagnostics.test.js b/packages/tailwindcss-language-server/tests/diagnostics/diagnostics.test.js index 9321b56d..48cdd4f7 100644 --- a/packages/tailwindcss-language-server/tests/diagnostics/diagnostics.test.js +++ b/packages/tailwindcss-language-server/tests/diagnostics/diagnostics.test.js @@ -257,7 +257,7 @@ withFixture('v4/with-prefix', (c) => { withFixture('v4/basic', (c) => { function testMatch(name, { code, expected, language = 'html' }) { - test.only(name, async () => { + test(name, async () => { let promise = new Promise((resolve) => { c.onNotification('textDocument/publishDiagnostics', ({ diagnostics }) => { resolve(diagnostics)