diff --git a/.config/nvim/lua/plugins/dap.lua b/.config/nvim/lua/plugins/dap.lua new file mode 100644 index 0000000..74570e7 --- /dev/null +++ b/.config/nvim/lua/plugins/dap.lua @@ -0,0 +1,93 @@ +return { + "mfussenegger/nvim-dap", + dependencies = { + "rcarriga/nvim-dap-ui", + "theHamsta/nvim-dap-virtual-text", + }, + config = function() + local dap = require("dap") + local dapui = require('dapui') + + -- Setup DAP UI with explicit configuration + dapui.setup() + + dap.adapters.php = { + type = 'executable', + command = vim.fn.stdpath('data') .. '/mason/bin/php-debug-adapter', + } + + -- Get the correct project paths (make this global so keys can access it) + _G.get_project_paths = function() + local cwd = vim.fn.getcwd() + + -- Check if we're in the project root (where docker-compose.yml is) + if vim.fn.filereadable(cwd .. "/docker-compose.yml") == 1 then + return { + project_root = cwd, + api_path = cwd .. "/app/api", + docker_path = "/var/www" + } + -- Check if we're in the app/api directory + elseif string.match(cwd, "app/api$") then + local project_root = string.gsub(cwd, "/app/api$", "") + return { + project_root = project_root, + api_path = cwd, + docker_path = "/var/www" + } + else + -- Fallback - assume we're somewhere in the project + return { + project_root = cwd, + api_path = cwd, + docker_path = "/var/www" + } + end + end + + local paths = _G.get_project_paths() + + -- PHP configurations + dap.configurations.php = { + { + name = "🚀 Jack Laravel - Listen for Xdebug", + type = "php", + request = "launch", + port = 9003, + pathMappings = { + [paths.docker_path] = paths.api_path, + }, + hostname = "0.0.0.0", + log = true, + xdebugSettings = { + max_children = 512, + max_data = 1024, + max_depth = 4, + }, + }, + { + name = "🌐 Jack Laravel - Web Request Debug", + type = "php", + request = "launch", + port = 9003, + pathMappings = { + ["/var/www"] = paths.api_path, + }, + hostname = "0.0.0.0", + -- Pre-configure for Laravel routes + breakMode = "request", + } + } + end, + keys = { + { "DD", function() require("dap").continue() end, desc = "Start Laravel Debug" }, + { "Ds", function() require("dap").step_over() end, desc = "Step Over" }, + { "Di", function() require("dap").step_into() end, desc = "Step Into" }, + { "Do", function() require("dap").step_out() end, desc = "Step Out" }, -- Fixed: was "Ds" twice + { "bp", function() require("dap").toggle_breakpoint() end, desc = "Toggle Breakpoint" }, + { "bP", function() require("dap").set_breakpoint(vim.fn.input("Breakpoint condition: ")) end, desc = "Conditional Breakpoint" }, + { "dr", function() require("dap").repl.open() end, desc = "Open REPL" }, + { "dl", function() require("dap").run_last() end, desc = "Run Last" }, + { "du", function() require("dapui").toggle() end, desc = "Toggle DAP UI" }, + }, +} diff --git a/.config/nvim/lua/plugins/fugitive.lua b/.config/nvim/lua/plugins/fugitive.lua index 0593c3b..6d86765 100644 --- a/.config/nvim/lua/plugins/fugitive.lua +++ b/.config/nvim/lua/plugins/fugitive.lua @@ -31,7 +31,6 @@ return { -- Additional useful fugitive buffer mappings map("n", "q", "close", "Close fugitive buffer", buf_opts) map("n", "gd", "Gvdiffsplit", "Git diff split", buf_opts) - map("n", "gb", "Git blame", "Git blame", buf_opts) end -- Auto-command for fugitive buffer mappings