feat(lsp): use the meta model to generate server capability map

This commit is contained in:
Maria José Solano
2025-02-17 17:53:12 -08:00
parent ae2fd91b41
commit e4c1f6667b
4 changed files with 156 additions and 97 deletions

View File

@@ -38,55 +38,6 @@ lsp._resolve_to_request = {
[ms.inlayHint_resolve] = ms.textDocument_inlayHint,
}
-- maps request name to the required server_capability in the client.
lsp._request_name_to_capability = {
[ms.callHierarchy_incomingCalls] = { 'callHierarchyProvider' },
[ms.callHierarchy_outgoingCalls] = { 'callHierarchyProvider' },
[ms.codeAction_resolve] = { 'codeActionProvider', 'resolveProvider' },
[ms.codeLens_resolve] = { 'codeLensProvider', 'resolveProvider' },
[ms.documentLink_resolve] = { 'documentLinkProvider', 'resolveProvider' },
[ms.inlayHint_resolve] = { 'inlayHintProvider', 'resolveProvider' },
[ms.textDocument_codeAction] = { 'codeActionProvider' },
[ms.textDocument_codeLens] = { 'codeLensProvider' },
[ms.textDocument_completion] = { 'completionProvider' },
[ms.textDocument_declaration] = { 'declarationProvider' },
[ms.textDocument_definition] = { 'definitionProvider' },
[ms.textDocument_diagnostic] = { 'diagnosticProvider' },
[ms.textDocument_didClose] = { 'textDocumentSync', 'openClose' },
[ms.textDocument_didOpen] = { 'textDocumentSync', 'openClose' },
[ms.textDocument_documentColor] = { 'colorProvider' },
[ms.textDocument_documentHighlight] = { 'documentHighlightProvider' },
[ms.textDocument_documentLink] = { 'documentLinkProvider' },
[ms.textDocument_documentSymbol] = { 'documentSymbolProvider' },
[ms.textDocument_foldingRange] = { 'foldingRangeProvider' },
[ms.textDocument_formatting] = { 'documentFormattingProvider' },
[ms.textDocument_hover] = { 'hoverProvider' },
[ms.textDocument_implementation] = { 'implementationProvider' },
[ms.textDocument_inlayHint] = { 'inlayHintProvider' },
[ms.textDocument_inlineValue] = { 'inlineValueProvider' },
[ms.textDocument_linkedEditingRange] = { 'linkedEditingRangeProvider' },
[ms.textDocument_moniker] = { 'monikerProvider' },
[ms.textDocument_onTypeFormatting] = { 'documentOnTypeFormattingProvider' },
[ms.textDocument_prepareCallHierarchy] = { 'callHierarchyProvider' },
[ms.textDocument_prepareRename] = { 'renameProvider', 'prepareProvider' },
[ms.textDocument_prepareTypeHierarchy] = { 'typeHierarchyProvider' },
[ms.textDocument_rangeFormatting] = { 'documentRangeFormattingProvider' },
[ms.textDocument_rangesFormatting] = { 'documentRangeFormattingProvider', 'rangesSupport' },
[ms.textDocument_references] = { 'referencesProvider' },
[ms.textDocument_rename] = { 'renameProvider' },
[ms.textDocument_selectionRange] = { 'selectionRangeProvider' },
[ms.textDocument_semanticTokens_full] = { 'semanticTokensProvider' },
[ms.textDocument_semanticTokens_full_delta] = { 'semanticTokensProvider' },
[ms.textDocument_signatureHelp] = { 'signatureHelpProvider' },
[ms.textDocument_typeDefinition] = { 'typeDefinitionProvider' },
[ms.textDocument_willSaveWaitUntil] = { 'textDocumentSync', 'willSaveWaitUntil' },
[ms.textDocument_willSave] = { 'textDocumentSync', 'willSave' },
[ms.typeHierarchy_subtypes] = { 'typeHierarchyProvider' },
[ms.typeHierarchy_supertypes] = { 'typeHierarchyProvider' },
[ms.workspace_executeCommand] = { 'executeCommandProvider' },
[ms.workspace_symbol] = { 'workspaceSymbolProvider' },
}
-- TODO improve handling of scratch buffers with LSP attached.
---@private