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:
swaits committed 2026-04-12 21:35:50 -06:00
1 parent 31daa1582c
commit 5118c03f83
2 files changed
+18

No files matched your search

+10
View File
@@ -61,6 +61,16 @@ function M.setup()
vim.fn.sign_define(s[1], spec)
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
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 })