diff --git a/packages/tailwindcss-language-server/src/server.ts b/packages/tailwindcss-language-server/src/server.ts index 8c185f4eb4d092a5859ed47602807dae7069136b..02fa41148088eae2cef30c902cfc26095a0f322a 100644 --- a/packages/tailwindcss-language-server/src/server.ts +++ b/packages/tailwindcss-language-server/src/server.ts @@ -176,29 +176,6 @@ onColorPresentation(params: ColorPresentationParams): Promise onCodeAction(params: CodeActionParams): Promise } -function getMode(config: any): unknown { - if (typeof config.mode !== 'undefined') { - return config.mode - } - if (Array.isArray(config.presets)) { - for (let i = config.presets.length - 1; i >= 0; i--) { - let mode = getMode(config.presets[i]) - if (typeof mode !== 'undefined') { - return mode - } - } - } -} - -function deleteMode(config: any): void { - delete config.mode - if (Array.isArray(config.presets)) { - for (let preset of config.presets) { - deleteMode(preset) - } - } -} - async function createProjectService( folder: string, connection: Connection, @@ -778,6 +755,7 @@ const { tailwindcss, postcss, resolveConfig } = state.modules const sepLocation = semver.gte(tailwindcss.version, '0.99.0') ? ['separator'] : ['options', 'separator'] + let presetModes: any[] = [] let presetVariants: any[] = [] let originalConfig: any @@ -793,8 +771,20 @@ } dset(exports, sepLocation, `__TWSEP__${separator}__TWSEP__`) exports[isV3 ? 'content' : 'purge'] = [] - let mode = getMode(exports) - deleteMode(exports) + let mode: any + if (Array.isArray(exports.presets)) { + for (let preset of exports.presets) { + if (typeof preset.mode !== 'undefined') { + mode = preset.mode + } + presetModes.push(preset.mode) + delete preset.mode + } + } + if (typeof exports.mode !== 'undefined') { + mode = exports.mode + } + delete exports.mode let isJit = isV3 || (state.modules.jit && mode === 'jit')