From 726d8928849a37c9258bafac8f31f20b1ffc91e9 Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Fri, 28 Jun 2024 17:37:30 -0400 Subject: [PATCH 1/5] Normalize dynamically loaded content paths These were not being handled properly --- packages/tailwindcss-language-server/src/projects.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tailwindcss-language-server/src/projects.ts b/packages/tailwindcss-language-server/src/projects.ts index 5904ee91..ed667def 100644 --- a/packages/tailwindcss-language-server/src/projects.ts +++ b/packages/tailwindcss-language-server/src/projects.ts @@ -1552,7 +1552,7 @@ function getContentDocumentSelectorFromConfigFile( : path.resolve(contentBase, item), ) .map((item) => ({ - pattern: normalizePath(item), + pattern: normalizeDriveLetter(normalizePath(item)), priority: DocumentSelectorPriority.CONTENT_FILE, })) } From 34dc2a53ee632a9ffea25a3152f906c53904498e Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Fri, 28 Jun 2024 17:37:56 -0400 Subject: [PATCH 2/5] Normalize module dependency paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These are likely to be uppercase but just in case they’re not --- .../src/util/getModuleDependencies.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tailwindcss-language-server/src/util/getModuleDependencies.ts b/packages/tailwindcss-language-server/src/util/getModuleDependencies.ts index 8b700ee9..aee0119a 100644 --- a/packages/tailwindcss-language-server/src/util/getModuleDependencies.ts +++ b/packages/tailwindcss-language-server/src/util/getModuleDependencies.ts @@ -1,7 +1,7 @@ // https://github.com/tailwindlabs/tailwindcss/blob/bac5ecf0040aa9a788d1b22d706506146ee831ff/src/lib/getModuleDependencies.js import fs from 'fs' import path from 'path' -import { normalizePath } from '../utils' +import { normalizeDriveLetter, normalizePath } from '../utils' let jsExtensions = ['.js', '.cjs', '.mjs'] @@ -83,5 +83,5 @@ export function getModuleDependencies(absoluteFilePath: string): string[] { _getModuleDependencies(absoluteFilePath, path.dirname(absoluteFilePath), new Set()), ) .filter((file) => file !== absoluteFilePath) - .map((file) => normalizePath(file)) + .map((file) => normalizeDriveLetter(normalizePath(file))) } From e7e9eb7376f0a74b37821118de368a3e25643613 Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Fri, 28 Jun 2024 17:38:17 -0400 Subject: [PATCH 3/5] Normalize CSS config file path --- packages/tailwindcss-language-server/src/tw.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/tailwindcss-language-server/src/tw.ts b/packages/tailwindcss-language-server/src/tw.ts index 6c660c2c..169caa19 100644 --- a/packages/tailwindcss-language-server/src/tw.ts +++ b/packages/tailwindcss-language-server/src/tw.ts @@ -77,7 +77,9 @@ async function getConfigFileFromCssFile(cssFile: string): Promise if (!match) { return null } - return normalizePath(path.resolve(path.dirname(cssFile), match.groups.config.slice(1, -1))) + return normalizeDriveLetter( + normalizePath(path.resolve(path.dirname(cssFile), match.groups.config.slice(1, -1))), + ) } export class TW { @@ -334,7 +336,11 @@ export class TW { let isCssFile = isCssMatcher(`**/${CSS_GLOB}`) if (isCssFile && change.type !== FileChangeType.Deleted) { - let configPath = await getConfigFileFromCssFile(change.file) + // TODO: Determine if we can only use `normalizedFilename` + let configPath = + (await getConfigFileFromCssFile(normalizedFilename)) || + (await getConfigFileFromCssFile(change.file)) + if ( cssFileConfigMap.has(normalizedFilename) && cssFileConfigMap.get(normalizedFilename) !== configPath From 56cc084309ab1e78c395ea81c6bc269a54ebb5ee Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Fri, 28 Jun 2024 17:38:32 -0400 Subject: [PATCH 4/5] Normalize changed file paths in watcher --- packages/tailwindcss-language-server/src/projects.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/tailwindcss-language-server/src/projects.ts b/packages/tailwindcss-language-server/src/projects.ts index ed667def..6704c871 100644 --- a/packages/tailwindcss-language-server/src/projects.ts +++ b/packages/tailwindcss-language-server/src/projects.ts @@ -72,6 +72,7 @@ import { pathToFileURL, changeAffectsFile, normalizePath, + normalizeDriveLetter, } from './utils' import type { DocumentService } from './documents' import type { ProjectConfig } from './project-locator' @@ -266,7 +267,7 @@ export async function createProjectService( let isPackageMatcher = picomatch(`**/${PACKAGE_LOCK_GLOB}`, { dot: true }) for (let change of changes) { - let file = normalizePath(change.file) + let file = normalizeDriveLetter(normalizePath(change.file)) let isConfigFile = changeAffectsFile(file, [projectConfig.configPath]) let isDependency = changeAffectsFile(file, state.dependencies ?? []) From 7848122cc8aaeb750a1171ee47cbe8d331edb14c Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Fri, 28 Jun 2024 17:38:38 -0400 Subject: [PATCH 5/5] Normalize custom config file paths --- packages/tailwindcss-language-server/src/tw.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tailwindcss-language-server/src/tw.ts b/packages/tailwindcss-language-server/src/tw.ts index 169caa19..b073327b 100644 --- a/packages/tailwindcss-language-server/src/tw.ts +++ b/packages/tailwindcss-language-server/src/tw.ts @@ -193,7 +193,7 @@ export class TW { function getExplicitConfigFiles(settings: TailwindCssSettings) { function resolvePathForConfig(filepath: string) { - return normalizePath(path.resolve(userDefinedConfigBase, filepath)) + return normalizeDriveLetter(normalizePath(path.resolve(userDefinedConfigBase, filepath))) } let configFileOrFiles = settings.experimental.configFile