aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/home/.config/nvim/lua/plugins/debug.lua
diff options
context:
space:
mode:
Diffstat (limited to 'home/.config/nvim/lua/plugins/debug.lua')
-rw-r--r--home/.config/nvim/lua/plugins/debug.lua101
1 files changed, 101 insertions, 0 deletions
diff --git a/home/.config/nvim/lua/plugins/debug.lua b/home/.config/nvim/lua/plugins/debug.lua
new file mode 100644
index 0000000..b47dd63
--- /dev/null
+++ b/home/.config/nvim/lua/plugins/debug.lua
@@ -0,0 +1,101 @@
+return {
+ {
+ "miroshQa/debugmaster.nvim",
+ branch = "dashboard",
+ dependencies = "mfussenegger/nvim-dap",
+ keys = {
+ {
+ "<leader>td",
+ function()
+ require("debugmaster").mode.toggle()
+ end,
+ desc = "[T]oggle [D]ebug mode",
+ },
+ },
+ },
+ {
+ "mfussenegger/nvim-dap",
+ config = function()
+ local dap = require("dap")
+
+ local function get_env_vars()
+ local variables = vim.fn.environ()
+ table.insert(variables, { ASAN_OPTIONS = "detect_leaks=0" })
+ return variables
+ end
+
+ dap.adapters.lldb = {
+ type = "executable",
+ command = "lldb-dap",
+ name = "lldb",
+ env = get_env_vars,
+ }
+ dap.adapters.gdb = {
+ type = "executable",
+ command = "gdb",
+ args = { "--interpreter=dap" },
+ env = get_env_vars,
+ }
+ dap.adapters.codelldb = {
+ type = "executable",
+ command = "codelldb",
+ env = get_env_vars,
+ }
+
+ local function get_program()
+ local _program
+ vim.ui.input({
+ prompt = "Program: ",
+ complete = "file_in_path",
+ }, function(res)
+ _program = res
+ end)
+ return vim.fn.system("which " .. _program):gsub("\n$", "")
+ end
+
+ local function get_args()
+ local _args
+ vim.ui.input({
+ prompt = "Args: ",
+ default = vim.fn.getreg("+"),
+ complete = "file",
+ }, function(res)
+ _args = res
+ end)
+ return require("dap.utils").splitstr(_args)
+ end
+
+ dap.configurations.cpp = {
+ {
+ name = "codelldb Launch",
+ type = "codelldb",
+ request = "launch",
+ cwd = "${workspaceFolder}",
+ program = get_program,
+ args = get_args,
+ stopOnEntry = true,
+ console = "integratedTerminal",
+ },
+ }
+
+ dap.configurations.c = dap.configurations.cpp
+ dap.configurations.rust = dap.configurations.cpp
+ end,
+ dependencies = {
+ {
+ "theHamsta/nvim-dap-virtual-text",
+ opts = {},
+ dependencies = { "nvim-treesitter/nvim-treesitter" },
+ },
+ "williamboman/mason.nvim",
+ {
+ "jay-babu/mason-nvim-dap.nvim",
+ opts = {
+ automatic_installation = false,
+ handlers = {},
+ ensure_installed = {},
+ },
+ },
+ },
+ },
+}