fix: python console output and startup breakpoint restoration
adapters/python: set `console = "integratedTerminal"` so debugpy routes stdout/stderr via RunInTerminalRequest into dapui's Console pane. Under the default (internalConsole), debugpy emits DAP OutputEvents that nvim-dap forwards to the REPL buffer — which turbo-debug's layout deliberately omits, so print() output vanished. breakpoints: sweep already-loaded buffers with load_breakpoints() right after sign_define. plugin/turbo-debug.lua defers setup via vim.schedule so deps register first, which means BufReadPost has already fired for any file opened on the command line — persistent-breakpoints' autocmd misses it. The one-shot sweep is idempotent; placing it after sign_define avoids a first-paint flicker of dap's default 'B' sign.
This commit is contained in:
2 files changed
+18
No files matched your search
@@ -36,6 +36,14 @@ function M.register(dap)
|
|||||||
name = "Launch file",
|
name = "Launch file",
|
||||||
program = "${file}",
|
program = "${file}",
|
||||||
pythonPath = function() return find_python() end,
|
pythonPath = function() return find_python() end,
|
||||||
|
-- integratedTerminal routes the program via RunInTerminalRequest,
|
||||||
|
-- which nvim-dap spawns in a terminal buffer. dapui registers its
|
||||||
|
-- Console element as `dap.defaults.fallback.terminal_win_cmd`, so
|
||||||
|
-- stdout/stderr land in the visible Console pane. Default
|
||||||
|
-- (internalConsole) sends OutputEvents that nvim-dap routes to the
|
||||||
|
-- REPL buffer — which turbo-debug's layout deliberately omits, so
|
||||||
|
-- print() output vanishes. `input()` also works under this mode.
|
||||||
|
console = "integratedTerminal",
|
||||||
},
|
},
|
||||||
}, { "python" })
|
}, { "python" })
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -61,6 +61,16 @@ function M.setup()
|
|||||||
vim.fn.sign_define(s[1], spec)
|
vim.fn.sign_define(s[1], spec)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- persistent-breakpoints.setup() only installs its BufReadPost autocmd —
|
||||||
|
-- for files opened from the command line (`nvim foo.py`), BufReadPost has
|
||||||
|
-- already fired before our deferred plugin/turbo-debug.lua setup runs, so
|
||||||
|
-- the autocmd misses the startup buffer and saved breakpoints never
|
||||||
|
-- reappear. load_breakpoints() iterates all listed buffers and is
|
||||||
|
-- idempotent, so one post-sign_define sweep catches the missed ones
|
||||||
|
-- without a flicker of dap's default 'B' sign. Placed after sign_define
|
||||||
|
-- so the restored breakpoints render with our emoji from the first paint.
|
||||||
|
pcall(require("persistent-breakpoints.api").load_breakpoints)
|
||||||
|
|
||||||
-- unobtrusive inline virtual text: italic, comment-colored
|
-- unobtrusive inline virtual text: italic, comment-colored
|
||||||
vim.api.nvim_set_hl(0, "NvimDapVirtualText", { default = true, link = "Comment", italic = true })
|
vim.api.nvim_set_hl(0, "NvimDapVirtualText", { default = true, link = "Comment", italic = true })
|
||||||
vim.api.nvim_set_hl(0, "NvimDapVirtualTextChanged", { default = true, link = "DiagnosticWarn", italic = true })
|
vim.api.nvim_set_hl(0, "NvimDapVirtualTextChanged", { default = true, link = "DiagnosticWarn", italic = true })
|
||||||
|
|||||||
Reference in new issue
Block a user