🔧 chore(lsp_server): gate providers to completion/definition
Initialize now advertises only completion (resolve) and definition. Verified: test_provider (clang-linux-server/Release)
This commit is contained in:
@@ -79,49 +79,9 @@ namespace lsp::provider
|
||||
result.capabilities.textDocumentSync = BuildTextDocumentSyncOptions();
|
||||
result.capabilities.completionProvider = BuildCompletionOptions();
|
||||
result.capabilities.definitionProvider = true;
|
||||
result.capabilities.typeDefinitionProvider = true;
|
||||
result.capabilities.implementationProvider = true;
|
||||
result.capabilities.hoverProvider = true;
|
||||
result.capabilities.signatureHelpProvider = BuildSignatureHelpOptions();
|
||||
result.capabilities.codeActionProvider = BuildCodeActionOptions();
|
||||
result.capabilities.codeLensProvider = protocol::CodeLensOptions{ .resolveProvider = true };
|
||||
result.capabilities.documentLinkProvider = protocol::DocumentLinkOptions{ .resolveProvider = true };
|
||||
result.capabilities.colorProvider = true;
|
||||
result.capabilities.referencesProvider = true;
|
||||
result.capabilities.documentHighlightProvider = true;
|
||||
result.capabilities.renameProvider = protocol::RenameOptions{ .prepareProvider = true };
|
||||
result.capabilities.documentSymbolProvider = true;
|
||||
result.capabilities.workspaceSymbolProvider = protocol::WorkspaceSymbolOptions{ .resolveProvider = true };
|
||||
result.capabilities.semanticTokensProvider = BuildSemanticTokenOptions();
|
||||
result.capabilities.callHierarchyProvider = true;
|
||||
result.capabilities.typeHierarchyProvider = true;
|
||||
result.capabilities.inlayHintProvider = protocol::InlayHintOptions{ .resolveProvider = true };
|
||||
result.capabilities.foldingRangeProvider = true;
|
||||
result.capabilities.selectionRangeProvider = true;
|
||||
result.capabilities.linkedEditingRangeProvider = true;
|
||||
result.capabilities.monikerProvider = true;
|
||||
result.capabilities.inlineValueProvider = true;
|
||||
result.capabilities.documentFormattingProvider = true;
|
||||
result.capabilities.documentRangeFormattingProvider = true;
|
||||
result.capabilities.documentOnTypeFormattingProvider = BuildOnTypeFormattingOptions();
|
||||
result.capabilities.executeCommandProvider = BuildExecuteCommandOptions();
|
||||
|
||||
protocol::DiagnosticOptions diagnostic;
|
||||
diagnostic.identifier = "syntax";
|
||||
diagnostic.interFileDependencies = false;
|
||||
diagnostic.workspaceDiagnostics = true;
|
||||
result.capabilities.diagnosticProvider = std::move(diagnostic);
|
||||
|
||||
protocol::ServerCapabilities::Workspace workspace;
|
||||
protocol::ServerCapabilities::Workspace::FileOperations file_operations;
|
||||
file_operations.didCreate = true;
|
||||
file_operations.willCreate = true;
|
||||
file_operations.didDelete = true;
|
||||
file_operations.willDelete = true;
|
||||
file_operations.didRename = true;
|
||||
file_operations.willRename = true;
|
||||
workspace.fileOperations = std::move(file_operations);
|
||||
result.capabilities.workspace = std::move(workspace);
|
||||
// NOTE: Only advertise the minimal feature set for now:
|
||||
// - completion (with resolve)
|
||||
// - go-to-definition
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user