made windows nvim debugging work better with vscode
This commit is contained in:
1 parent
d2485ea96b
commit
66942a1daa
2 files changed
+25
-13
No files matched your search
+10
-2
@@ -44,7 +44,15 @@ if status_ok then
|
||||
--vim.keymap.set("n", "<leader>cdc", dap.continue, { desc = "Debug: Start/Continue" })
|
||||
-- new start debug keymap in debugger.lua
|
||||
vim.keymap.set("n", "<leader>cdi", dap.step_into, { desc = "Debug: Step Into" })
|
||||
vim.keymap.set("n", "<leader>cdo", dap.step_over, { desc = "Debug: Step Over" })
|
||||
vim.keymap.set("n", "<leader>cdO", dap.step_out, { desc = "Debug: Step Out" })
|
||||
vim.keymap.set("n", "<leader>cdn", dap.step_over, { desc = "Debug: Step Over" })
|
||||
vim.keymap.set("n", "<leader>cdO", dap.step_out, { desc = "Debug: Step Out" })
|
||||
vim.keymap.set("n", "<leader>cdt", dap.terminate, { desc = "Debug: Terminate" })
|
||||
|
||||
vim.keymap.set("n", "<leader>cdr", dap.restart, { desc = "Debug: Restart" })
|
||||
vim.keymap.set("n", "<leader>cdp", dap.pause, { desc = "Debug: Pause" })
|
||||
vim.keymap.set("n", "<leader>cd[", dap.up, { desc = "Debug: Callstack up" })
|
||||
vim.keymap.set("n", "<leader>cd]", dap.down, { desc = "Debug: Callstack down" })
|
||||
vim.keymap.set("n", "<leader>cdh", function()
|
||||
require("dap.ui.widgets").hover()
|
||||
end, { desc = "DAP: Hover Variable Value" })
|
||||
end
|
||||
+15
-11
@@ -42,6 +42,7 @@ end
|
||||
local function start_debug_session()
|
||||
|
||||
|
||||
local is_windows = vim.fn.has("win32") == 1
|
||||
local dap = require("dap")
|
||||
-- 3. Platform-agnostic Launcher Configuration
|
||||
if not is_windows then
|
||||
@@ -57,9 +58,11 @@ local function start_debug_session()
|
||||
},
|
||||
}
|
||||
else
|
||||
local vscode = require('dap.ext.vscode')
|
||||
local launch_json = vim.fn.getcwd() .. "/.vscode/launch.json"
|
||||
if vim.fn.filereadable(launch_json) == 1 then
|
||||
dap.configurations.cpp = {}
|
||||
dap.configurations.c = {}
|
||||
-- 1. CRUCIAL FIX: Alias the adapters directly so nvim-dap doesn't complain about a missing engine
|
||||
--if dap.adapters.cppdbg then
|
||||
-- dap.adapters.cppvsdbg = dap.adapters.cppdbg
|
||||
@@ -67,11 +70,11 @@ local function start_debug_session()
|
||||
-- dap.adapters.cppvsdbg = dap.adapters.codelldb
|
||||
--end
|
||||
-- 2. Map types inside launch.json to your C++ filetypes
|
||||
vscode.load_launchjs(nil, {
|
||||
vscode.type_to_filetypes = {
|
||||
cppvsdbg = { "cpp", "c" },
|
||||
cppdbg = { "cpp", "c" },
|
||||
codelldb = { "cpp", "c" },
|
||||
})
|
||||
}
|
||||
else
|
||||
-- No launch.json exists. Re-inject your FZF picker template rules
|
||||
dap.configurations.cpp = {
|
||||
@@ -123,7 +126,7 @@ return {
|
||||
|
||||
-- Automatically manage debugger installations via Mason
|
||||
require("mason-nvim-dap").setup({
|
||||
ensure_installed = { "codelldb" }, -- Auto-installs CodeLLDB
|
||||
ensure_installed = { "codelldb", "cppdbg" }, -- Auto-installs CodeLLDB
|
||||
automatic_installation = true,
|
||||
})
|
||||
|
||||
@@ -158,7 +161,7 @@ return {
|
||||
executable = {
|
||||
command = codelldb_path,
|
||||
args = {"--port", "${port}"},
|
||||
detached = not is_windows,
|
||||
detached = false,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -173,13 +176,13 @@ return {
|
||||
}
|
||||
|
||||
dap.adapters.cppvsdbg = {
|
||||
id = "cppdbg",
|
||||
type = "executable",
|
||||
command = cpptools_path,
|
||||
-- For Windows subprocess tracking stability
|
||||
options = {
|
||||
detached = not is_windows,
|
||||
},
|
||||
type = 'server',
|
||||
port = "${port}",
|
||||
executable = {
|
||||
command = codelldb_path,
|
||||
args = {"--port", "${port}"},
|
||||
detached = false,
|
||||
}
|
||||
}
|
||||
|
||||
-- 3. Platform-agnostic Launcher Configuration
|
||||
@@ -225,3 +228,4 @@ return {
|
||||
end
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user