# HG changeset patch # User Zeger Van de Vannet # Date 1631203295 -7200 # Node ID 10fc275a891462d0327479d10d656fe269230d54 # Parent d847c4df584b3b0a1ab4d660a908845d96426553 Add LspRename command to populate the quickfix list with changed lines diff -r d847c4df584b -r 10fc275a8914 dot_config/nvim/init.lua --- a/dot_config/nvim/init.lua Sat Sep 04 11:40:32 2021 +0200 +++ b/dot_config/nvim/init.lua Thu Sep 09 18:01:35 2021 +0200 @@ -688,6 +688,30 @@ lsp.sumneko_lua.setup(luadev) +-- Populate quickfix with all locations of rename +function LspRename() + local params = vim.lsp.util.make_position_params() + params.newName = vim.fn.input("Rename: ", vim.fn.expand('')) + vim.lsp.buf_request(0, 'textDocument/rename', params, function(err, result, ctx, ...) + vim.lsp.handlers['textDocument/rename'](err, result, ctx, ...) + local changed = {} + for uri, changes in pairs(result.changes) do + local bufnr = vim.uri_to_bufnr(uri) + for _, edits in ipairs(changes) do + table.insert(changed, { + bufnr = bufnr, + lnum = edits.range.start.line + 1, + col = edits.range.start.character + 1, + text = vim.api.nvim_buf_get_lines(bufnr, edits.range.start.line, edits.range.start.line + 1, false)[1], + }) + end + end + vim.fn.setqflist(changed, 'r') + end) +end + +vim.cmd [[command! LspRename lua LspRename()]] + -- Try importing local config local ok, localconfig = pcall(require, 'localconfig') if ok then