From a42955c2b915c5fcbc97f57572476ffb3a1b1edd Mon Sep 17 00:00:00 2001 From: Yann Date: Mon, 10 Feb 2025 13:34:31 +0100 Subject: [PATCH] add markdown link map --- init.lua | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/init.lua b/init.lua index a65e1e1..04319bf 100644 --- a/init.lua +++ b/init.lua @@ -680,3 +680,33 @@ require('todo-comments').setup() require('love2d').setup() vim.g.rustfmt_autosave = 1 + +function AddMarkdownLink() + -- Récupère le mot sous le curseur + -- local word = vim.fn.expand('') + -- neovim ne supporte pas lua 5.4 + local _, line_start, col_start, _ = unpack(vim.fn.getpos("'<")) + local _, _, col_end, _ = unpack(vim.fn.getpos("'>")) + + -- Récupère la ligne courante + local line = vim.fn.getline(".") + + -- Extraction du texte sélectionné + local segment = line:sub(col_start, col_end) + + -- Extraction des mots + local words = {} + for word in segment:gmatch("%w+") do + table.insert(words, word) + end + -- Demande à l'utilisateur d'entrer l'URL + local url = vim.fn.input('URL: ') + -- Crée le lien Markdown + local markdown_link = '[' .. table.concat(words, " ") .. '](' .. url .. ')' + -- Remplace le mot surligné par le lien Markdown + vim.fn.setline(line_start, string.sub(line, 1, col_start - 1) .. markdown_link .. string.sub(line, col_end + 1)) + -- vim.api.nvim_command('normal! ciw' .. markdown_link) +end +-- Crée une commande Vim qui utilise cette fonction +vim.api.nvim_create_user_command('AddMarkdownLink', AddMarkdownLink, {}) +map('v', '', ':lua AddMarkdownLink()', {noremap = true})