Home

tailwind-ctp-intellisense @master - refs - log -
-
https://git.jolheiser.com/tailwind-ctp-intellisense.git
Tailwind intellisense + Catppuccin
tree log patch
add tree view go to definition
Brad Cornes <bradlc41@gmail.com>
6 years ago
2 changed files, 49 additions(+), 31 deletions(-)
M src/extension.ts -> src/extension.ts
diff --git a/src/extension.ts b/src/extension.ts
index 9429c41ae405b98211d49dd9899ce3167dce8261..8f70f5fc2f01e7ab710a91d46e72b57f292ada54 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -14,7 +14,8 @@   Uri,
   commands,
   Selection,
   Position,
-  Range
+  Range,
+  TextEditorRevealType
 } from 'vscode'
 
 import {
@@ -76,34 +77,13 @@   let outputChannel: OutputChannel = Window.createOutputChannel(
     'lsp-multi-server-example'
   )
 
-  let files = await Workspace.findFiles(CONFIG_GLOB, '**/node_modules/**', 1)
-
-  if (!files.length) return
-
-  let configPath = files[0].fsPath
-  delete require.cache[configPath]
-
-  let refresh = createTreeView(configPath)
-  commands.registerCommand('tailwindcss.goToDefinition', () => {
-    // refresh()
-    // Window.showInformationMessage('Hello World!')
-    Workspace.openTextDocument(files[0]).then((doc: TextDocument) => {
-      Window.showTextDocument(doc).then((editor: TextEditor) => {
-        let start = new Position(0, 0)
-        let end = new Position(0, 0)
-        editor.revealRange(new Range(start, end))
-        editor.selection = new Selection(start, end)
-      })
-    })
-  })
-
-  function didOpenTextDocument(document: TextDocument): void {
-    if (
-      document.uri.scheme !== 'file' ||
-      LANGUAGES.indexOf(document.languageId) === -1
-    ) {
-      return
-    }
+  async function didOpenTextDocument(document: TextDocument): Promise<void> {
+    // if (
+    //   document.uri.scheme !== 'file' ||
+    //   LANGUAGES.indexOf(document.languageId) === -1
+    // ) {
+    //   return
+    // }
 
     let uri = document.uri
     let folder = Workspace.getWorkspaceFolder(uri)
@@ -112,10 +92,18 @@     // Single file languages like JSON might handle files outside the workspace folders.
     if (!folder) {
       return
     }
+
     // If we have nested workspace folders we only start a server on the outer most workspace folder.
     folder = getOuterMostWorkspaceFolder(folder)
 
     if (!clients.has(folder.uri.toString())) {
+      let files = await Workspace.findFiles(
+        CONFIG_GLOB,
+        '**/node_modules/**',
+        1
+      )
+      if (!files.length) return
+
       let debugOptions = {
         execArgv: ['--nolazy', `--inspect=${6011 + clients.size}`]
       }
@@ -139,6 +127,32 @@         'LSP Multi Server Example',
         serverOptions,
         clientOptions
       )
+
+      client.onReady().then(() => {
+        client.onNotification('tailwindcss/foundConfig', configPath => {
+          let refresh = createTreeView(configPath)
+        })
+        client.onNotification(
+          'tailwindcss/foundDefinition',
+          (configPath, pos) => {
+            Workspace.openTextDocument(configPath).then((doc: TextDocument) => {
+              Window.showTextDocument(doc).then((editor: TextEditor) => {
+                let start = new Position(pos[0], pos[1])
+                let end = new Position(pos[2], pos[3])
+                editor.revealRange(
+                  new Range(start, end),
+                  TextEditorRevealType.InCenter
+                )
+                editor.selection = new Selection(start, end)
+              })
+            })
+          }
+        )
+        commands.registerCommand('tailwindcss.goToDefinition', key => {
+          client.sendNotification('tailwindcss/findDefinition', [key])
+        })
+      })
+
       // client.onReady().then(() => {
       //   client.onNotification('tailwind/loaded', () => {
       //     console.log('loaded')
M src/treeView.ts -> src/treeView.ts
diff --git a/src/treeView.ts b/src/treeView.ts
index 6931c6cad12fd3fbc3a609dd3655e26d57d52cf4..13038fc2ee5b2458e598c80a8f6a97ceaa1e1e58 100644
--- a/src/treeView.ts
+++ b/src/treeView.ts
@@ -104,7 +104,9 @@             ? TreeItemCollapsibleState.Collapsed
             : TreeItemCollapsibleState.None,
           isObj ? undefined : configValueToString(item[key]),
           undefined,
-          isObj ? undefined : command
+          isObj
+            ? undefined
+            : { ...command, arguments: [element.key.concat(key)] }
         )
         let color = getSvgColorFromValue(item[key])
 
@@ -146,7 +148,9 @@                   'icons',
                   ICONS[key]
                 )
               : undefined,
-            isObject(this.config[key]) ? undefined : command
+            isObject(this.config[key])
+              ? undefined
+              : { ...command, arguments: [[key]] }
           )
       )
   }