From cf051a148112d3c9b944b18506119b7c160bd130 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Fri, 25 Oct 2024 12:06:51 +0200 Subject: Add dap for c/c++/rust --- .config/nvim/init.lua | 2 +- .config/nvim/lua/dap_conf.lua | 52 +++++++++++++++++++++++++++++++++++++++++++ .config/nvim/lua/test-dap.lua | 30 ------------------------- 3 files changed, 53 insertions(+), 31 deletions(-) create mode 100644 .config/nvim/lua/dap_conf.lua delete mode 100644 .config/nvim/lua/test-dap.lua diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index faa58e1..887de5e 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -208,7 +208,7 @@ vim.cmd.highlight('clear @ibl.scope.underline.1') -- General settings require('git') -- Load git-related settings require('lsp_conf') -- Load LSP configuration -require('test-dap') +require('dap_conf') -- Set up language client for Go vim.g.LanguageClient_serverCommands = { go = { 'gopls' } } diff --git a/.config/nvim/lua/dap_conf.lua b/.config/nvim/lua/dap_conf.lua new file mode 100644 index 0000000..94abc72 --- /dev/null +++ b/.config/nvim/lua/dap_conf.lua @@ -0,0 +1,52 @@ +local dap, dapui = require('dap'), require('dapui') +local dapgo = require('dap-go') +dapui.setup() +dapgo.setup() +dap.listeners.before.attach.dapui_config = function() + dapui.open() +end +dap.listeners.before.launch.dapui_config = function() + dapui.open() +end + +dap.adapters.gdb = { + type = "executable", + command = "gdb", + args = { "--interpreter=dap", "--eval-command", "set print pretty on" } +} + +local configurations = {'c', 'cpp', 'rust'} + +for _, conf in ipairs(configurations) do + dap.configurations[conf] = { + { + name = "Launch", + type = "gdb", + request = "launch", + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + cwd = "${workspaceFolder}", + stopAtBeginningOfMainSubprogram = false, + }, + } +end + +-- Include the next few lines until the comment only if you feel you need it +dap.listeners.before.event_terminated.dapui_config = function() + dapui.close() +end +dap.listeners.before.event_exited.dapui_config = function() + dapui.close() +end +-- Include everything after this + + +vim.keymap.set('n', '', function() require('dap').continue() end) +vim.keymap.set('n', '', function() require('dap').step_over() end) +vim.keymap.set('n', '', function() require('dap').step_into() end) +vim.keymap.set('n', '', function() require('dap').step_out() end) +vim.api.nvim_create_user_command('Bk',function() require('dap').toggle_breakpoint() end, {}) +vim.api.nvim_create_user_command('DapRepeat',function() require('dap').run_last() end, {}) +vim.api.nvim_create_user_command('DapOpen',function() dapui.open() end, {}) +vim.api.nvim_create_user_command('DapClose',function() dapui.close() end, {}) diff --git a/.config/nvim/lua/test-dap.lua b/.config/nvim/lua/test-dap.lua deleted file mode 100644 index 4053c51..0000000 --- a/.config/nvim/lua/test-dap.lua +++ /dev/null @@ -1,30 +0,0 @@ -local dap, dapui = require('dap'), require('dapui') -local dapgo = require('dap-go') -dapui.setup() -dapgo.setup() -dap.listeners.before.attach.dapui_config = function() - dapui.open() -end -dap.listeners.before.launch.dapui_config = function() - dapui.open() -end - - --- Include the next few lines until the comment only if you feel you need it -dap.listeners.before.event_terminated.dapui_config = function() - dapui.close() -end -dap.listeners.before.event_exited.dapui_config = function() - dapui.close() -end --- Include everything after this - - -vim.keymap.set('n', '', function() require('dap').continue() end) -vim.keymap.set('n', '', function() require('dap').step_over() end) -vim.keymap.set('n', '', function() require('dap').step_into() end) -vim.keymap.set('n', '', function() require('dap').step_out() end) -vim.api.nvim_create_user_command('Bk',function() require('dap').toggle_breakpoint() end, {}) -vim.api.nvim_create_user_command('DapRepeat',function() require('dap').run_last() end, {}) -vim.api.nvim_create_user_command('DapOpen',function() dapui.open() end, {}) -vim.api.nvim_create_user_command('DapClose',function() dapui.close() end, {}) -- cgit v1.2.3-18-g5258