Home

tailwind-ctp-intellisense @master - refs - log -
-
https://git.jolheiser.com/tailwind-ctp-intellisense.git
Tailwind intellisense + Catppuccin
tree log patch
register disposables
Brad Cornes <bradlc41@gmail.com>
3 years ago
1 changed files, 40 additions(+), 27 deletions(-)
M src/extension.tssrc/extension.ts
diff --git a/src/extension.ts b/src/extension.ts
index 91420975699d228dbe2e6a8b026c168967fde186..25f20e9615950cc9571a113fa6bf3f001149a02c 100755
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -62,7 +62,6 @@       : []
   }
   return _sortedWorkspaceFolders
 }
-Workspace.onDidChangeWorkspaceFolders(() => (_sortedWorkspaceFolders = undefined))
 
 function getOuterMostWorkspaceFolder(folder: WorkspaceFolder): WorkspaceFolder {
   let sorted = sortedWorkspaceFolders()
@@ -111,28 +110,30 @@ 
   // 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"
-  Workspace.onDidChangeConfiguration((event) => {
-    clients.forEach((client, key) => {
-      const folder = Workspace.getWorkspaceFolder(Uri.parse(key))
+  context.subscriptions.push(
+    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())) {
@@ -146,6 +147,13 @@         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)
@@ -159,6 +167,7 @@     }
 
     if (!outputChannel) {
       outputChannel = Window.createOutputChannel(CLIENT_NAME)
+      context.subscriptions.push(outputChannel)
       commands.executeCommand('setContext', 'tailwindCSS.hasOutputChannel', true)
     }
 
@@ -361,18 +370,22 @@ 
     bootWorkspaceClient(folder)
   }
 
-  Workspace.onDidOpenTextDocument(didOpenTextDocument)
+  context.subscriptions.push(Workspace.onDidOpenTextDocument(didOpenTextDocument))
   Workspace.textDocuments.forEach(didOpenTextDocument)
-  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()
+  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()
+        }
       }
-    }
-  })
+    })
+  )
 }
 
 export function deactivate(): Thenable<void> {