diff --git a/packages/tailwindcss-language-server/src/server.ts b/packages/tailwindcss-language-server/src/server.ts index 897acb5fba07da4a787f9fae79d68840b1e9cff1..190503a8a44871df2191a3ffa9e36a2815cd5ee1 100644 --- a/packages/tailwindcss-language-server/src/server.ts +++ b/packages/tailwindcss-language-server/src/server.ts @@ -1003,19 +1003,15 @@ if (state.jit) { state.jitContext = state.modules.jit.createContext.module(state) state.jitContext.tailwindConfig.separator = state.config.separator if (state.jitContext.getClassList) { - let classList = state.jitContext - .getClassList({ includeMetadata: true }) + state.classList = state.jitContext + .getClassList() .filter((className) => className !== '*') - state.classListContainsMetadata = classList.some((cls) => Array.isArray(cls)) - state.classList = classList.map((className) => { - if (Array.isArray(className)) { - return [ - className[0], - { color: getColor(state, className[0]), ...(className[1] ?? {}) }, - ] - } - return [className, { color: getColor(state, className) }] - }) + .map((className) => { + if (Array.isArray(className)) { + return [className[0], { color: getColor(state, className[0]), ...className[1] }] + } + return [className, { color: getColor(state, className) }] + }) } } else { delete state.jitContext diff --git a/packages/tailwindcss-language-service/src/completionProvider.ts b/packages/tailwindcss-language-service/src/completionProvider.ts index 0ca4912421f22290fee572e99e5184bc34314bb8..9f7a246cd3d96580cb705ca6551bac845ced5dd2 100644 --- a/packages/tailwindcss-language-service/src/completionProvider.ts +++ b/packages/tailwindcss-language-service/src/completionProvider.ts @@ -75,12 +75,15 @@ ) { // modifiers let modifiers: string[] let beforeSlash = partialClassName.split('/').slice(0, -1).join('/') + let classListContainsModifiers = state.classList.some( + (cls) => Array.isArray(cls) && cls[1].modifiers + ) - if (state.classListContainsMetadata) { + if (classListContainsModifiers) { let baseClassName = beforeSlash.slice(offset) modifiers = state.classList.find( (cls) => Array.isArray(cls) && cls[0] === baseClassName - )?.[1]?.modifiers + )?.[1].modifiers } else { let testClass = beforeSlash + '/[0]' let { rules } = jit.generateRules(state, [testClass]) diff --git a/packages/tailwindcss-language-service/src/util/state.ts b/packages/tailwindcss-language-service/src/util/state.ts index 51677af8015d2f6bafe6c13ec207043c40c1284b..cba7c64faf85135984c3ac79d964f6392f05b40a 100644 --- a/packages/tailwindcss-language-service/src/util/state.ts +++ b/packages/tailwindcss-language-service/src/util/state.ts @@ -118,7 +118,6 @@ editor?: EditorState jit?: boolean jitContext?: any classList?: Array<[string, { color: culori.Color | KeywordColor | null; modifiers?: string[] }]> - classListContainsMetadata?: boolean pluginVersions?: string completionItemData?: Record // postcssPlugins?: { before: any[]; after: any[] }