diff options
Diffstat (limited to '.config/nvim/lua/plugins/nvim-dap.lua')
| -rw-r--r-- | .config/nvim/lua/plugins/nvim-dap.lua | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/.config/nvim/lua/plugins/nvim-dap.lua b/.config/nvim/lua/plugins/nvim-dap.lua new file mode 100644 index 0000000..dd4bbee --- /dev/null +++ b/.config/nvim/lua/plugins/nvim-dap.lua @@ -0,0 +1,58 @@ +return { + 'mfussenegger/nvim-dap', + dependencies = { 'williamboman/mason.nvim' }, + -- NOTE:nvim-dap has no setup function + -- if there is just opts, lazy will attempt to call setup which causes an error + -- Having an empty config function makes lazy not call setup which fixes the issue + config = function() end, + opts = function() + -- Load dap keymaps + require('dap-keymaps') + local dap = require('dap') + + -- Setup C/C++ dap + if not dap.adapters['codelldb'] then + dap.adapters['codelldb'] = { + type = 'server', + host = 'localhost', + port = '${port}', + executable = { + command = 'codelldb', + args = { + '--port', + '${port}', + }, + }, + } + end + for _, lang in ipairs({ 'c', 'cpp' }) do + dap.configurations[lang] = { + { + type = 'codelldb', + request = 'launch', + name = 'Launch file', + program = function() + if vim.g.dap_codelldb_exe then + return vim.fn.getcwd() .. '/' .. vim.g.dap_codelldb_exe + end + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + args = function() + if vim.g.dap_codelldb_args then + return vim.g.dap_codelldb_args + end + return {} + end, + cwd = '${workspaceFolder}', + }, + { + type = 'codelldb', + request = 'attach', + name = 'Attach to process', + pid = require('dap.utils').pick_process, + cwd = '${workspaceFolder}', + }, + } + end + end, +} |
