@@ -4,7 +4,7 @@ local shared = require('nvim-treesitter-textobjects.shared')
44
55--- @param range Range4
66--- @param selection_mode TSTextObjects.SelectionMode
7- local function update_selection (range , selection_mode )
7+ local function update_selection (range , selection_mode , set_jumps )
88 --- @type integer , integer , integer , integer
99 local start_row , start_col , end_row , end_col = unpack (range )
1010 selection_mode = selection_mode or ' v'
@@ -33,6 +33,10 @@ local function update_selection(range, selection_mode)
3333 end
3434 end_col = end_col - end_col_offset
3535
36+ if set_jumps then
37+ vim .cmd (" normal! m'" )
38+ end
39+
3640 -- Position is 1, 0 indexed.
3741 api .nvim_win_set_cursor (0 , { start_row + 1 , start_col })
3842 vim .cmd (' normal! o' )
@@ -158,6 +162,7 @@ function M.select_textobject(query_string, query_group)
158162 local lookahead = config .lookahead
159163 local lookbehind = config .lookbehind
160164 local surrounding_whitespace = config .include_surrounding_whitespace
165+ local set_jumps = config .set_jumps
161166 local range6 = shared .textobject_at_point (
162167 query_string ,
163168 query_group ,
@@ -178,7 +183,7 @@ function M.select_textobject(query_string, query_group)
178183 range4 = include_surrounding_whitespace (bufnr , range4 , selection_mode )
179184 end
180185 if range4 then
181- update_selection (range4 , selection_mode )
186+ update_selection (range4 , selection_mode , set_jumps )
182187 end
183188 end
184189end
0 commit comments