From 8b4258408edab6fece3d9aac274a10db9884ddc2 Mon Sep 17 00:00:00 2001 From: "Kenneth Benzie (Benie)" Date: Thu, 11 Jul 2024 20:09:43 +0100 Subject: [PATCH] Add :CheckboxToggle and mapping --- plugin/commands.lua | 15 +++++++++++++++ plugin/mappings.lua | 3 +++ 2 files changed, 18 insertions(+) diff --git a/plugin/commands.lua b/plugin/commands.lua index 2e3a785..5fcf51a 100644 --- a/plugin/commands.lua +++ b/plugin/commands.lua @@ -150,3 +150,18 @@ vim.api.nvim_create_user_command('PreProcIfWrap', function(opts) local window = vim.api.nvim_get_current_win() vim.api.nvim_win_set_cursor(window, { opts.line1, 5 }) end, { range = true }) + +vim.api.nvim_create_user_command('CheckboxToggle', function(opts) + local linenr = vim.fn.line('.') + local line = vim.fn.getline(linenr) + local pos = string.find(line, '[ ]', 0, true) + if pos == nil then + pos = string.find(line, '[x]', 0, true) + if pos == nil then + return + end + end + local x = string.sub(line, pos + 1, pos + 1) + if x == 'x' then x = ' ' else x = 'x' end + vim.fn.setline(linenr, string.sub(line, 1, pos) .. x .. string.sub(line, pos + 2)) +end, {}) diff --git a/plugin/mappings.lua b/plugin/mappings.lua index 0f31448..bcbcfdd 100644 --- a/plugin/mappings.lua +++ b/plugin/mappings.lua @@ -47,3 +47,6 @@ vim.keymap.set('t', '', ':Asm', opts) -- Mappings to grep for then fuzzy find the word under the cursor or visual selection vim.keymap.set('n', 'rg', ':Rg', opts) vim.keymap.set('v', 'rg', ":'<,'>Rg", opts) + +-- Mapping to toggle checkboxes +vim.keymap.set('n', '', ':CheckboxToggle', opts)