mirror of
https://github.com/neovim/neovim.git
synced 2026-04-21 06:45:37 +00:00
lsp: Add check for declaration and typeDefinition support in vim lsp server before making request (#12421)
* Add check for typeDefinition support in vim lsp server * Check for typeDefinitionProvider in server * Check for declarationProvider in server * Add check for client support * Fix typo
This commit is contained in:
committed by
GitHub
parent
ac5a3f2c56
commit
6f4f38cd54
@@ -923,6 +923,28 @@ function protocol.resolve_capabilities(server_capabilities)
|
||||
error("The server sent invalid codeActionProvider")
|
||||
end
|
||||
|
||||
if server_capabilities.declarationProvider == nil then
|
||||
general_properties.declaration = false
|
||||
elseif type(server_capabilities.declarationProvider) == 'boolean' then
|
||||
general_properties.declaration = server_capabilities.declarationProvider
|
||||
elseif type(server_capabilities.declarationProvider) == 'table' then
|
||||
-- TODO: support more detailed declarationProvider options.
|
||||
general_properties.declaration = false
|
||||
else
|
||||
error("The server sent invalid declarationProvider")
|
||||
end
|
||||
|
||||
if server_capabilities.typeDefinitionProvider == nil then
|
||||
general_properties.type_definition = false
|
||||
elseif type(server_capabilities.typeDefinitionProvider) == 'boolean' then
|
||||
general_properties.type_definition = server_capabilities.typeDefinitionProvider
|
||||
elseif type(server_capabilities.typeDefinitionProvider) == 'table' then
|
||||
-- TODO: support more detailed typeDefinitionProvider options.
|
||||
general_properties.type_definition = false
|
||||
else
|
||||
error("The server sent invalid typeDefinitionProvider")
|
||||
end
|
||||
|
||||
if server_capabilities.implementationProvider == nil then
|
||||
general_properties.implementation = false
|
||||
elseif type(server_capabilities.implementationProvider) == 'boolean' then
|
||||
|
||||
Reference in New Issue
Block a user