[DAP] Improve
This commit is contained in:
@@ -58,52 +58,7 @@ return {
|
|||||||
{ text = "", texthl = "DapStopped", linehl = "DapStopped", numhl = "DapStopped" }
|
{ text = "", texthl = "DapStopped", linehl = "DapStopped", numhl = "DapStopped" }
|
||||||
)
|
)
|
||||||
|
|
||||||
dap.configurations.python = {
|
require("plugins.testing.debuggers.python")
|
||||||
{
|
require("plugins.testing.debuggers.gdb")
|
||||||
type = "python",
|
|
||||||
request = "launch",
|
|
||||||
name = "Launch file",
|
|
||||||
|
|
||||||
-- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options
|
|
||||||
|
|
||||||
program = "${file}", -- This configuration will launch the current file if used.
|
|
||||||
pythonPath = function()
|
|
||||||
local cwd = vim.fn.getcwd()
|
|
||||||
if vim.fn.executable(cwd .. "/venv/bin/python") == 1 then
|
|
||||||
return cwd .. "/venv/bin/python"
|
|
||||||
elseif vim.fn.executable(cwd .. "/.venv/bin/python") == 1 then
|
|
||||||
return cwd .. "/.venv/bin/python"
|
|
||||||
else
|
|
||||||
return "/usr/bin/python"
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
dap.adapters.python = 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 = vim.fn.stdpath("data") .. "/mason/packages/debugpy/venv/bin/python",
|
|
||||||
args = { "-m", "debugpy.adapter" },
|
|
||||||
options = {
|
|
||||||
source_filetype = "python",
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
46
nvim/lua/plugins/testing/debuggers/gdb.lua
Normal file
46
nvim/lua/plugins/testing/debuggers/gdb.lua
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
local dap = require("dap")
|
||||||
|
dap.adapters.gdb = {
|
||||||
|
type = "executable",
|
||||||
|
command = "gdb",
|
||||||
|
args = { "--interpreter=dap", "--eval-command", "set print pretty on" },
|
||||||
|
}
|
||||||
|
|
||||||
|
dap.configurations.c = {
|
||||||
|
{
|
||||||
|
name = "Launch",
|
||||||
|
type = "gdb",
|
||||||
|
request = "launch",
|
||||||
|
program = function()
|
||||||
|
return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
|
||||||
|
end,
|
||||||
|
args = {}, -- provide arguments if needed
|
||||||
|
cwd = "${workspaceFolder}",
|
||||||
|
stopAtBeginningOfMainSubprogram = false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "Select and attach to process",
|
||||||
|
type = "gdb",
|
||||||
|
request = "attach",
|
||||||
|
program = function()
|
||||||
|
return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
|
||||||
|
end,
|
||||||
|
pid = function()
|
||||||
|
local name = vim.fn.input("Executable name (filter): ")
|
||||||
|
return require("dap.utils").pick_process({ filter = name })
|
||||||
|
end,
|
||||||
|
cwd = "${workspaceFolder}",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "Attach to gdbserver :1234",
|
||||||
|
type = "gdb",
|
||||||
|
request = "attach",
|
||||||
|
target = "localhost:1234",
|
||||||
|
program = function()
|
||||||
|
return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
|
||||||
|
end,
|
||||||
|
cwd = "${workspaceFolder}",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
dap.configurations.cpp = dap.configurations.c
|
||||||
|
dap.configurations.rust = dap.configurations.c
|
48
nvim/lua/plugins/testing/debuggers/python.lua
Normal file
48
nvim/lua/plugins/testing/debuggers/python.lua
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
local dap = require("dap")
|
||||||
|
dap.configurations.python = {
|
||||||
|
{
|
||||||
|
type = "python",
|
||||||
|
request = "launch",
|
||||||
|
name = "Launch file",
|
||||||
|
|
||||||
|
-- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options
|
||||||
|
|
||||||
|
program = "${file}", -- This configuration will launch the current file if used.
|
||||||
|
pythonPath = function()
|
||||||
|
local cwd = vim.fn.getcwd()
|
||||||
|
if vim.fn.executable(cwd .. "/venv/bin/python") == 1 then
|
||||||
|
return cwd .. "/venv/bin/python"
|
||||||
|
elseif vim.fn.executable(cwd .. "/.venv/bin/python") == 1 then
|
||||||
|
return cwd .. "/.venv/bin/python"
|
||||||
|
else
|
||||||
|
return "/usr/bin/python"
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
dap.adapters.python = 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 = vim.fn.stdpath("data") .. "/mason/packages/debugpy/venv/bin/python",
|
||||||
|
args = { "-m", "debugpy.adapter" },
|
||||||
|
options = {
|
||||||
|
source_filetype = "python",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
Reference in New Issue
Block a user