From df968afd9dd444990c0e7844c92aa20603e9ced1 Mon Sep 17 00:00:00 2001 From: Kiyoon Kim Date: Tue, 7 Feb 2023 06:25:27 +0000 Subject: goto_node select last character when in operator-pending mode --- lua/nvim-treesitter/ts_utils.lua | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lua') diff --git a/lua/nvim-treesitter/ts_utils.lua b/lua/nvim-treesitter/ts_utils.lua index f0cccc2cc..373bae340 100644 --- a/lua/nvim-treesitter/ts_utils.lua +++ b/lua/nvim-treesitter/ts_utils.lua @@ -452,6 +452,14 @@ function M.goto_node(node, goto_end, avoid_set_jump) else position = { range[3], range[4] } end + + -- Enter visual mode if we are in operator pending mode + -- If we don't do this, it will miss the last character. + local mode = vim.api.nvim_get_mode() + if mode.mode == "no" then + vim.cmd "normal! v" + end + -- Position is 1, 0 indexed. api.nvim_win_set_cursor(0, { position[1], position[2] - 1 }) end -- cgit v1.2.3-70-g09d2