Home

tailwind-ctp-intellisense @master - refs - log -
-
https://git.jolheiser.com/tailwind-ctp-intellisense.git
Tailwind intellisense + Catppuccin
tree log patch
Only watch directories up to workspace root (#709) * Don't watch beyond workspace root * Catch errors when adding paths to chokidar watcher * Normalize paths * wip
Signature
-----BEGIN PGP SIGNATURE----- wsBcBAABCAAQBQJj07RsCRBK7hj4Ov3rIwAApbkIAF4GmCfBpc0edO1DnFag8pq/ Ky8MPjoT5OIcnnwhysl2U+LOVUDy3pqdj0WuJl40ss0rO4tB4mFonIWXQa32akZL 6wHxG4KrtkX8v0/yT71XwohCGi5YsU6b4YybUI4OfWpzuzOsXcJ7uNYRsxuZWj8o ZKNDEuFDHS+HgN1FVHgFPPC79j30jmTr7b1cSnguIvuBrtSoyOl9/JDwuJMhUj1F 05kEjgJgnHG9w/+7PzuFWxFqneirQ16a50paj5+ixiQyNm7fujbKUhMqXe0a8ZX7 GhHbxDYd6h0qn4q/IDsO23UGnP7WxOkHrSZUr+A9q0SL7zGlifu368EulKKBCSI= =WmO5 -----END PGP SIGNATURE-----
Brad Cornes <hello@bradley.dev>
2 years ago
2 changed files, 23 additions(+), 11 deletions(-)
M packages/tailwindcss-language-server/src/server.ts -> packages/tailwindcss-language-server/src/server.ts
diff --git a/packages/tailwindcss-language-server/src/server.ts b/packages/tailwindcss-language-server/src/server.ts
index 67bd665e1933777d009289d1a5844cf372d62eb5..113231e74dc74097a31f1bdbb810d8691460e9f5 100644
--- a/packages/tailwindcss-language-server/src/server.ts
+++ b/packages/tailwindcss-language-server/src/server.ts
@@ -346,16 +346,22 @@ }
 
 // We need to add parent directories to the watcher:
 // https://github.com/microsoft/vscode/issues/60813
