From e2dcd33fccd1acaae82990897d3fe29862bbc68c Mon Sep 17 00:00:00 2001 From: pmcc Date: Mon, 3 Aug 2026 20:25:15 -0400 Subject: [PATCH] Fix Odin DAP flow: schedule dap.run, raise adapter timeout, keep neo-tree width --- dot_config/nvim/lua/plugins/dap.lua | 31 +++++++++++++++++++------ dot_config/nvim/lua/plugins/neotree.lua | 4 ++++ 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/dot_config/nvim/lua/plugins/dap.lua b/dot_config/nvim/lua/plugins/dap.lua index 06fbd02..ad8bce4 100644 --- a/dot_config/nvim/lua/plugins/dap.lua +++ b/dot_config/nvim/lua/plugins/dap.lua @@ -16,6 +16,7 @@ dap.adapters.lldb = { type = "executable", command = lldb_dap, name = "lldb", + options = { initialize_timeout_sec = 20 }, } local function project_binary() @@ -38,19 +39,35 @@ dap.configurations.odin = { dapui.setup({}) dap.listeners.after.event_initialized["dapui"] = dapui.open -dap.listeners.before.event_terminated["dapui"] = dapui.close -dap.listeners.before.event_exited["dapui"] = dapui.close + +local neotree_width = 30 + +local function close_dapui() + dapui.close() + for _, win in ipairs(vim.api.nvim_list_wins()) do + if vim.bo[vim.api.nvim_win_get_buf(win)].filetype == "neo-tree" then + vim.api.nvim_win_set_width(win, neotree_width) + end + end +end + +dap.listeners.before.event_terminated["dapui_restore"] = close_dapui +dap.listeners.before.event_exited["dapui_restore"] = close_dapui local function run_or_continue() if dap.session() then dap.continue() elseif vim.bo.filetype == "odin" then + vim.notify("odin: building...", vim.log.levels.INFO) vim.system({ "odin", "build", ".", "-debug" }, { cwd = vim.fn.getcwd() }, function(obj) - if obj.code ~= 0 then - vim.notify("odin build failed (code " .. obj.code .. ")", vim.log.levels.ERROR) - return - end - dap.run(dap.configurations.odin[1]) + vim.schedule(function() + if obj.code ~= 0 then + vim.notify("odin build failed (code " .. obj.code .. ")", vim.log.levels.ERROR) + return + end + vim.api.nvim_echo({}, false, {}) + dap.run(dap.configurations.odin[1]) + end) end) else dap.continue() diff --git a/dot_config/nvim/lua/plugins/neotree.lua b/dot_config/nvim/lua/plugins/neotree.lua index 559c82a..287a761 100644 --- a/dot_config/nvim/lua/plugins/neotree.lua +++ b/dot_config/nvim/lua/plugins/neotree.lua @@ -4,3 +4,7 @@ vim.pack.add({ { src = "https://github.com/MunifTanjim/nui.nvim" }, { src = "https://github.com/nvim-tree/nvim-web-devicons" }, }) + +require("neo-tree").setup({ + window = { width = 30 }, +})