fix(lsp): fix cursor row after textEdits (#16038)

This commit is contained in:
hrsh7th
2021-10-19 03:49:33 +09:00
committed by GitHub
parent bcc9ba51fa
commit bd2f61c6c4
2 changed files with 22 additions and 6 deletions

View File

@@ -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