dotfiles/symlinks/config/nvim/plugin/dap.lua

61 lines
2.0 KiB
Lua
Raw Normal View History

2021-02-25 16:06:52 +00:00
-------------------------------------------------------------------------------
-- - NeoVim DAP (Debug Adapter Protocol) config -
-------------------------------------------------------------------------------
local dap = require('dap')
2021-11-05 09:56:28 +00:00
local dap_install = require('dap-install')
2021-02-25 16:06:52 +00:00
2021-11-05 09:56:28 +00:00
local dbg_list = require("dap-install.api.debuggers").get_installed_debuggers()
2021-02-25 16:06:52 +00:00
2021-11-05 09:56:28 +00:00
for _, debugger in ipairs(dbg_list) do
dap_install.config(debugger)
end
2021-11-05 09:56:28 +00:00
vim.cmd [[ au FileType dap-repl lua require('dap.ext.autocompl').attach() ]]
2021-02-25 16:06:52 +00:00
-- Nvim DAP Treesitter integration
2021-11-05 09:56:28 +00:00
require("nvim-dap-virtual-text").setup()
2021-03-03 17:07:02 +00:00
-- Keymaps
local function set_keymap(...) vim.api.nvim_set_keymap(...) end
2021-03-09 17:39:56 +00:00
local default_opts = {noremap = true, silent = true}
2021-03-03 17:07:02 +00:00
set_keymap('n', '<Leader>db', "<cmd>lua require'dap'.toggle_breakpoint()<CR>", default_opts)
set_keymap('n', '<Leader>dc', "<cmd>lua require'dap'.continue()<CR>", default_opts)
set_keymap('n', '<Leader>dso', "<cmd>lua require'dap'.step_over()<CR>", default_opts)
set_keymap('n', '<Leader>dsi', "<cmd>lua require'dap'.step_into()<CR>", default_opts)
set_keymap('n', '<Leader>dro', "<cmd>lua require'dap'.open()<CR>", default_opts)
2021-11-05 09:56:28 +00:00
-- Nvim DAP UI
require("dapui").setup()
2021-03-03 17:07:02 +00:00
-- Debugger Hover map
local api = vim.api
local keymap_restore = {}
2021-04-21 09:54:39 +00:00
dap.listeners.after['event_initialized']['me'] = function()
2021-03-03 17:07:02 +00:00
for _, buf in pairs(api.nvim_list_bufs()) do
local keymaps = api.nvim_buf_get_keymap(buf, 'n')
for _, keymap in pairs(keymaps) do
if keymap.lhs == "K" then
table.insert(keymap_restore, keymap)
api.nvim_buf_del_keymap(buf, 'n', 'K')
end
end
end
api.nvim_set_keymap(
'n', 'K', '<Cmd>lua require("dap.ui.variables").hover()<CR>', { silent = true })
end
2021-04-21 09:54:39 +00:00
dap.listeners.after['event_terminated']['me'] = function()
2021-03-03 17:07:02 +00:00
for _, keymap in pairs(keymap_restore) do
api.nvim_buf_set_keymap(
keymap.buffer,
keymap.mode,
keymap.lhs,
keymap.rhs,
{ silent = keymap.silent == 1 }
)
end
keymap_restore = {}
end