From 5b675434f0719ecfcb6328b1d867d660528dc5b8 Mon Sep 17 00:00:00 2001 From: Brad Cornes Date: Mon, 17 Jan 2022 13:58:13 +0000 Subject: [PATCH] Don't read configuration from `initializationOptions` --- .../tailwindcss-language-server/src/server.ts | 51 ++++++++++--------- packages/vscode-tailwindcss/src/extension.ts | 1 - 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/packages/tailwindcss-language-server/src/server.ts b/packages/tailwindcss-language-server/src/server.ts index f05c842..6b6877c 100644 --- a/packages/tailwindcss-language-server/src/server.ts +++ b/packages/tailwindcss-language-server/src/server.ts @@ -211,12 +211,33 @@ async function createProjectService( documentService: DocumentService ): Promise { const disposables: Disposable[] = [] + const documentSettingsCache: Map = new Map() + + async function getConfiguration(uri?: string) { + if (documentSettingsCache.has(uri)) { + return documentSettingsCache.get(uri) + } + let [editor, tailwindCSS] = await Promise.all([ + connection.workspace.getConfiguration({ + section: 'editor', + scopeUri: uri, + }), + connection.workspace.getConfiguration({ + section: 'tailwindCSS', + scopeUri: uri, + }), + ]) + let config: Settings = { editor, tailwindCSS } + documentSettingsCache.set(uri, config) + return config + } + const state: State = { enabled: false, editor: { connection, folder, - globalSettings: params.initializationOptions.configuration as Settings, + globalSettings: await getConfiguration(), userLanguages: params.initializationOptions.userLanguages ? params.initializationOptions.userLanguages : {}, @@ -226,35 +247,17 @@ async function createProjectService( diagnosticRelatedInformation: true, }, documents: documentService.documents, - getConfiguration: async (uri?: string) => { - if (documentSettingsCache.has(uri)) { - return documentSettingsCache.get(uri) - } - let [editor, tailwindCSS] = await Promise.all([ - connection.workspace.getConfiguration({ - section: 'editor', - scopeUri: uri, - }), - connection.workspace.getConfiguration({ - section: 'tailwindCSS', - scopeUri: uri, - }), - ]) - let config: Settings = { editor, tailwindCSS } - documentSettingsCache.set(uri, config) - return config - }, + getConfiguration, getDocumentSymbols: (uri: string) => { return connection.sendRequest('@/tailwindCSS/getDocumentSymbols', { uri }) }, }, } - const documentSettingsCache: Map = new Map() let registrations: Promise let chokidarWatcher: chokidar.FSWatcher - let ignore = state.editor.globalSettings.tailwindCSS.files.exclude + let ignore = state.editor.globalSettings.tailwindCSS.files?.exclude ?? [] function onFileEvents(changes: Array<{ file: string; type: FileChangeType }>): void { let needsInit = false @@ -447,7 +450,7 @@ async function createProjectService( let [configPath] = ( await glob([`**/${CONFIG_FILE_GLOB}`], { cwd: folder, - ignore: state.editor.globalSettings.tailwindCSS.files.exclude, + ignore: state.editor.globalSettings.tailwindCSS.files?.exclude ?? [], onlyFiles: true, absolute: true, suppressErrors: true, @@ -980,9 +983,9 @@ async function createProjectService( }, onUpdateSettings(settings: any): void { documentSettingsCache.clear() - let previousExclude = state.editor.globalSettings.tailwindCSS.files.exclude + let previousExclude = state.editor.globalSettings.tailwindCSS.files?.exclude ?? [] state.editor.globalSettings = settings - if (!equal(previousExclude, settings.tailwindCSS.files.exclude)) { + if (!equal(previousExclude, settings.tailwindCSS.files?.exclude ?? [])) { tryInit() } else { if (state.enabled) { diff --git a/packages/vscode-tailwindcss/src/extension.ts b/packages/vscode-tailwindcss/src/extension.ts index 30cc692..a8bcf9c 100755 --- a/packages/vscode-tailwindcss/src/extension.ts +++ b/packages/vscode-tailwindcss/src/extension.ts @@ -364,7 +364,6 @@ export async function activate(context: ExtensionContext) { }, initializationOptions: { userLanguages: getUserLanguages(folder), - configuration, }, synchronize: { configurationSection: ['editor', 'tailwindCSS'],