aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/util.lua
diff options
context:
space:
mode:
authorMathias Fußenegger <mfussenegger@users.noreply.github.com>2020-02-10 01:05:42 +0100
committerGitHub <noreply@github.com>2020-02-10 09:05:42 +0900
commit174f7a29801be2d6680c8e7e5a3625c8c7dfe458 (patch)
tree58537fb0aa0212e97addb686ca42c2911ed982c3 /runtime/lua/vim/lsp/util.lua
parent31614d3eb0b6e563eab9a76acf6e33c725b92e60 (diff)
downloadrneovim-174f7a29801be2d6680c8e7e5a3625c8c7dfe458.tar.gz
rneovim-174f7a29801be2d6680c8e7e5a3625c8c7dfe458.tar.bz2
rneovim-174f7a29801be2d6680c8e7e5a3625c8c7dfe458.zip
lsp: Support text edit on inactive buffer (#11843)
Using `vim.lsp.buf.rename()` can result in receiving a TextEdit that affects a file for which there is no active or loaded buffer. In that case `api.nvim_buf_get_lines(...)` returned an empty result, leading to an error. Closes https://github.com/neovim/neovim/issues/11790
Diffstat (limited to 'runtime/lua/vim/lsp/util.lua')
-rw-r--r--runtime/lua/vim/lsp/util.lua3
1 files changed, 3 insertions, 0 deletions
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
index 6a1b73045e..428874f2b7 100644
--- a/runtime/lua/vim/lsp/util.lua
+++ b/runtime/lua/vim/lsp/util.lua
@@ -88,6 +88,9 @@ function M.apply_text_edits(text_edits, bufnr)
-- Reverse sort the orders so we can apply them without interfering with
-- eachother. Also add i as a sort key to mimic a stable sort.
table.sort(cleaned, edit_sort_key)
+ if not api.nvim_buf_is_loaded(bufnr) then
+ vim.fn.bufload(bufnr)
+ end
local lines = api.nvim_buf_get_lines(bufnr, start_line, finish_line + 1, false)
local fix_eol = api.nvim_buf_get_option(bufnr, 'fixeol')
local set_eol = fix_eol and api.nvim_buf_line_count(bufnr) <= finish_line + 1