avoid overriding default vim.lsp functions

read https://github.com/NvChad/NvChad/discussions/1180
This commit is contained in:
siduck 2022-06-07 11:11:55 +05:30
parent 4a603d1a1d
commit 700801b313
3 changed files with 61 additions and 59 deletions

View file

@ -147,7 +147,7 @@ M.lspconfig = {
["<leader>ra"] = { ["<leader>ra"] = {
function() function()
vim.lsp.buf.rename.float() require("ui.renamer").open()
end, end,
" lsp rename", " lsp rename",
}, },

View file

@ -201,64 +201,6 @@ M.lsp_handlers = function()
vim.api.nvim_echo({ { msg } }, true, {}) vim.api.nvim_echo({ { msg } }, true, {})
end end
end end
-- credits to @Malace : https://www.reddit.com/r/neovim/comments/ql4iuj/rename_hover_including_window_title_and/
-- This is modified version of the above snippet
vim.lsp.buf.rename = {
float = function()
local currName = vim.fn.expand "<cword>" .. " "
local win = require("plenary.popup").create(currName, {
title = "Renamer",
style = "minimal",
borderchars = { "", "", "", "", "", "", "", "" },
relative = "cursor",
borderhighlight = "RenamerBorder",
titlehighlight = "RenamerTitle",
focusable = true,
width = 25,
height = 1,
line = "cursor+2",
col = "cursor-1",
})
local map_opts = { noremap = true, silent = true }
vim.cmd "normal w"
vim.cmd "startinsert"
vim.api.nvim_buf_set_keymap(0, "i", "<Esc>", "<cmd>stopinsert | q!<CR>", map_opts)
vim.api.nvim_buf_set_keymap(0, "n", "<Esc>", "<cmd>stopinsert | q!<CR>", map_opts)
vim.api.nvim_buf_set_keymap(
0,
"i",
"<CR>",
"<cmd>stopinsert | lua vim.lsp.buf.rename.apply(" .. currName .. "," .. win .. ")<CR>",
map_opts
)
vim.api.nvim_buf_set_keymap(
0,
"n",
"<CR>",
"<cmd>stopinsert | lua vim.lsp.buf.rename.apply(" .. currName .. "," .. win .. ")<CR>",
map_opts
)
end,
apply = function(curr, win)
local newName = vim.trim(vim.fn.getline ".")
vim.api.nvim_win_close(win, true)
if #newName > 0 and newName ~= curr then
local params = vim.lsp.util.make_position_params()
params.newName = newName
vim.lsp.buf_request(0, "textDocument/rename", params)
end
end,
}
end end
M.gitsigns = function() M.gitsigns = function()

60
lua/ui/renamer.lua Normal file
View file

@ -0,0 +1,60 @@
-- credits to @Malace : https://www.reddit.com/r/neovim/comments/ql4iuj/rename_hover_including_window_title_and/
-- This is modified version of the above snippet
local M = {}
M.open = function()
local currName = vim.fn.expand "<cword>" .. " "
local win = require("plenary.popup").create(currName, {
title = "Renamer",
style = "minimal",
borderchars = { "", "", "", "", "", "", "", "" },
relative = "cursor",
borderhighlight = "RenamerBorder",
titlehighlight = "RenamerTitle",
focusable = true,
width = 25,
height = 1,
line = "cursor+2",
col = "cursor-1",
})
local map_opts = { noremap = true, silent = true }
vim.cmd "normal w"
vim.cmd "startinsert"
vim.api.nvim_buf_set_keymap(0, "i", "<Esc>", "<cmd>stopinsert | q!<CR>", map_opts)
vim.api.nvim_buf_set_keymap(0, "n", "<Esc>", "<cmd>stopinsert | q!<CR>", map_opts)
vim.api.nvim_buf_set_keymap(
0,
"i",
"<CR>",
"<cmd>stopinsert | lua require'ui.renamer'.apply(" .. currName .. "," .. win .. ")<CR>",
map_opts
)
vim.api.nvim_buf_set_keymap(
0,
"n",
"<CR>",
"<cmd>stopinsert | lua require'ui.renamer'.apply(" .. currName .. "," .. win .. ")<CR>",
map_opts
)
end
M.apply = function(curr, win)
local newName = vim.trim(vim.fn.getline ".")
vim.api.nvim_win_close(win, true)
if #newName > 0 and newName ~= curr then
local params = vim.lsp.util.make_position_params()
params.newName = newName
vim.lsp.buf_request(0, "textDocument/rename", params)
end
end
return M