From 4e8918ad8cd49128a160e9f800849413a50d3481 Mon Sep 17 00:00:00 2001 From: Brad Cornes Date: Mon, 6 Dec 2021 15:40:54 +0000 Subject: [PATCH] Disable variant order linting and sorting for tailwindcss v3 --- .../src/completionProvider.ts | 14 ++++++++++---- .../getRecommendedVariantOrderDiagnostics.ts | 3 +++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/tailwindcss-language-service/src/completionProvider.ts b/packages/tailwindcss-language-service/src/completionProvider.ts index d7e9155..f12308b 100644 --- a/packages/tailwindcss-language-service/src/completionProvider.ts +++ b/packages/tailwindcss-language-service/src/completionProvider.ts @@ -123,13 +123,19 @@ export function completionsFromClassList( let items: CompletionItem[] = [] if (!important) { + let shouldSortVariants = !semver.gte(state.version, '2.99.0') + items.push( ...Object.entries(state.variants) .filter(([variant]) => !existingVariants.includes(variant)) .map(([variant, definition], index) => { - let resultingVariants = [...existingVariants, variant].sort( - (a, b) => allVariants.indexOf(b) - allVariants.indexOf(a) - ) + let resultingVariants = [...existingVariants, variant] + + if (shouldSortVariants) { + resultingVariants = resultingVariants.sort( + (a, b) => allVariants.indexOf(b) - allVariants.indexOf(a) + ) + } return { label: variant + sep, @@ -146,7 +152,7 @@ export function completionsFromClassList( range: replacementRange, }, additionalTextEdits: - resultingVariants.length > 1 + shouldSortVariants && resultingVariants.length > 1 ? [ { newText: diff --git a/packages/tailwindcss-language-service/src/diagnostics/getRecommendedVariantOrderDiagnostics.ts b/packages/tailwindcss-language-service/src/diagnostics/getRecommendedVariantOrderDiagnostics.ts index bfcd601..2361957 100644 --- a/packages/tailwindcss-language-service/src/diagnostics/getRecommendedVariantOrderDiagnostics.ts +++ b/packages/tailwindcss-language-service/src/diagnostics/getRecommendedVariantOrderDiagnostics.ts @@ -5,6 +5,7 @@ import { findClassListsInDocument, getClassNamesInClassList } from '../util/find import * as jit from '../util/jit' import { getVariantsFromClassName } from '../util/getVariantsFromClassName' import { equalExact } from '../util/array' +import semver from 'semver' export async function getRecommendedVariantOrderDiagnostics( state: State, @@ -13,6 +14,8 @@ export async function getRecommendedVariantOrderDiagnostics( ): Promise { if (!state.jit) return [] + if (semver.gte(state.version, '2.99.0')) return [] + let severity = settings.tailwindCSS.lint.recommendedVariantOrder if (severity === 'ignore') return []