Finally got dap all configured, works with c/c++ and godot (gdscript).
Need to figure out a watch window or something I have frame and sessions window but those are not that usful (might also need hover and memory window)
This commit is contained in:
parent
1738040c89
commit
3c3890f786
47
init.lua
47
init.lua
|
|
@ -102,6 +102,12 @@ dap.adapters.godot = {
|
||||||
port = 6006,
|
port = 6006,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dap.adapters.gdb = {
|
||||||
|
type = "executable",
|
||||||
|
command = "gdb",
|
||||||
|
args = { "--interpreter=dap", "--eval-command", "set print pretty on" }
|
||||||
|
}
|
||||||
|
|
||||||
dap.configurations.gdscript = {
|
dap.configurations.gdscript = {
|
||||||
{
|
{
|
||||||
type = "godot",
|
type = "godot",
|
||||||
|
|
@ -111,3 +117,44 @@ dap.configurations.gdscript = {
|
||||||
scene = "main"
|
scene = "main"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
-- TODO: could do rust, zig, odin, jai (?)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,9 @@ vim.keymap.set('n', '<leader>ss', '<cmd>Telescope spell_suggest<cr>', opts)
|
||||||
vim.keymap.set('n', '<leader>t', '<cmd>Telescope<cr>', opts)
|
vim.keymap.set('n', '<leader>t', '<cmd>Telescope<cr>', opts)
|
||||||
|
|
||||||
local dap = require('dap')
|
local dap = require('dap')
|
||||||
|
local widgets = require('dap.ui.widgets')
|
||||||
|
local frame_bar = widgets.sidebar(widgets.frames)
|
||||||
|
local session_bar = widgets.sidebar(widgets.sessions)
|
||||||
|
|
||||||
local on_attach = function(client, bufnr)
|
local on_attach = function(client, bufnr)
|
||||||
client.server_capabilities.semanticTokensProvider = nil
|
client.server_capabilities.semanticTokensProvider = nil
|
||||||
|
|
@ -44,6 +47,8 @@ local on_attach = function(client, bufnr)
|
||||||
vim.keymap.set('n', '<F11>', dap.step_into, bufopts)
|
vim.keymap.set('n', '<F11>', dap.step_into, bufopts)
|
||||||
vim.keymap.set('n', '<F12>', dap.step_out, bufopts)
|
vim.keymap.set('n', '<F12>', dap.step_out, bufopts)
|
||||||
--TODO: dap.ui.widgets, widgets.sidebar
|
--TODO: dap.ui.widgets, widgets.sidebar
|
||||||
|
vim.keymap.set('n', '<leader>df', frame_bar.toggle, bufopts)
|
||||||
|
vim.keymap.set('n', '<leader>ds', session_bar.toggle, bufopts)
|
||||||
end
|
end
|
||||||
|
|
||||||
local godot_port = os.getenv 'GDScript_Port' or '6005'
|
local godot_port = os.getenv 'GDScript_Port' or '6005'
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue