From b347422333d0c0abee761e70a950430739191a92 Mon Sep 17 00:00:00 2001 From: Daryl Ronningen Date: Wed, 29 Jun 2022 14:21:21 +0800 Subject: [PATCH] added neovim debugging support Signed-off-by: Daryl Ronningen --- .config/nvim/init.lua | 2 ++ .config/nvim/lua/user/dap.lua | 12 ++++++++ .config/nvim/lua/user/keymaps.lua | 40 +++++++++++++++++++++++++ .config/nvim/lua/user/plugins.lua | 9 ++++++ .config/nvim/lua/user/spectre.lua | 9 ++++++ .config/nvim/lua/user/telescope.lua | 1 + .config/nvim/plugin/packer_compiled.lua | 25 ++++++++++++++++ 7 files changed, 98 insertions(+) create mode 100644 .config/nvim/lua/user/dap.lua create mode 100644 .config/nvim/lua/user/spectre.lua diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 334c12a..09c7efc 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -21,3 +21,5 @@ require("user.whichkey") require("user.trouble") require("user.colorizer") require("user.discord") +require("user.spectre") +require("user.dap") diff --git a/.config/nvim/lua/user/dap.lua b/.config/nvim/lua/user/dap.lua new file mode 100644 index 0000000..b4cbd4c --- /dev/null +++ b/.config/nvim/lua/user/dap.lua @@ -0,0 +1,12 @@ +local dapui_status_ok, dapui = pcall(require, "dapui") +if not dapui_status_ok then + return +end + +local vtest_status_ok, vtest = pcall(require, "nvim-dap-virtual-text") +if not vtest_status_ok then + return +end + +dapui.setup() +vtest.setup() diff --git a/.config/nvim/lua/user/keymaps.lua b/.config/nvim/lua/user/keymaps.lua index c4ada3b..e357c5a 100644 --- a/.config/nvim/lua/user/keymaps.lua +++ b/.config/nvim/lua/user/keymaps.lua @@ -41,6 +41,7 @@ keymap("n", "fg", ":Telescope live_grep", opts) keymap("n", "fb", ":Telescope buffers", opts) keymap("n", "fe", ":Telescope emoji", opts) keymap("n", "fp", ":Telescope project", opts) +keymap("n", "fd", ":Telescope dap commands", opts) -- Comment keymap("n", "/", ":lua require('Comment').toggle()", opts) @@ -55,6 +56,45 @@ keymap("n", "xd", ":Trouble document_diagnostics", opts) keymap("n", "xl", ":Trouble loclist", opts) keymap("n", "xq", ":Trouble quickfix", opts) +-- DAP +keymap("n", "", ":lua require('dapui').toggle()", opts) +keymap("n", "", ":lua require('dap').toggle_breakpoint()", opts) +keymap("n", "", ":lua require('dap').continue()", opts) +keymap("n", "", ":lua require('dap').step_over()", opts) +keymap("n", "", ":lua require('dap').step_into()", opts) +keymap("n", "", ":lua require('dap').step_out()", opts) +keymap("n", "dsc", ":lua require('dap').continue()", opts) +keymap("n", "dsv", ":lua require('dap').step_over()", opts) +keymap("n", "dsi", ":lua require('dap').step_into()", opts) +keymap("n", "dso", ":lua require('dap').step_out()", opts) +keymap("n", "dhh", ":lua require('dap.ui.variables').hover()", opts) +keymap("v", "dhv", ":lua require('dap.ui.variables').visual_hover()", opts) +keymap("n", "duh", ":lua require('dap.ui.widgets').hover()", opts) +keymap( + "n", + "duf", + ":lua local widgets=require('dap.ui.widgets');widgets.centered_float(widgets.scopes)", + opts +) +keymap("n", "dro", ":lua require('dap').repl.open()", opts) +keymap("n", "drl", ":lua require('dap').repl.run_last()", opts) +keymap("n", "dbc", ":lua require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: '))", opts) +keymap( + "n", + "dbm", + ":lua require('dap').set_breakpoint({ nil, nil, vim.fn.input('Log point message: ') })", + opts +) +keymap("n", "dbt", ":lua require('dap').toggle_breakpoint()", opts) +keymap("n", "dc", ":lua require('dap.ui.variables').scopes()", opts) +keymap("n", "di", ":lua require('dapui').toggle()", opts) + +-- Spectre +keymap("n", "S", ":lua require('spectre').open()", opts) +keymap("n", "sw", ":lua require('spectre').open_visual({select_word=true})", opts) +keymap("n", "s", ":lua require('spectre').open_visual()", opts) +keymap("n", "sp", ":lua require('spectre').open_file_search()", opts) + -- Insert -- -- Visual -- diff --git a/.config/nvim/lua/user/plugins.lua b/.config/nvim/lua/user/plugins.lua index 2b2efe5..88a8db6 100644 --- a/.config/nvim/lua/user/plugins.lua +++ b/.config/nvim/lua/user/plugins.lua @@ -81,6 +81,7 @@ return packer.startup(function(use) use("nvim-telescope/telescope-project.nvim") use("nvim-telescope/telescope-frecency.nvim") use({ "nvim-telescope/telescope-fzf-native.nvim", run = "make" }) + use("nvim-telescope/telescope-dap.nvim") -- Treesitter use({ "nvim-treesitter/nvim-treesitter", run = ":TSUpdate" }) @@ -140,6 +141,14 @@ return packer.startup(function(use) -- Discord use("andweeb/presence.nvim") + -- DAP + use("mfussenegger/nvim-dap") + use("rcarriga/nvim-dap-ui") + use("theHamsta/nvim-dap-virtual-text") + + -- Spectre + use("windwp/nvim-spectre") + if PACKER_BOOTSTRAP then require("packer").sync() end diff --git a/.config/nvim/lua/user/spectre.lua b/.config/nvim/lua/user/spectre.lua new file mode 100644 index 0000000..88a26cb --- /dev/null +++ b/.config/nvim/lua/user/spectre.lua @@ -0,0 +1,9 @@ +local status_ok, spectre = pcall(require, "spectre") +if not status_ok then + return +end + +spectre.setup({ + live_update = false, + is_insert_mode = false, +}) diff --git a/.config/nvim/lua/user/telescope.lua b/.config/nvim/lua/user/telescope.lua index d2d2c24..dc110cd 100644 --- a/.config/nvim/lua/user/telescope.lua +++ b/.config/nvim/lua/user/telescope.lua @@ -10,6 +10,7 @@ telescope.load_extension("repo") telescope.load_extension("emoji") telescope.load_extension("project") telescope.load_extension("frecency") +telescope.load_extension("dap") local actions = require("telescope.actions") diff --git a/.config/nvim/plugin/packer_compiled.lua b/.config/nvim/plugin/packer_compiled.lua index 4e27041..9822071 100644 --- a/.config/nvim/plugin/packer_compiled.lua +++ b/.config/nvim/plugin/packer_compiled.lua @@ -194,6 +194,21 @@ _G.packer_plugins = { path = "/home/relms/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua", url = "https://github.com/norcalli/nvim-colorizer.lua" }, + ["nvim-dap"] = { + loaded = true, + path = "/home/relms/.local/share/nvim/site/pack/packer/start/nvim-dap", + url = "https://github.com/mfussenegger/nvim-dap" + }, + ["nvim-dap-ui"] = { + loaded = true, + path = "/home/relms/.local/share/nvim/site/pack/packer/start/nvim-dap-ui", + url = "https://github.com/rcarriga/nvim-dap-ui" + }, + ["nvim-dap-virtual-text"] = { + loaded = true, + path = "/home/relms/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text", + url = "https://github.com/theHamsta/nvim-dap-virtual-text" + }, ["nvim-lsp-installer"] = { loaded = true, path = "/home/relms/.local/share/nvim/site/pack/packer/start/nvim-lsp-installer", @@ -209,6 +224,11 @@ _G.packer_plugins = { path = "/home/relms/.local/share/nvim/site/pack/packer/start/nvim-navic", url = "https://github.com/SmiteshP/nvim-navic" }, + ["nvim-spectre"] = { + loaded = true, + path = "/home/relms/.local/share/nvim/site/pack/packer/start/nvim-spectre", + url = "https://github.com/windwp/nvim-spectre" + }, ["nvim-tree.lua"] = { loaded = true, path = "/home/relms/.local/share/nvim/site/pack/packer/start/nvim-tree.lua", @@ -264,6 +284,11 @@ _G.packer_plugins = { path = "/home/relms/.local/share/nvim/site/pack/packer/start/sqlite.lua", url = "https://github.com/tami5/sqlite.lua" }, + ["telescope-dap.nvim"] = { + loaded = true, + path = "/home/relms/.local/share/nvim/site/pack/packer/start/telescope-dap.nvim", + url = "https://github.com/nvim-telescope/telescope-dap.nvim" + }, ["telescope-emoji.nvim"] = { loaded = true, path = "/home/relms/.local/share/nvim/site/pack/packer/start/telescope-emoji.nvim",