update dap utils/dap mode

master
blob42 8 months ago
parent 3a315cc48c
commit defa06be83

@ -56,7 +56,7 @@ local config = {
S = {
rhs = function()
daputils.disconnect_dap()
M.layer:exit()
-- M.layer:exit() -- already done in dap listener
vim.cmd("redrawstatus")
end,
desc = '[dap] stop'
@ -153,6 +153,5 @@ end
-- --
-- layer:enter()
--
M.disconnect_dap = disconnect_dap
return M

@ -3,9 +3,11 @@ if not present then
print("nvim-dap missing !")
return
end
local api = vim.api
local dapmode = require("spike.dap.dapmode")
local daputils = require('spike.dap.utils')
local dapui = require("dapui")
local keymap_restore = {}
local liblldb_path = vim.fn.stdpath("data") .. "/mason/packages/codelldb/extension/lldb/lib/liblldb.so"
@ -35,12 +37,12 @@ M.signs = {
local function register_listeners()
dap.listeners.before['event_initialized']['spike-dap'] = function(_, _)
dap.listeners.before['event_initialized']['blob42-dap'] = function(_, _)
dapmode.start()
dapui.open()
end
dap.listeners.after['event_terminated']['spike-dap'] = function(_, _)
dap.listeners.after['event_terminated']['blob42-dap'] = function(_, _)
-- print("dap session ended")
dapmode.stop()
dapui.close()
@ -74,6 +76,36 @@ local function dap_setup()
}
}
-- Map K to hover while session is active https://github.com/mfussenegger/nvim-dap/wiki/Cookbook#map-k-to-hover-while-session-is-active
dap.listeners.after['event_initialized']['blob42-dap'] = function() -- takes session,body
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.widgets").hover()<CR>',
{silent = true}
)
end
dap.listeners.after['event_terminated']['blob42-dap'] = function()
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
-- dap.adapters["codelldb-c"] = {
-- type = 'server',
-- host = "127.0.0.1",
@ -105,7 +137,7 @@ local function dap_setup()
end,
cwd = '${workspaceFolder}',
stopOnEntry = false,
-- runInTerminal = true,
-- runInTerminal = true, -- use external terminal
},
{

@ -1,7 +1,11 @@
---@diagnostic disable: redefined-local
local ok, dap = pcall(require, 'dap')
if not ok then
vim.notify('dap module missing')
end
local api = vim.api
local keymap_restore = {}
local M = {}
M.disconnect_dap = function()
@ -47,4 +51,34 @@ M.load_launch_json = function()
require("dap.ext.vscode").load_launchjs()
end
M.register_keymaps = function()
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.widgets").hover()<CR>',
{silent = true}
)
end
M.unregister_keymaps = function()
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
return M

Loading…
Cancel
Save