From 3aa122edfd795d1bba1fc3c18c99460c43970c85 Mon Sep 17 00:00:00 2001 From: Santos Gallegos Date: Sat, 18 Sep 2021 01:22:02 -0500 Subject: Fix incremental selection for nodes that include EOL From `:h setpos()` > If "col" is smaller than 1 then 1 is used. This can be tested with incremental selection on a vim file. ```vim set title ``` --- lua/nvim-treesitter/ts_utils.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lua') diff --git a/lua/nvim-treesitter/ts_utils.lua b/lua/nvim-treesitter/ts_utils.lua index 72a74edcc..11fb17d78 100644 --- a/lua/nvim-treesitter/ts_utils.lua +++ b/lua/nvim-treesitter/ts_utils.lua @@ -208,7 +208,8 @@ function M.update_selection(buf, node, selection_mode) -- Convert exclusive end position to inclusive if end_col == 1 then - vim.fn.setpos(".", { buf, end_row - 1, -1, 0 }) + local previous_col = vim.fn.col { end_row - 1, "$" } - 1 + vim.fn.setpos(".", { buf, end_row - 1, previous_col, 0 }) else vim.fn.setpos(".", { buf, end_row, end_col - 1, 0 }) end -- cgit v1.2.3-70-g09d2