From 609e8df78636c4e02a86bbec315823586f5908b0 Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Tue, 11 Feb 2025 15:02:00 -0500 Subject: [PATCH 1/2] Show warning when loading a config in v3 fails --- packages/tailwindcss-language-server/src/projects.ts | 11 ++++++++++- .../tailwindcss-language-server/src/util/error.ts | 10 ++++++++++ packages/vscode-tailwindcss/src/extension.ts | 7 +++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/packages/tailwindcss-language-server/src/projects.ts b/packages/tailwindcss-language-server/src/projects.ts index 5d9e511a..b55ee078 100644 --- a/packages/tailwindcss-language-server/src/projects.ts +++ b/packages/tailwindcss-language-server/src/projects.ts @@ -19,7 +19,7 @@ import type { import { FileChangeType } from 'vscode-languageserver/node' import type { TextDocument } from 'vscode-languageserver-textdocument' import { URI } from 'vscode-uri' -import { showError, SilentError } from './util/error' +import { showError, showWarning, SilentError } from './util/error' import * as path from 'node:path' import * as fs from 'node:fs' import findUp from 'find-up' @@ -838,6 +838,15 @@ export async function createProjectService( originalConfig = await loadConfig.module(state.configPath) originalConfig = originalConfig.default ?? originalConfig state.jit = true + } catch (err) { + // The user's config failed to load in v3 so we need to fallback + originalConfig = await resolveConfig.module({}) + state.jit = true + + // And warn the user + console.error(`Unable to load config file at: ${state.configPath}`) + console.error(err) + showWarning(connection, 'Tailwind CSS is unable to load your config file', err) } finally { hook.unhook() } diff --git a/packages/tailwindcss-language-server/src/util/error.ts b/packages/tailwindcss-language-server/src/util/error.ts index 53222fcf..26698b74 100644 --- a/packages/tailwindcss-language-server/src/util/error.ts +++ b/packages/tailwindcss-language-server/src/util/error.ts @@ -32,6 +32,16 @@ export function showError( // } } +export function showWarning( + connection: Connection, + message: string = 'Tailwind CSS', + err: any, +): void { + connection.sendNotification('@/tailwindCSS/warn', { + message: formatError(message, err, false), + }) +} + export function SilentError(message: string) { this.name = 'SilentError' this.message = message diff --git a/packages/vscode-tailwindcss/src/extension.ts b/packages/vscode-tailwindcss/src/extension.ts index 4f9f0d50..c0c7b9e7 100755 --- a/packages/vscode-tailwindcss/src/extension.ts +++ b/packages/vscode-tailwindcss/src/extension.ts @@ -532,6 +532,7 @@ export async function activate(context: ExtensionContext) { let client = new LanguageClient(CLIENT_ID, CLIENT_NAME, serverOptions, clientOptions) client.onNotification('@/tailwindCSS/error', showError) + client.onNotification('@/tailwindCSS/warn', showWarning) client.onNotification('@/tailwindCSS/clearColors', clearColors) client.onNotification('@/tailwindCSS/projectInitialized', updateActiveTextEditorContext) client.onNotification('@/tailwindCSS/projectReset', updateActiveTextEditorContext) @@ -548,6 +549,12 @@ export async function activate(context: ExtensionContext) { commands.executeCommand('tailwindCSS.showOutput') } + async function showWarning({ message }: ErrorNotification) { + let action = await Window.showWarningMessage(message, 'Go to output') + if (action !== 'Go to output') return + commands.executeCommand('tailwindCSS.showOutput') + } + interface DocumentSymbolsRequest { uri: string } From 9f7f345bd7636ae475bc3ea068057ccde3553b42 Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Tue, 11 Feb 2025 15:22:57 -0500 Subject: [PATCH 2/2] Update changelog --- packages/vscode-tailwindcss/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/vscode-tailwindcss/CHANGELOG.md b/packages/vscode-tailwindcss/CHANGELOG.md index d3b45fd5..13ee93fe 100644 --- a/packages/vscode-tailwindcss/CHANGELOG.md +++ b/packages/vscode-tailwindcss/CHANGELOG.md @@ -9,6 +9,7 @@ - Fix parsing of `@custom-variant` shorthand in Tailwind CSS language mode ([#1183](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1183)) - Make sure custom regexes apply in Vue `` blocks ([#1177](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1177)) - Fix suggestion of utilities with slashes in them in v4 ([#1182](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1182)) +- Show warning when loading a config in v3 fails ([#1191](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1191)) ## 0.14.3