diff options
| author | Crony Akatsuki <crony@cronyakatsuki.xyz> | 2026-01-02 16:39:27 +0100 |
|---|---|---|
| committer | Crony Akatsuki <crony@cronyakatsuki.xyz> | 2026-01-02 16:39:27 +0100 |
| commit | 475b794b98c26cc58b3f3ada624ab05bb718b4b5 (patch) | |
| tree | cba74bf73c7afbcd514bfe6c0a8b3c277fd05f1f | |
| parent | d83216191929b4eb4c3c7cb971c3697ae9ba9c8b (diff) | |
| download | nvim-475b794b98c26cc58b3f3ada624ab05bb718b4b5.zip nvim-475b794b98c26cc58b3f3ada624ab05bb718b4b5.tar.gz | |
feat: add todo.txt support.
| -rw-r--r-- | lua/plugins/init.lua | 1 | ||||
| -rw-r--r-- | lua/plugins/todotxt.lua | 41 | ||||
| -rw-r--r-- | nvim-pack-lock.json | 4 |
3 files changed, 46 insertions, 0 deletions
diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index 287cd2f..1ce2bb7 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -5,3 +5,4 @@ require("plugins.mini") require("plugins.mini.init") require("plugins.markdown") require("plugins.conform") +require("plugins.todotxt") 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", "<leader>tn", "<cmd>TodoTxt new<cr>", { desc = "New todo entry" }) +vim.keymap.set("n", "<leader>tt", "<cmd>TodoTxt<cr>", { desc = "Toggle todo.txt" }) +vim.keymap.set("n", "<leader>td", "<cmd>DoneTxt<cr>", { desc = "Toggle done.txt" }) +vim.keymap.set("n", "<leader>tg", "<cmd>TodoTxt ghost<cr>", { desc = "Toggle ghost text" }) +vim.keymap.set("n", "<cr>", "<Plug>(TodoTxtToggleState)", { desc = "Toggle task state" }) +vim.keymap.set("n", "<c-c>n", "<Plug>(TodoTxtCyclePriority)", { desc = "Cycle priority" }) +vim.keymap.set("n", "<leader>tm", "<Plug>(TodoTxtMoveDone)", { desc = "Move done tasks" }) +vim.keymap.set("n", "<leader>tss", "<Plug>(TodoTxtSortTasks)", { desc = "Sort tasks (default)" }) +vim.keymap.set("n", "<leader>tsp", "<Plug>(TodoTxtSortByPriority)", { desc = "Sort by priority" }) +vim.keymap.set("n", "<leader>tsc", "<Plug>(TodoTxtSortByContext)", { desc = "Sort by context" }) +vim.keymap.set("n", "<leader>tsP", "<Plug>(TodoTxtSortByProject)", { desc = "Sort by project" }) +vim.keymap.set("n", "<leader>tsd", "<Plug>(TodoTxtSortByDueDate)", { desc = "Sort by due date" }) diff --git a/nvim-pack-lock.json b/nvim-pack-lock.json index 4f37eda..3b1af10 100644 --- a/nvim-pack-lock.json +++ b/nvim-pack-lock.json @@ -35,6 +35,10 @@ "rose-pine": { "rev": "cf2a288696b03d0934da713d66c6d71557b5c997", "src": "https://github.com/rose-pine/neovim" + }, + "todotxt.nvim": { + "rev": "f514ac34a491a01be3eeb2827aace06505032d38", + "src": "https://github.com/phrmendes/todotxt.nvim" } } }
\ No newline at end of file |
