diff --git a/lazy-lock.json b/lazy-lock.json index c1a6f5f..8359819 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,16 +1,16 @@ { "CopilotChat.nvim": { "branch": "main", "commit": "743d6005fb412c85309d3f3aa45f18f3a2fb2098" }, - "LazyVim": { "branch": "main", "commit": "28db03f958d58dfff3c647ce28fdc1cb88ac158d" }, + "LazyVim": { "branch": "main", "commit": "fca0af57cc3851b14f96a795a9c9bfafc5096dd1" }, "blink.cmp": { "branch": "main", "commit": "4b18c32adef2898f95cdef6192cbd5796c1a332d" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "catppuccin": { "branch": "main", "commit": "0a5de4da015a175f416d6ef1eda84661623e0500" }, "claudecode.nvim": { "branch": "main", "commit": "aa9a5cebebdbfa449c1c5ff229ba5d98e66bafed" }, "conform.nvim": { "branch": "master", "commit": "40dcec5555f960b0a04340d76eabdf4efe78599d" }, - "copilot.lua": { "branch": "master", "commit": "ef4bfc579b404c531c1738bacca82ed61501d877" }, + "copilot.lua": { "branch": "master", "commit": "00446a63cba4cc59bb24fc1e210a555a3e4acdfb" }, "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, "gitsigns.nvim": { "branch": "main", "commit": "9f3c6dd7868bcc116e9c1c1929ce063b978fa519" }, - "grug-far.nvim": { "branch": "main", "commit": "9370422e5cdd55321c0b8c4880082c5fd4e52e99" }, + "grug-far.nvim": { "branch": "main", "commit": "ac52ee2d87399dfd7b0d59d5b1d2bbaf2a4028f1" }, "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, @@ -24,7 +24,7 @@ "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, "nvim-lint": { "branch": "master", "commit": "606b823a57b027502a9ae00978ebf4f5d5158098" }, - "nvim-lspconfig": { "branch": "master", "commit": "e0fae251f8459940331960106d4bd9457cec23de" }, + "nvim-lspconfig": { "branch": "master", "commit": "ead0f5f342d8d323441e7d4b88f0fc436a81ad5f" }, "nvim-osc52": { "branch": "main", "commit": "04cfaba1865ae5c53b6f887c3ca7304973824fb2" }, "nvim-treesitter": { "branch": "main", "commit": "cb2cb74f3c3cbbcc17e79cada2060165d616d849" }, "nvim-treesitter-textobjects": { "branch": "main", "commit": "a0e182ae21fda68c59d1f36c9ed45600aef50311" }, @@ -32,8 +32,8 @@ "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "precognition.nvim": { "branch": "main", "commit": "06e4bfa339ddc55a49fd1adcbb403f6e0855c43b" }, - "render-markdown.nvim": { "branch": "main", "commit": "1c958131c083c8557ea499fdb08c88b8afb05c4e" }, - "snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" }, + "render-markdown.nvim": { "branch": "main", "commit": "1641b434bda26e0f4e3610985b3357fc213cf834" }, + "snacks.nvim": { "branch": "main", "commit": "9912042fc8bca2209105526ac7534e9a0c2071b2" }, "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, "toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" }, "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, diff --git a/lua/config/markdown-tasks.lua b/lua/config/markdown-tasks.lua index 4a964a9..fd3ed8c 100644 --- a/lua/config/markdown-tasks.lua +++ b/lua/config/markdown-tasks.lua @@ -64,7 +64,7 @@ end -- Strips the stats suffix from a heading line, returning the bare heading. local function strip_stats(line) - return (line:gsub("%s+✅%d+ ❌%d+%s*$", "")) + return (line:gsub("%s+✅%d+/%d+%s*$", "")) end -- Counts [x] and [ ] tasks in a section starting at header_line (1-indexed). @@ -89,7 +89,7 @@ local function update_section_stats() if line:match("^## ") then local base = strip_stats(line) local done, todo = count_section_tasks(lines, i) - local new_line = base .. " ✅" .. done .. " ❌" .. todo + local new_line = base .. " ✅" .. done .. "/" .. todo if new_line ~= line then lines[i] = new_line changed = true @@ -355,35 +355,43 @@ end function M.setup() local group = vim.api.nvim_create_augroup("MarkdownTasks", { clear = true }) + + local function setup_buf(buf) + local o = function(desc) return { buffer = buf, desc = desc } end + vim.keymap.set("n", "mn", new_task, o("New task")) + vim.keymap.set("n", "mx", toggle_task, o("Toggle done")) + vim.keymap.set("n", "mf", toggle_task_format, o("Toggle task format")) + vim.keymap.set("n", "mj", jump_next_task, o("Next task")) + vim.keymap.set("n", "mk", jump_prev_task, o("Prev task")) + vim.keymap.set("n", "ml", list_tasks_in_file, o("List tasks (file)")) + vim.keymap.set("n", "ms", search_all_tasks, o("Search all tasks")) + vim.keymap.set("n", "mt", insert_date, o("Insert date header")) + vim.keymap.set("n", "mmg", move_to_general, o("Move → general")) + vim.keymap.set("n", "mmt", move_to_today, o("Move → today")) + vim.keymap.set("n", "mmT", move_to_tomorrow, o("Move → tomorrow")) + vim.keymap.set("n", "mmy", move_to_yesterday, o("Move → yesterday")) + vim.keymap.set("n", "mmd", move_to_date, o("Move → date…")) + -- Update stats after leaving insert mode (covers new_task completions). + vim.api.nvim_create_autocmd("InsertLeave", { + buffer = buf, + group = group, + callback = update_section_stats, + }) + end + vim.api.nvim_create_autocmd("FileType", { pattern = "markdown", group = group, - callback = function(ev) - local buf = ev.buf - local o = function(desc) return { buffer = buf, desc = desc } end - - vim.keymap.set("n", "mn", new_task, o("New task")) - vim.keymap.set("n", "mx", toggle_task, o("Toggle done")) - vim.keymap.set("n", "mf", toggle_task_format, o("Toggle task format")) - vim.keymap.set("n", "mj", jump_next_task, o("Next task")) - vim.keymap.set("n", "mk", jump_prev_task, o("Prev task")) - vim.keymap.set("n", "ml", list_tasks_in_file, o("List tasks (file)")) - vim.keymap.set("n", "ms", search_all_tasks, o("Search all tasks")) - vim.keymap.set("n", "mt", insert_date, o("Insert date header")) - vim.keymap.set("n", "mmg", move_to_general, o("Move → general")) - vim.keymap.set("n", "mmt", move_to_today, o("Move → today")) - vim.keymap.set("n", "mmT", move_to_tomorrow, o("Move → tomorrow")) - vim.keymap.set("n", "mmy", move_to_yesterday, o("Move → yesterday")) - vim.keymap.set("n", "mmd", move_to_date, o("Move → date…")) - - -- Update stats after leaving insert mode (covers new_task completions). - vim.api.nvim_create_autocmd("InsertLeave", { - buffer = buf, - group = group, - callback = update_section_stats, - }) - end, + callback = function(ev) setup_buf(ev.buf) end, }) + + -- VeryLazy fires after the initial buffer's FileType event, so apply + -- keymaps to any markdown buffers that are already open. + for _, buf in ipairs(vim.api.nvim_list_bufs()) do + if vim.api.nvim_buf_is_loaded(buf) and vim.bo[buf].filetype == "markdown" then + setup_buf(buf) + end + end end return M diff --git a/lua/plugins/toggle-term.lua b/lua/plugins/toggle-term.lua index 2a6975e..3e3e6dd 100644 --- a/lua/plugins/toggle-term.lua +++ b/lua/plugins/toggle-term.lua @@ -10,7 +10,7 @@ return { open_mapping = [[tt]], direction = "float", float_opts = { border = "rounded" }, - shell = vim.fn.exepath("zsh") .. " -l -i", + shell = vim.o.shell .. " -l -i", }, config = function(_, opts) diff --git a/lua/plugins/which-key.lua b/lua/plugins/which-key.lua new file mode 100644 index 0000000..723c86a --- /dev/null +++ b/lua/plugins/which-key.lua @@ -0,0 +1,9 @@ +return { + "folke/which-key.nvim", + opts = { + spec = { + { "m", group = "markdown" }, + { "mm", group = "move task" }, + }, + }, +}