fix(lsp): Use vim.buf.lsp.rename for rename_symbol

Closes #42
This commit is contained in:
hedy
2023-12-27 22:14:12 +08:00
parent d073791f1c
commit 982460584f

View File

@@ -95,20 +95,11 @@ function M.code_actions(sidebar)
return true return true
end end
---Synchronously request rename from LSP ---@see rename_symbol
---@param sidebar outline.Sidebar ---@param sidebar outline.Sidebar
---@param node outline.FlatSymbol
---@return boolean success ---@return boolean success
function M.rename_symbol(sidebar) local function legacy_rename(sidebar, client, node)
local client = get_appropriate_client(sidebar.code.buf, 'renameProvider')
if not client then
return false
end
local node = sidebar:_current_node()
if not node then
return false
end
-- Using fn.input so it's synchronous -- Using fn.input so it's synchronous
local new_name = vim.fn.input({ prompt = 'New Name: ', default = node.name }) local new_name = vim.fn.input({ prompt = 'New Name: ', default = node.name })
if not new_name or new_name == '' or new_name == node.name then if not new_name or new_name == '' or new_name == node.name then
@@ -133,6 +124,33 @@ function M.rename_symbol(sidebar)
return true return true
end end
---Synchronously request rename from LSP
---@param sidebar outline.Sidebar
---@return boolean success
function M.rename_symbol(sidebar)
local client = get_appropriate_client(sidebar.code.buf, 'renameProvider')
if not client then
return false
end
local node = sidebar:_current_node()
if not node then
return false
end
if _G._outline_nvim_has[8] then
sidebar:wrap_goto_location(function()
-- Options table with filter key only added in nvim-0.8
-- Use vim.lsp's function because it has better support.
l.buf.rename(nil, { filter = function (client)
return not cfg.is_client_blacklisted(client)
end })
end)
return true
else
return legacy_rename(sidebar, client, node)
end
end
---Synchronously request and show hover info from LSP ---Synchronously request and show hover info from LSP
---@param sidebar outline.Sidebar ---@param sidebar outline.Sidebar
---@return boolean success ---@return boolean success