fix(providers): Ensure working on nvim-0.7

This commit removed the ability to receive symbols from all attached
clients in the current buffer. Everything works as before when only one
client is attached to a buffer.

This also fixes outline LSP finding clients on nvim-0.7
This commit is contained in:
hedy
2023-12-29 19:17:00 +08:00
parent 5669c8aa9e
commit 8b2f412b7b
7 changed files with 91 additions and 48 deletions

View File

@@ -26,6 +26,7 @@ local Sidebar = {}
---@field code outline.SidebarCodeState
---@field augroup integer
---@field provider outline.Provider?
---@field provider_info table?
---@field preview outline.Preview|outline.LivePreview
function Sidebar:new(id)
@@ -92,6 +93,7 @@ end
---@param opts outline.OutlineOpts?
function Sidebar:initial_handler(response, opts)
if response == nil or type(response) ~= 'table' or self.view:is_open() then
utils.echo("No response from provider when requesting symbols!")
return
end
@@ -311,6 +313,7 @@ end
---@param response outline.ProviderSymbol[]
function Sidebar:refresh_handler(response)
if response == nil or type(response) ~= 'table' then
utils.echo("No response from provider when requesting symbols!")
return
end
@@ -340,11 +343,11 @@ function Sidebar:__refresh()
if ft == 'OutlineHelp' or not listed then
return
end
self.provider = providers.find_provider()
self.provider, self.provider_info = providers.find_provider()
if self.provider then
self.provider.request_symbols(function(res)
self:refresh_handler(res)
end)
end, nil, self.provider_info)
return
end
-- No provider
@@ -583,11 +586,11 @@ function Sidebar:open(opts)
if not self.view:is_open() then
self.preview.s = self
self.provider = providers.find_provider()
self.provider, self.provider_info = providers.find_provider()
if self.provider then
self.provider.request_symbols(function(...)
self:initial_handler(...)
end, opts)
end, opts, self.provider_info)
return
else
-- No provider