diff --git a/packages/tailwindcss-language-server/src/server.ts b/packages/tailwindcss-language-server/src/server.ts index 6a27fb1508bd7a6fd3c4ad7ee5da16a39e990d48..b51919442b21a1f872e0de02959851f5d7d58ab5 100644 --- a/packages/tailwindcss-language-server/src/server.ts +++ b/packages/tailwindcss-language-server/src/server.ts @@ -412,6 +412,7 @@ configuration: true, diagnosticRelatedInformation: true, itemDefaults, }, + documents: documentService.documents, getConfiguration, getDocumentSymbols: (uri: string) => { return connection.sendRequest('@/tailwindCSS/getDocumentSymbols', { uri }) @@ -1170,7 +1171,7 @@ let document = documentService.getDocument(params.textDocument.uri) if (!document) return null let settings = await state.editor.getConfiguration(document.uri) if (!settings.tailwindCSS.codeActions) return null - return doCodeActions(state, params, document) + return doCodeActions(state, params) }, null) }, onDocumentLinks(params: DocumentLinkParams): DocumentLink[] { diff --git a/packages/tailwindcss-language-service/src/codeActions/codeActionProvider.ts b/packages/tailwindcss-language-service/src/codeActions/codeActionProvider.ts index 2a87d2fdb50c5d3204dc46a00fdc3d54868971e9..df30e6610a098d3409e49592af8cdbf9b8fd4a28 100644 --- a/packages/tailwindcss-language-service/src/codeActions/codeActionProvider.ts +++ b/packages/tailwindcss-language-service/src/codeActions/codeActionProvider.ts @@ -17,14 +17,13 @@ import { flatten, dedupeBy } from '../util/array' import { provideCssConflictCodeActions } from './provideCssConflictCodeActions' import { provideInvalidApplyCodeActions } from './provideInvalidApplyCodeActions' import { provideSuggestionCodeActions } from './provideSuggestionCodeActions' -import { TextDocument } from 'vscode-languageserver-textdocument' async function getDiagnosticsFromCodeActionParams( state: State, params: CodeActionParams, - document: TextDocument, only?: DiagnosticKind[] ): Promise { + let document = state.editor.documents.get(params.textDocument.uri) if (!document) return [] let diagnostics = await doValidate(state, document, only) @@ -41,7 +40,7 @@ }) .filter(Boolean) } -export async function doCodeActions(state: State, params: CodeActionParams, document: TextDocument): Promise { +export async function doCodeActions(state: State, params: CodeActionParams): Promise { if (!state.enabled) { return [] } @@ -49,7 +48,6 @@ let diagnostics = await getDiagnosticsFromCodeActionParams( state, params, - document, params.context.diagnostics .map((diagnostic) => diagnostic.code) .filter(Boolean) as DiagnosticKind[] @@ -58,7 +56,7 @@ return Promise.all( diagnostics.map((diagnostic) => { if (isInvalidApplyDiagnostic(diagnostic)) { - return provideInvalidApplyCodeActions(state, document, diagnostic) + return provideInvalidApplyCodeActions(state, params, diagnostic) } if (isCssConflictDiagnostic(diagnostic)) { diff --git a/packages/tailwindcss-language-service/src/codeActions/provideInvalidApplyCodeActions.ts b/packages/tailwindcss-language-service/src/codeActions/provideInvalidApplyCodeActions.ts index d4da3c1b48438821494546eb0fc4256f1b3d7d9a..c212eead15bf139f3f373bf56d5ce4808a0ef71e 100644 --- a/packages/tailwindcss-language-service/src/codeActions/provideInvalidApplyCodeActions.ts +++ b/packages/tailwindcss-language-service/src/codeActions/provideInvalidApplyCodeActions.ts @@ -18,13 +18,13 @@ import { dset } from 'dset' import selectorParser from 'postcss-selector-parser' import { flatten } from '../util/array' import { getTextWithoutComments } from '../util/doc' -import { TextDocument } from 'vscode-languageserver-textdocument' export async function provideInvalidApplyCodeActions( state: State, - document: TextDocument, + params: CodeActionParams, diagnostic: InvalidApplyDiagnostic ): Promise { + let document = state.editor.documents.get(params.textDocument.uri) if (!document) return [] let documentText = getTextWithoutComments(document, 'css') let cssRange: Range @@ -144,7 +144,7 @@ kind: 'quickfix', // CodeActionKind.QuickFix, diagnostics: [diagnostic], edit: { changes: { - [document.uri]: changes, + [params.textDocument.uri]: changes, }, }, }, diff --git a/packages/tailwindcss-language-service/src/util/state.ts b/packages/tailwindcss-language-service/src/util/state.ts index 4dde68fee6824366274f3143883aabddcb8f472e..681ae5f360649ca034344f733e9c078d74ee07b8 100644 --- a/packages/tailwindcss-language-service/src/util/state.ts +++ b/packages/tailwindcss-language-service/src/util/state.ts @@ -20,6 +20,7 @@ export type EditorState = { connection: Connection folder: string + documents: TextDocuments userLanguages: Record capabilities: { configuration: boolean