From 475b794b98c26cc58b3f3ada624ab05bb718b4b5 Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Fri, 2 Jan 2026 16:39:27 +0100 Subject: feat: add todo.txt support. --- lua/plugins/todotxt.lua | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 lua/plugins/todotxt.lua (limited to 'lua/plugins/todotxt.lua') diff --git a/lua/plugins/todotxt.lua b/lua/plugins/todotxt.lua new file mode 100644 index 0000000..7794ae3 --- /dev/null +++ b/lua/plugins/todotxt.lua @@ -0,0 +1,41 @@ +vim.pack.add({ + { src = "https://github.com/phrmendes/todotxt.nvim" }, +}) + +require("todotxt").setup({ + todotxt = vim.env.HOME .. "/docs/sb/todo/todo.txt", + donetxt = vim.env.HOME .. "/docs/sb/todo/done.txt", + ghost_text = { + enable = true, + mappings = { + ["(A)"] = "now", -- High priority tasks + ["(B)"] = "next", -- Medium priority tasks + ["(C)"] = "today", -- Lower priority tasks + ["(D)"] = "tomorrow", -- Even lower priority + ["(E)"] = "this week", + ["(F)"] = "next week", + }, + prefix = " ", -- Text prefix + highlight = "Comment", -- Highlight group + } +}) + +vim.filetype.add({ + filename = { + ["todo.txt"] = "todotxt", + ["done.txt"] = "todotxt", + }, +}) + +vim.keymap.set("n", "tn", "TodoTxt new", { desc = "New todo entry" }) +vim.keymap.set("n", "tt", "TodoTxt", { desc = "Toggle todo.txt" }) +vim.keymap.set("n", "td", "DoneTxt", { desc = "Toggle done.txt" }) +vim.keymap.set("n", "tg", "TodoTxt ghost", { desc = "Toggle ghost text" }) +vim.keymap.set("n", "", "(TodoTxtToggleState)", { desc = "Toggle task state" }) +vim.keymap.set("n", "n", "(TodoTxtCyclePriority)", { desc = "Cycle priority" }) +vim.keymap.set("n", "tm", "(TodoTxtMoveDone)", { desc = "Move done tasks" }) +vim.keymap.set("n", "tss", "(TodoTxtSortTasks)", { desc = "Sort tasks (default)" }) +vim.keymap.set("n", "tsp", "(TodoTxtSortByPriority)", { desc = "Sort by priority" }) +vim.keymap.set("n", "tsc", "(TodoTxtSortByContext)", { desc = "Sort by context" }) +vim.keymap.set("n", "tsP", "(TodoTxtSortByProject)", { desc = "Sort by project" }) +vim.keymap.set("n", "tsd", "(TodoTxtSortByDueDate)", { desc = "Sort by due date" }) -- cgit v1.1