feat(nvim): add nvim-dap
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Rob Watson 2023-11-01 07:50:15 +01:00
parent 010379d8ab
commit cea8744723
2 changed files with 119 additions and 0 deletions

7
nvimrc
View File

@ -276,6 +276,13 @@ packadd! vim-rhubarb " https://github.com/tpope/vim-rhubarb.git
packadd! editorconfig-vim " https://github.com/editorconfig/editorconfig-vim.git
packadd! vim-wordmotion " https://github.com/chaoren/vim-wordmotion.git
" nvim-dap
packadd! nvim-dap " https://github.com/mfussenegger/nvim-dap.git
packadd! nvim-dap-go " https://github.com/leoluz/nvim-dap-go.git
packadd! nvim-dap-ruby " https://github.com/suketa/nvim-dap-ruby.git
lua require "debugger"
" formatter.nvim:
packadd! formatter.nvim " https://github.com/mhartington/formatter.nvim.git

112
vim/lua/debugger.lua Normal file
View File

@ -0,0 +1,112 @@
-- require("dap").set_log_level("DEBUG")
-- go install github.com/go-delve/delve/cmd/dlv@latest
require("dap-go").setup({})
require("dap-ruby").setup()
local prefix = "D"
local configs = {
{
"Continue",
"<Leader>dc",
function()
require("dap").continue()
end,
},
{
"Next",
"<Leader>dn",
function()
require("dap").step_over()
end,
},
{
"StepInto",
"<Leader>di",
function()
require("dap").step_into()
end,
},
{
"StepOut",
"<Leader>du",
function()
require("dap").step_out()
end,
},
{
"ToggleBreakpoint",
"<Leader>dt",
function()
require("dap").toggle_breakpoint()
end,
},
{
"Breakpoint",
"<Leader>db",
function()
require("dap").set_breakpoint()
end,
},
{
"Logpoint",
"<Leader>dl",
function()
require("dap").set_breakpoint(nil, nil, vim.fn.input("Log point message: "))
end,
},
{
"Repl",
"<Leader>dr",
function()
require("dap").repl.open()
end,
},
{
"RunLast",
"<Leader>dl",
function()
require("dap").run_last()
end,
},
{
"WidgetsHover",
"<Leader>dh",
function()
require("dap.ui.widgets").hover()
end,
},
{
"WidgetsPreview",
"<Leader>dp",
function()
require("dap.ui.widgets").preview()
end,
},
{
"Frames",
"<Leader>df",
function()
local widgets = require("dap.ui.widgets")
widgets.centered_float(widgets.frames)
end,
},
{
"Scopes",
"<Leader>ds",
function()
local widgets = require("dap.ui.widgets")
widgets.centered_float(widgets.scopes)
end,
},
}
for _, v in pairs(configs) do
local name = v[1]
local keymap = v[2]
local fn = v[3]
vim.api.nvim_create_user_command(prefix .. name, fn, {})
vim.keymap.set("n", keymap, fn)
end