From 3c0c60de783d34aea9184a80be1289df1b04b28d Mon Sep 17 00:00:00 2001 From: Antoine Vaure Date: Mon, 12 Aug 2024 16:53:56 +0200 Subject: [PATCH] Update dap config --- lua/configs/dap.lua | 31 +++++++++++++++++++++++++++++-- lua/mappings.lua | 28 +++++++++++++++++----------- 2 files changed, 46 insertions(+), 13 deletions(-) diff --git a/lua/configs/dap.lua b/lua/configs/dap.lua index b625d0c..64b7bda 100644 --- a/lua/configs/dap.lua +++ b/lua/configs/dap.lua @@ -16,7 +16,7 @@ dap.adapters.cppdbg = { type = "executable", command = "gdb", args = { "-i", "dap" }, - console = 'externalTerminal', + -- console = 'externalTerminal', -- terminal_win_cmd = "tabnew", } @@ -26,9 +26,36 @@ dap.adapters.lldb = { name = 'lldb' } +dap.adapters.debugpy = function(cb, config) + if config.request == 'attach' then + ---@diagnostic disable-next-line: undefined-field + local port = (config.connect or config).port + ---@diagnostic disable-next-line: undefined-field + local host = (config.connect or config).host or '127.0.0.1' + cb({ + type = 'server', + port = assert(port, '`connect.port` is required for a python `attach` configuration'), + host = host, + options = { + source_filetype = 'python', + }, + }) + else + cb({ + type = 'executable', + command = 'python', + args = { '-m', 'debugpy.adapter' }, + options = { + source_filetype = 'python', + }, + }) + end +end + require('dap.ext.vscode').load_launchjs("dap_config.json", { cppdbg = { 'c', 'cpp' }, - lldb = { 'c', 'cpp' } + lldb = { 'c', 'cpp' }, + debugpy = { 'python' } }) dap.set_log_level("TRACE") diff --git a/lua/mappings.lua b/lua/mappings.lua index 5ddc0b2..7591ebd 100644 --- a/lua/mappings.lua +++ b/lua/mappings.lua @@ -102,10 +102,11 @@ wk.register({ -- DAP local dap = require('dap') -local dap_widget = require('dap.ui.widgets') -local dap_sb_frames = dap_widget.sidebar(dap_widget.frames) -local dap_sb_scopes = dap_widget.sidebar(dap_widget.scopes) -local dap_sb_session = dap_widget.sidebar(dap_widget.sessions) +local dap_widgets = require('dap.ui.widgets') +local dap_sb_frames = dap_widgets.sidebar(dap_widgets.frames) +local dap_sb_scopes = dap_widgets.sidebar(dap_widgets.scopes) +local dap_sb_session = dap_widgets.sidebar(dap_widgets.sessions) +local dap_sb_threads = dap_widgets.sidebar(dap_widgets.threads) vim.keymap.set('n', 'b', dap.toggle_breakpoint, { desc = "Toggle breakpoint" }) @@ -118,12 +119,14 @@ Hydra({ invoke_on_body = true, on_enter = function() dap.continue() + -- dap.repl.open() end, on_exit = function() dap.terminate() dap_sb_frames.close() dap_sb_scopes.close() dap_sb_session.close() + dap_sb_threads.close() dap.repl.close() end, hint = { @@ -135,15 +138,18 @@ Hydra({ heads = { { 'c', dap.continue, { desc = "Continue" } }, { 'r', dap.restart, { desc = "Restart" } }, + -- { 'i', dap.pause, { desc = "Pause" } }, + { 'I', nil, { } }, { 's', dap.step_into, { desc = "Step into" } }, - { 'n', dap.step_over, { desc = "Step over" } }, - { 'o', dap.step_out, { desc = "Step out" } }, + { 'a', dap.step_over, { desc = "Step over" } }, + { 'A', dap.step_out, { desc = "Step out" } }, { 'x', dap.repl.toggle, { desc = "repl" } }, - { 'f', dap_sb_frames.toggle, { desc = "Frames" } }, - { 'v', dap_sb_scopes.toggle, { desc = "Scopes" } }, - { 'z', dap_sb_session.toggle, { desc = "Session" } }, - { 'b', dap.toggle_breakpoint, { desc = "Breakpoint" } }, - { 'u', dap.up, { desc = "Up" } }, + { 't', dap_sb_threads.toggle, { desc = "Threads" } }, + -- { 'f', dap_sb_frames.toggle, { desc = "Frames" } }, + -- { 'v', dap_sb_scopes.toggle, { desc = "Scopes" } }, + -- { 'z', dap_sb_session.toggle, { desc = "Session" } }, + { 'K', dap_widgets.hover, { desc = "Hover" } }, + { 'D', dap.up, { desc = "Up" } }, { 'd', dap.down, { desc = "Down" } }, { 'q', nil, { exit = true, nowait = true, desc = 'Exit' } }, }