aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/util.lua
diff options
context:
space:
mode:
authorhrsh7th <hrsh7th@gmail.com>2021-10-19 03:49:33 +0900
committerGitHub <noreply@github.com>2021-10-18 11:49:33 -0700
commitbd2f61c6c423bd5d61ad3eca237d8a5a82925dd8 (patch)
treeca37f30e53e2cdff20a56fefad624e4e95772972 /runtime/lua/vim/lsp/util.lua
parentbcc9ba51faa54f0fd6b1cb0a3f69332971a112a2 (diff)
downloadrneovim-bd2f61c6c423bd5d61ad3eca237d8a5a82925dd8.tar.gz
rneovim-bd2f61c6c423bd5d61ad3eca237d8a5a82925dd8.tar.bz2
rneovim-bd2f61c6c423bd5d61ad3eca237d8a5a82925dd8.zip
fix(lsp): fix cursor row after textEdits (#16038)
Diffstat (limited to 'runtime/lua/vim/lsp/util.lua')
-rw-r--r--runtime/lua/vim/lsp/util.lua10
1 files changed, 6 insertions, 4 deletions
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
index 3751f94caf..952926b67e 100644
--- a/runtime/lua/vim/lsp/util.lua
+++ b/runtime/lua/vim/lsp/util.lua
@@ -335,10 +335,12 @@ function M.apply_text_edits(text_edits, bufnr)
end
if is_cursor_fixed then
- vim.api.nvim_win_set_cursor(0, {
- cursor.row + 1,
- math.min(cursor.col, #(vim.api.nvim_buf_get_lines(bufnr, cursor.row, cursor.row + 1, false)[1] or ''))
- })
+ local is_valid_cursor = true
+ is_valid_cursor = is_valid_cursor and cursor.row < vim.api.nvim_buf_line_count(bufnr)
+ is_valid_cursor = is_valid_cursor and cursor.col <= #(vim.api.nvim_buf_get_lines(bufnr, cursor.row, cursor.row + 1, false)[1] or '')
+ if is_valid_cursor then
+ vim.api.nvim_win_set_cursor(0, { cursor.row + 1, cursor.col })
+ end
end
-- Remove final line if needed