diff --git a/src/extension.ts b/src/extension.ts index 25f20e9615950cc9571a113fa6bf3f001149a02c..91420975699d228dbe2e6a8b026c168967fde186 100755 --- a/src/extension.ts +++ b/src/extension.ts @@ -62,6 +62,7 @@ : [] } return _sortedWorkspaceFolders } +Workspace.onDidChangeWorkspaceFolders(() => (_sortedWorkspaceFolders = undefined)) function getOuterMostWorkspaceFolder(folder: WorkspaceFolder): WorkspaceFolder { let sorted = sortedWorkspaceFolders() @@ -110,30 +111,28 @@ // 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" - context.subscriptions.push( - Workspace.onDidChangeConfiguration((event) => { - clients.forEach((client, key) => { - const folder = Workspace.getWorkspaceFolder(Uri.parse(key)) + Workspace.onDidChangeConfiguration((event) => { + clients.forEach((client, key) => { + const folder = Workspace.getWorkspaceFolder(Uri.parse(key)) - if (event.affectsConfiguration('tailwindCSS', folder)) { - const userLanguages = getUserLanguages(folder) - if (userLanguages) { - const userLanguageIds = Object.keys(userLanguages) - const newLanguages = dedupe([...DEFAULT_LANGUAGES, ...userLanguageIds]) - if (!equal(newLanguages, languages.get(folder.uri.toString()))) { - languages.set(folder.uri.toString(), newLanguages) + if (event.affectsConfiguration('tailwindCSS', folder)) { + const userLanguages = getUserLanguages(folder) + if (userLanguages) { + const userLanguageIds = Object.keys(userLanguages) + const newLanguages = dedupe([...DEFAULT_LANGUAGES, ...userLanguageIds]) + if (!equal(newLanguages, languages.get(folder.uri.toString()))) { + languages.set(folder.uri.toString(), newLanguages) - if (client) { - clients.delete(folder.uri.toString()) - client.stop() - bootWorkspaceClient(folder) - } + if (client) { + clients.delete(folder.uri.toString()) + client.stop() + bootWorkspaceClient(folder) } } } - }) + } }) - ) + }) function bootWorkspaceClient(folder: WorkspaceFolder) { if (clients.has(folder.uri.toString())) { @@ -147,13 +146,6 @@ colorDecorationType.dispose() colorDecorationType = undefined } } - context.subscriptions.push({ - dispose() { - if (colorDecorationType) { - colorDecorationType.dispose() - } - }, - }) // placeholder so we don't boot another server before this one is ready clients.set(folder.uri.toString(), null) @@ -167,7 +159,6 @@ } if (!outputChannel) { outputChannel = Window.createOutputChannel(CLIENT_NAME) - context.subscriptions.push(outputChannel) commands.executeCommand('setContext', 'tailwindCSS.hasOutputChannel', true) } @@ -370,22 +361,18 @@ bootWorkspaceClient(folder) } - context.subscriptions.push(Workspace.onDidOpenTextDocument(didOpenTextDocument)) + Workspace.onDidOpenTextDocument(didOpenTextDocument) Workspace.textDocuments.forEach(didOpenTextDocument) - context.subscriptions.push( - Workspace.onDidChangeWorkspaceFolders((event) => { - _sortedWorkspaceFolders = undefined - - 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() - } + 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() } - }) - ) + } + }) } export function deactivate(): Thenable {