From 0a45fd07d3e5d982f078f1fb212b29e1245ff3c6 Mon Sep 17 00:00:00 2001 From: Price Hiller Date: Sat, 16 Mar 2024 09:05:15 -0500 Subject: [PATCH] refactor(nvim): integrate `z.lua` with 'DirChanged' events --- dots/.config/nvim/lua/core/cmds.lua | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/dots/.config/nvim/lua/core/cmds.lua b/dots/.config/nvim/lua/core/cmds.lua index d952b302..f274be22 100644 --- a/dots/.config/nvim/lua/core/cmds.lua +++ b/dots/.config/nvim/lua/core/cmds.lua @@ -150,7 +150,6 @@ M.setup = function() }) else local stripped_stdout = cmd_out.stdout:gsub("\n$", "") - vim.system({"lua", z_lua_path, "--add", stripped_stdout}) vim.cmd("silent! cd " .. stripped_stdout) vim.notify("Chdir to `" .. stripped_stdout .. "`", vim.log.levels.INFO, { title = "z.lua", @@ -175,6 +174,32 @@ M.setup = function() end, desc = "Invoke `z.lua`", }) + + vim.api.nvim_create_autocmd("DirChanged", { + callback = function(args) + vim.system({ "lua", z_lua_path, "--add", args.file }, { text = true }, function(out) + if out.code ~= 0 then + vim.notify( + "Failed to regiser directory with `z.lua`!\n====STDERR====\n" + .. out.stderr + .. "\n====STDOUT====\n" + .. out.stdout, + vim.log.levels.WARN, + { + title = "z.lua", + on_open = function(win) + vim.api.nvim_set_option_value( + "filetype", + "markdown", + { buf = vim.api.nvim_win_get_buf(win) } + ) + end, + } + ) + end + end) + end, + }) end return M