diff --git a/src/extension.ts b/src/extension.ts index 58816245045893bd980bcb630886245f11f6c559..d8db4b3143b96c0843102dc328cb48cd0b7ebbfd 100755 --- a/src/extension.ts +++ b/src/extension.ts @@ -16,7 +16,6 @@ SymbolInformation, Position, Range, TextEditorDecorationType, - RelativePattern, } from 'vscode' import { LanguageClient, LanguageClientOptions, TransportKind } from 'vscode-languageclient/node' import { DEFAULT_LANGUAGES } from './lib/languages' @@ -29,11 +28,8 @@ const CLIENT_ID = 'tailwindcss-intellisense' const CLIENT_NAME = 'Tailwind CSS IntelliSense' -const CONFIG_FILE_GLOB = 'tailwind.config.{js,cjs}' - let clients: Map = new Map() let languages: Map = new Map() -let searchedFolders: Set = new Set() let _sortedWorkspaceFolders: string[] | undefined function sortedWorkspaceFolders(): string[] { @@ -87,19 +83,6 @@ outputChannel.show() }) ) - let watcher = Workspace.createFileSystemWatcher(`**/${CONFIG_FILE_GLOB}`, false, true, true) - - watcher.onDidCreate((uri) => { - let folder = Workspace.getWorkspaceFolder(uri) - if (!folder) { - return - } - folder = getOuterMostWorkspaceFolder(folder) - bootWorkspaceClient(folder) - }) - - context.subscriptions.push(watcher) - // TODO: check if the actual language MAPPING changed // not just the language IDs // e.g. "plaintext" already exists but you change it from "html" to "css" @@ -134,13 +117,6 @@ // placeholder so we don't boot another server before this one is ready clients.set(folder.uri.toString(), null) - if (!languages.has(folder.uri.toString())) { - languages.set( - folder.uri.toString(), - dedupe([...DEFAULT_LANGUAGES, ...Object.keys(getUserLanguages(folder))]) - ) - } - let debugOptions = { execArgv: ['--nolazy', `--inspect=${6011 + clients.size}`], } @@ -279,7 +255,6 @@ synchronize: { configurationSection: ['editor', 'tailwindCSS'], }, } - let client = new LanguageClient(CLIENT_ID, CLIENT_NAME, serverOptions, clientOptions) client.onReady().then(() => { @@ -309,7 +284,7 @@ client.start() clients.set(folder.uri.toString(), client) } - async function didOpenTextDocument(document: TextDocument): Promise { + function didOpenTextDocument(document: TextDocument): void { // We are only interested in language mode text if (document.uri.scheme !== 'file') { return @@ -325,18 +300,11 @@ } // If we have nested workspace folders we only start a server on the outer most workspace folder. folder = getOuterMostWorkspaceFolder(folder) - if (searchedFolders.has(folder.uri.toString())) return - - searchedFolders.add(folder.uri.toString()) - - let [configFile] = await Workspace.findFiles( - new RelativePattern(folder, `**/${CONFIG_FILE_GLOB}`), - '**/node_modules/**', - 1 - ) - - if (!configFile) { - return + if (!languages.has(folder.uri.toString())) { + languages.set( + folder.uri.toString(), + dedupe([...DEFAULT_LANGUAGES, ...Object.keys(getUserLanguages())]) + ) } bootWorkspaceClient(folder) @@ -348,7 +316,6 @@ Workspace.onDidChangeWorkspaceFolders((event) => { for (let folder of event.removed) { let client = clients.get(folder.uri.toString()) if (client) { - searchedFolders.delete(folder.uri.toString()) clients.delete(folder.uri.toString()) client.stop() }