From 12759979a4e516b6013bd9033438dd5c1133d139 Mon Sep 17 00:00:00 2001 From: Huy Hoang Date: Tue, 31 Mar 2026 07:01:24 +0700 Subject: [PATCH] fix: fallback action path for todo actions. Sometime todo action return empty root --- lua/dev-tools/actions/todo.lua | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/lua/dev-tools/actions/todo.lua b/lua/dev-tools/actions/todo.lua index 6cc0b3d..7f427d6 100644 --- a/lua/dev-tools/actions/todo.lua +++ b/lua/dev-tools/actions/todo.lua @@ -36,7 +36,17 @@ return { { name = "Open Todo", fn = function(action) - local path = action.ctx.root .. "/" .. filename + local root = action.ctx.root + if not root or root == "" then + if action.ctx.bufname then + root = vim.fs.dirname(action.ctx.bufname) + elseif action.ctx.buf then + local bufname = vim.api.nvim_buf_get_name(action.ctx.buf) + root = vim.fs.dirname(bufname) + end + end + local path = root .. "/" .. filename + if vim.fn.filereadable(path) == 0 then return create_todo_file(path) end vim.cmd("edit " .. path) end, @@ -44,7 +54,14 @@ return { { name = "Add Todo", fn = function(action) - local path = action.ctx.root .. "/" .. filename + local root = action.ctx.root + if not root or root == "" then + if action.ctx.bufname then root = vim.fs.dirname(action.ctx.bufname) end + elseif action.ctx.buf then + local bufname = vim.api.nvim_buf_get_name(action.ctx.buf) + root = vim.fs.dirname(bufname) + end + local path = root .. "/" .. filename vim.ui.input({ prompt = "Todo: " }, function(input) if not input or input == "" then return end