1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
diff --git a/packages/tailwindcss-language-service/src/diagnostics/getInvalidVariantDiagnostics.ts b/packages/tailwindcss-language-service/src/diagnostics/getInvalidVariantDiagnostics.ts
index b4191975a3730a7ed466964a3b27fcf002f9fc66..55cbce1903003ece7f8e54aae939e7fdd3856a8f 100644
--- a/packages/tailwindcss-language-service/src/diagnostics/getInvalidVariantDiagnostics.ts
+++ b/packages/tailwindcss-language-service/src/diagnostics/getInvalidVariantDiagnostics.ts
@@ -6,6 +6,7 @@ import { getLanguageBoundaries } from '../util/getLanguageBoundaries'
import { findAll, indexToPosition } from '../util/find'
import { closest } from '../util/closest'
import { absoluteRange } from '../util/absoluteRange'
+import dlv from 'dlv'
export function getInvalidVariantDiagnostics(
state: State,
@@ -26,6 +27,12 @@ if (!boundaries) return []
ranges.push(...boundaries.css)
}
+ let possibleVariants = Object.keys(state.variants)
+ if (state.jit) {
+ possibleVariants.unshift('responsive')
+ possibleVariants = possibleVariants.filter((v) => !state.screens.includes(v))
+ }
+
ranges.forEach((range) => {
let text = document.getText(range)
let matches = findAll(/(?:\s|^)@variants\s+(?<variants>[^{]+)/g, text)
@@ -36,13 +43,13 @@ let listStartIndex = match.index + match[0].length - match.groups.variants.length
for (let i = 0; i < variants.length; i += 2) {
let variant = variants[i].trim()
- if (Object.keys(state.variants).includes(variant)) {
+ if (possibleVariants.includes(variant)) {
continue
}
let message = `The variant '${variant}' does not exist.`
let suggestions: string[] = []
- let suggestion = closest(variant, Object.keys(state.variants))
+ let suggestion = closest(variant, possibleVariants)
if (suggestion) {
suggestions.push(suggestion)
|