@@ -215,26 +215,13 @@ function M.sort_indirect_jump_targets(indirect_jump_targets, opts)
215
215
end
216
216
217
217
-- Apply an offset on jump target
218
- -- Always offset in cell first, then in line
218
+ -- Always offset in row first, then in cell
219
219
--- @param jt JumpTarget
220
- --- @param offset_cell WindowCell | nil
221
220
--- @param offset_row WindowRow | nil
222
- function M . move_jump_target ( jt , offset_cell , offset_row )
223
- local dcell = offset_cell or 0
221
+ --- @param offset_cell WindowCell | nil
222
+ function M . move_jump_target ( jt , offset_row , offset_cell )
224
223
local drow = offset_row or 0
225
-
226
- if dcell ~= 0 then
227
- local line = vim .api .nvim_buf_get_lines (jt .buffer , jt .cursor .row - 1 , jt .cursor .row , false )[1 ]
228
- local line_cells = vim .fn .strdisplaywidth (line )
229
- --- @type WindowCell
230
- local new_cell = vim .fn .strdisplaywidth (line :sub (1 , jt .cursor .col )) + dcell
231
- if new_cell >= line_cells then
232
- new_cell = line_cells
233
- elseif new_cell < 0 then
234
- new_cell = 0
235
- end
236
- jt .cursor .col = vim .fn .byteidx (line , window .cell2char (line , new_cell ))
237
- end
224
+ local dcell = offset_cell or 0
238
225
239
226
if drow ~= 0 then
240
227
--- @type WindowRow
@@ -248,6 +235,19 @@ function M.move_jump_target(jt, offset_cell, offset_row)
248
235
jt .cursor .row = new_row
249
236
end
250
237
end
238
+
239
+ if dcell ~= 0 then
240
+ local line = vim .api .nvim_buf_get_lines (jt .buffer , jt .cursor .row - 1 , jt .cursor .row , false )[1 ]
241
+ local line_cells = vim .fn .strdisplaywidth (line )
242
+ --- @type WindowCell
243
+ local new_cell = vim .fn .strdisplaywidth (line :sub (1 , jt .cursor .col )) + dcell
244
+ if new_cell >= line_cells then
245
+ new_cell = line_cells
246
+ elseif new_cell < 0 then
247
+ new_cell = 0
248
+ end
249
+ jt .cursor .col = vim .fn .byteidx (line , window .cell2char (line , new_cell ))
250
+ end
251
251
end
252
252
253
253
return M
0 commit comments