@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user