From fca0594d7d69f36893b5c83fe738114c4a014883 Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Tue, 18 Jun 2024 11:43:45 -0400 Subject: [PATCH 1/2] Pass URI to configuration call not a file path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit oops. Works fine in VSCode but not in some other LSPs (like Zed). It’s technically a malformed request on our side --- .../tailwindcss-language-server/src/tw.ts | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/packages/tailwindcss-language-server/src/tw.ts b/packages/tailwindcss-language-server/src/tw.ts index fd3286dd..e432763a 100644 --- a/packages/tailwindcss-language-server/src/tw.ts +++ b/packages/tailwindcss-language-server/src/tw.ts @@ -153,7 +153,9 @@ export class TW { // NOTE: We should eventually be smart about avoiding duplicate work. We do // not necessarily need to set up file watchers, search for projects, read // configs, etc… per folder. Some of this work should be sharable. - let results = await Promise.allSettled(folders.map((basePath) => this._initFolder(basePath))) + let results = await Promise.allSettled( + folders.map((basePath) => this._initFolder(URI.file(basePath))), + ) for (let [idx, result] of results.entries()) { if (result.status === 'rejected') { @@ -164,24 +166,15 @@ export class TW { await this.listenForEvents() } - private async _initFolder(base: string): Promise { + private async _initFolder(baseUri: URI): Promise { + let base = baseUri.fsPath let workspaceFolders: Array = [] let globalSettings = await this.settingsCache.get() let ignore = globalSettings.tailwindCSS.files.exclude // Get user languages for the given workspace folder - let userLanguages = globalSettings.tailwindCSS.includeLanguages - - try { - let folderSettings = await this.settingsCache.get(base) - userLanguages = folderSettings.tailwindCSS.includeLanguages - } catch (error) { - console.error( - 'Unable to get the settings for workspace folder. Using global settings instead.', - error, - ) - } - + let folderSettings = await this.settingsCache.get(baseUri.toString()) + let userLanguages = folderSettings.tailwindCSS.includeLanguages // Fall back to settings defined in `initializationOptions` if invalid if (!isObject(userLanguages)) { From 00488eec8e8688a1579814b0fabe7487a33d579f Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Tue, 18 Jun 2024 11:44:07 -0400 Subject: [PATCH 2/2] =?UTF-8?q?Don=E2=80=99t=20break=20when=20`settings.ed?= =?UTF-8?q?itor`=20is=20not=20defined?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also fixes an issue in Zed --- 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 6119aed0..bbed4f77 100644 --- a/packages/tailwindcss-language-server/src/projects.ts +++ b/packages/tailwindcss-language-server/src/projects.ts @@ -1040,7 +1040,7 @@ export async function createProjectService( if (state.enabled) { refreshDiagnostics() } - if (settings.editor.colorDecorators) { + if (settings.editor?.colorDecorators) { updateCapabilities() } else { connection.sendNotification('@/tailwindCSS/clearColors')