diff --git a/packages/tailwindcss-language-server/src/server.ts b/packages/tailwindcss-language-server/src/server.ts index d981fddb..41eacc63 100644 --- a/packages/tailwindcss-language-server/src/server.ts +++ b/packages/tailwindcss-language-server/src/server.ts @@ -79,7 +79,7 @@ import { getColor } from 'tailwindcss-language-service/src/util/color' import * as culori from 'culori' import namedColors from 'color-name' import tailwindPlugins from './lib/plugins' -import isExcluded from './util/isExcluded' +import isExcluded, { isExcludedOnComplete } from './util/isExcluded' import { getFileFsPath, normalizeFileNameToFsPath } from './util/uri' import { equal } from 'tailwindcss-language-service/src/util/array' import preflight from 'tailwindcss/lib/css/preflight.css' @@ -1169,7 +1169,7 @@ async function createProjectService( if (!document) return null let settings = await state.editor.getConfiguration(document.uri) if (!settings.tailwindCSS.suggestions) return null - if (await isExcluded(state, document)) return null + if (await isExcludedOnComplete(state, document, settings)) return null return doComplete(state, document, params.position, params.context) }, null) }, diff --git a/packages/tailwindcss-language-server/src/util/isExcluded.ts b/packages/tailwindcss-language-server/src/util/isExcluded.ts index 80ce605c..7ff93de4 100644 --- a/packages/tailwindcss-language-server/src/util/isExcluded.ts +++ b/packages/tailwindcss-language-server/src/util/isExcluded.ts @@ -1,6 +1,6 @@ import minimatch from 'minimatch' import * as path from 'path' -import { State } from 'tailwindcss-language-service/src/util/state' +import { Settings, State } from 'tailwindcss-language-service/src/util/state' import { TextDocument } from 'vscode-languageserver-textdocument' import { getFileFsPath } from './uri' @@ -19,3 +19,18 @@ export default async function isExcluded( return false } + +export async function isExcludedOnComplete( + state: State, + document: TextDocument, + settings: Settings, + file: string = getFileFsPath(document.uri) +): Promise { + for (let pattern of settings.tailwindCSS.files.exclude) { + if (minimatch(file, path.join(state.editor.folder, pattern))) { + return true + } + } + + return false +}