-function getWatchPatternsForFile(file: string): string[] {
+function getWatchPatternsForFile(file: string, root: string): string[] {
   let tmp: string
   let dir = path.dirname(file)
   let patterns: string[] = [file, dir]
+  if (dir === root) {
+    return patterns
+  }
   while (true) {
     dir = path.dirname((tmp = dir))
     if (tmp === dir) {
       break
     } else {
       patterns.push(dir)
+      if (dir === root) {
+        break
+      }
     }
   }
   return patterns
@@ -440,8 +446,8 @@     try {
       deps = getModuleDependencies(projectConfig.configPath)
     } catch {}
     watchPatterns([
-      ...getWatchPatternsForFile(projectConfig.configPath),
-      ...deps.flatMap((dep) => getWatchPatternsForFile(dep)),
+      ...getWatchPatternsForFile(projectConfig.configPath, projectConfig.folder),
+      ...deps.flatMap((dep) => getWatchPatternsForFile(dep, projectConfig.folder)),
     ])
   }
 
@@ -459,7 +465,7 @@     for (let change of changes) {
       let file = normalizePath(change.file)
 
       let isConfigFile = changeAffectsFile(file, [projectConfig.configPath])
-      let isDependency = changeAffectsFile(change.file, state.dependencies ?? [])
+      let isDependency = changeAffectsFile(file, state.dependencies ?? [])
       let isPackageFile = minimatch(file, `**/${PACKAGE_LOCK_GLOB}`, { dot: true })
 
       if (!isConfigFile && !isDependency && !isPackageFile) continue
@@ -564,7 +570,7 @@     if (!configPath) {
       throw new SilentError('No config file found.')
     }
 
-    watchPatterns(getWatchPatternsForFile(configPath))
+    watchPatterns(getWatchPatternsForFile(configPath, projectConfig.folder))
 
     const pnpPath = findUp.sync(
       (dir) => {
@@ -576,7 +582,7 @@         pnpFile = path.join(dir, '.pnp.cjs')
         if (findUp.sync.exists(pnpFile)) {
           return pnpFile
         }
-        if (dir === folder) {
+        if (dir === path.normalize(folder)) {
           return findUp.stop
         }
       },
@@ -1062,7 +1068,11 @@     //   chokidarWatcher?.unwatch(state.dependencies)
     // }
     state.dependencies = getModuleDependencies(state.configPath)
     // chokidarWatcher?.add(state.dependencies)
-    watchPatterns((state.dependencies ?? []).flatMap((dep) => getWatchPatternsForFile(dep)))
+    watchPatterns(
+      (state.dependencies ?? []).flatMap((dep) =>
+        getWatchPatternsForFile(dep, projectConfig.folder)
+      )
+    )
 
     state.configId = getConfigId(state.configPath, state.dependencies)
 
@@ -1515,7 +1525,7 @@   let match = css.match(/@config\s*(?<config>'[^']+'|"[^"]+")/)
   if (!match) {
     return null
   }
-  return path.resolve(path.dirname(cssFile), match.groups.config.slice(1, -1))
+  return normalizePath(path.resolve(path.dirname(cssFile), match.groups.config.slice(1, -1)))
 }
 
 function getPackageRoot(cwd: string, rootDir: string) {
@@ -1526,7 +1536,7 @@         let pkgJson = path.join(dir, 'package.json')
         if (findUp.sync.exists(pkgJson)) {
           return pkgJson
         }
-        if (dir === rootDir) {
+        if (dir === path.normalize(rootDir)) {
           return findUp.stop
         }
       },
@@ -1606,7 +1616,7 @@     let globalSettings = await getConfiguration()
     let ignore = globalSettings.tailwindCSS.files.exclude
     let configFileOrFiles = globalSettings.tailwindCSS.experimental.configFile
 
-    let base = normalizeFileNameToFsPath(this.initializeParams.rootPath)
+    let base = normalizePath(normalizeFileNameToFsPath(this.initializeParams.rootPath))
     let cssFileConfigMap: Map<string, string> = new Map()
     let configTailwindVersionMap: Map<string, string> = new Map()
 
@@ -1640,7 +1650,7 @@       workspaceFolders = Object.entries(configFiles).map(
         ([relativeConfigPath, relativeDocumentSelectorOrSelectors]) => {
           return {
             folder: base,
-            configPath: path.resolve(userDefinedConfigBase, relativeConfigPath),
+            configPath: normalizePath(path.resolve(userDefinedConfigBase, relativeConfigPath)),
             documentSelector: [].concat(relativeDocumentSelectorOrSelectors).map((selector) => ({
               priority: DocumentSelectorPriority.USER_CONFIGURED,
               pattern: normalizePath(path.resolve(userDefinedConfigBase, selector)),
M packages/tailwindcss-language-server/src/util/getModuleDependencies.ts -> packages/tailwindcss-language-server/src/util/getModuleDependencies.ts
diff --git a/packages/tailwindcss-language-server/src/util/getModuleDependencies.ts b/packages/tailwindcss-language-server/src/util/getModuleDependencies.ts
index feae51c6e4487d9bf2608dbfbd1f453454ba0cd6..84de7f88c31303f29c41a23b081f0e28dd5938ba 100644
--- a/packages/tailwindcss-language-server/src/util/getModuleDependencies.ts
+++ b/packages/tailwindcss-language-server/src/util/getModuleDependencies.ts
@@ -2,11 +2,13 @@ import fs from 'fs'
 import path from 'path'
 import resolve from 'resolve'
 import detective from 'detective'
+import normalizePath from 'normalize-path'
 
 export function getModuleDependencies(modulePath: string): string[] {
   return _getModuleDependencies(modulePath)
     .map(({ file }) => file)
     .filter((file) => file !== modulePath)
+    .map((file) => normalizePath(file))
 }
 
 function createModule(file) {