From 50762a4a46c1d2824cd61379bfe766e4b9477aa1 Mon Sep 17 00:00:00 2001 From: Fredrik Lanker Date: Mon, 4 May 2026 09:50:40 +0200 Subject: [PATCH] fix(links): creating link from visual mode Selecting a region from right to left could lead to insert_from > insert_to, which isn't handled in later code. By using getregionpos the regions will be in the correct order. --- lua/orgmode/org/links/init.lua | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lua/orgmode/org/links/init.lua b/lua/orgmode/org/links/init.lua index 63cb7b1a6..90dc71b57 100644 --- a/lua/orgmode/org/links/init.lua +++ b/lua/orgmode/org/links/init.lua @@ -145,11 +145,10 @@ function OrgLinks:insert_link(link_location, desc) insert_to = link.range.end_col + 1 target_col = target_col + link.range.start_col elseif vim.fn.mode() == 'v' then - local start_pos = vim.fn.getpos('v') - local end_pos = vim.fn.getpos('.') - insert_from = start_pos[3] - 1 - insert_to = end_pos[3] + 1 - target_col = target_col + start_pos[3] + local region = vim.fn.getregionpos(vim.fn.getpos('v'), vim.fn.getpos('.')) + insert_from = region[1][1][3] - 1 + insert_to = region[1][2][3] + 1 + target_col = target_col + region[1][1][3] else local colnr = vim.fn.col('.') insert_from = colnr