diff --git a/packages/tailwindcss-language-server/tests/diagnostics/diagnostics.test.js b/packages/tailwindcss-language-server/tests/diagnostics/diagnostics.test.js index df3a58c4..42faee53 100644 --- a/packages/tailwindcss-language-server/tests/diagnostics/diagnostics.test.js +++ b/packages/tailwindcss-language-server/tests/diagnostics/diagnostics.test.js @@ -433,7 +433,7 @@ defineTest({ 'package.json': json` { "dependencies": { - "tailwindcss": "0.0.0-insiders.efe084b" + "tailwindcss": "0.0.0-insiders.249bed0" } } `, @@ -447,6 +447,7 @@ defineTest({ settings: { tailwindCSS: { lint: { suggestCanonicalClasses: 'warning' }, + rootFontSize: 16, }, }, }), @@ -454,7 +455,7 @@ defineTest({ handle: async ({ client }) => { let doc = await client.open({ lang: 'html', - text: '
', + text: '
', }) let diagnostics = await doc.diagnostics() @@ -480,6 +481,16 @@ defineTest({ severity: 2, suggestions: ['text-[red]/50'], }, + { + code: 'suggestCanonicalClasses', + message: 'The class `mt-[16px]` can be written as `mt-4`', + range: { + start: { line: 0, character: 47 }, + end: { line: 0, character: 56 }, + }, + severity: 2, + suggestions: ['mt-4'], + }, ]) }, }) diff --git a/packages/tailwindcss-language-service/src/diagnostics/canonical-classes.ts b/packages/tailwindcss-language-service/src/diagnostics/canonical-classes.ts index c47c40ce..3f30f337 100644 --- a/packages/tailwindcss-language-service/src/diagnostics/canonical-classes.ts +++ b/packages/tailwindcss-language-service/src/diagnostics/canonical-classes.ts @@ -37,7 +37,9 @@ export async function getSuggestCanonicalClassesDiagnostics( // diagnostics in a given class list. for (let className of classNames) { - let canonicalized = state.designSystem.canonicalizeCandidates([className.className])[0] + let canonicalized = state.designSystem.canonicalizeCandidates([className.className], { + rem: settings.tailwindCSS.rootFontSize, + })[0] let isCanonical = canonicalized === className.className if (isCanonical) continue diff --git a/packages/tailwindcss-language-service/src/util/v4/design-system.ts b/packages/tailwindcss-language-service/src/util/v4/design-system.ts index 3b3e3153..2ddcc2b3 100644 --- a/packages/tailwindcss-language-service/src/util/v4/design-system.ts +++ b/packages/tailwindcss-language-service/src/util/v4/design-system.ts @@ -29,6 +29,10 @@ export interface ThemeEntry { name: string } +export interface CanonicalizeOptions { + rem?: number +} + export interface DesignSystem { theme: Theme variants: Map @@ -45,7 +49,7 @@ export interface DesignSystem { invalidCandidates?: Set // Added in v4.1.15 - canonicalizeCandidates?(classes: string[]): string[] + canonicalizeCandidates?(classes: string[], options?: CanonicalizeOptions): string[] } export interface DesignSystem {