diff --git a/roles/neovim/files/after/plugin/dap.lua b/roles/neovim/files/after/plugin/dap.lua new file mode 100644 index 0000000..04b26b8 --- /dev/null +++ b/roles/neovim/files/after/plugin/dap.lua @@ -0,0 +1,74 @@ +local has_dap, dap = pcall(require, "dap") +if not has_dap then + return +end + +local has_dap_ui, dapui = pcall(require, "dapui") +if not has_dap_ui then + return +end + +dap.adapters.php = { + type = "executable", + command = "node", + args = { os.getenv("HOME") .. "/build/vscode-php-debug/out/phpDebug.js" } +} + +dap.configurations.php = { + { + type = "php", + request = "launch", + name = "Listen for Xdebug", + port = 9003, + pathMappings = { + ["/var/www/html"] = "${workspaceFolder}" + } + } +} + +dap.listeners.after.event_initialized["dapui_config"] = function() + dapui.open() +end + +dap.listeners.before.event_terminated["dapui_config"] = function() + dapui.close() +end + +dap.listeners.before.event_exited["dapui_config"] = function() + dapui.close() +end + +require "dapui".setup { + layouts = { + { + elements = { + { id = "scopes", size = 0.25 }, + "breakpoints", + "stacks", + "watches", + }, + size = 40, -- 40 columns + position = "left", + }, + { + elements = { + "repl", + "console", + }, + size = 0.25, -- 25% of total lines + position = "bottom", + }, + } +} + +require "nvim-dap-virtual-text".setup { + commented = true, +} + +local nmap = require "opdavies.keymap".nmap + +nmap { "", ":lua require'dap'.step_over()" } +nmap { "", ":lua require'dap'.step_into()" } +nmap { "", ":lua require'dap'.step_over()" } +nmap { "", ":lua require'dap'.continue()" } +nmap { "b", ":lua require'dap'.toggle_breakpoint()" } diff --git a/roles/neovim/files/lua/opdavies/plugins.lua b/roles/neovim/files/lua/opdavies/plugins.lua index 988915f..19098b5 100644 --- a/roles/neovim/files/lua/opdavies/plugins.lua +++ b/roles/neovim/files/lua/opdavies/plugins.lua @@ -102,7 +102,9 @@ return packer.startup(function() -- Debugging use "mfussenegger/nvim-dap" + use "nvim-telescope/telescope-dap.nvim" use "rcarriga/nvim-dap-ui" + use "theHamsta/nvim-dap-virtual-text" -- Telescope use "nvim-telescope/telescope.nvim"