support 'CodeActionContext.only' (#247402)

This commit is contained in:
Martin Aeschlimann 2025-04-25 18:10:06 +02:00 committed by GitHub
parent 645143f1d3
commit 2d0ca04011
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 5 deletions

View File

@ -7,7 +7,7 @@ import {
Connection, TextDocuments, InitializeParams, InitializeResult, ServerCapabilities, ConfigurationRequest, WorkspaceFolder, TextDocumentSyncKind, NotificationType, Disposable, TextDocumentIdentifier, Range, FormattingOptions, TextEdit, Diagnostic
} from 'vscode-languageserver';
import { URI } from 'vscode-uri';
import { getCSSLanguageService, getSCSSLanguageService, getLESSLanguageService, LanguageSettings, LanguageService, Stylesheet, TextDocument, Position } from 'vscode-css-languageservice';
import { getCSSLanguageService, getSCSSLanguageService, getLESSLanguageService, LanguageSettings, LanguageService, Stylesheet, TextDocument, Position, CodeActionKind } from 'vscode-css-languageservice';
import { getLanguageModelCache } from './languageModelCache';
import { runSafeAsync } from './utils/runner';
import { DiagnosticsSupport, registerDiagnosticsPullSupport, registerDiagnosticsPushSupport } from './utils/validation';
@ -119,7 +119,9 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
documentLinkProvider: {
resolveProvider: false
},
codeActionProvider: true,
codeActionProvider: {
codeActionKinds: [CodeActionKind.QuickFix]
},
renameProvider: true,
colorProvider: {},
foldingRangeProvider: true,
@ -286,7 +288,7 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
if (document) {
await dataProvidersReady;
const stylesheet = stylesheets.get(document);
return getLanguageService(document).doCodeActions(document, codeActionParams.range, codeActionParams.context, stylesheet);
return getLanguageService(document).doCodeActions2(document, codeActionParams.range, codeActionParams.context, stylesheet);
}
return [];
}, [], `Error while computing code actions for ${codeActionParams.textDocument.uri}`, token);

View File

@ -80,6 +80,8 @@ export interface RuntimeEnvironment {
};
}
const sortCodeActionKind = CodeActionKind.Source.concat('.sort', '.json');
export function startServer(connection: Connection, runtime: RuntimeEnvironment) {
function getSchemaRequestService(handledSchemas: string[] = ['https', 'http', 'file']) {
@ -194,7 +196,9 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
interFileDependencies: false,
workspaceDiagnostics: false
},
codeActionProvider: true
codeActionProvider: {
codeActionKinds: [sortCodeActionKind]
}
};
return { capabilities };
@ -446,7 +450,7 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
return runSafeAsync(runtime, async () => {
const document = documents.get(codeActionParams.textDocument.uri);
if (document) {
const sortCodeAction = CodeAction.create('Sort JSON', CodeActionKind.Source.concat('.sort', '.json'));
const sortCodeAction = CodeAction.create('Sort JSON', sortCodeActionKind);
sortCodeAction.command = {
command: 'json.sort',
title: l10n.t('Sort JSON')