local M = require('module'):new() local get_visual_selection = require('lib/get_visual_selection') function M:boot() vim.g.vdebug_options = { break_on_open = 0, path_maps = { -- This is only evaluated on startup so will work if the editor is -- started inside the project (I think vim-rooter will have run by -- now) but not if you've navigated into a project like I do basically -- every single time. -- ["/var/www/html"] = getcwd() }, marker_default = '*', marker_closed_tree = '>', marker_open_tree = 'v', } end function M:setBreakpoint() vim.cmd(":Breakpoint") end function M:setConditionalBreakpoint() eval = vim.ui.input({ prompt = "Enter condition" }, function(expression) if (expression ~= nil) then vim.cmd(":Breakpoint conditional " .. expression) end end) end function M:startTrace() selected = get_visual_selection() if (selected == nil) then vim.ui.input({ prompt = "Enter trace expression" }, function(expression) if (expression ~= nil) then vim.cmd(":VdebugTrace " .. expression) end end) else vim.cmd(":VdebugTrace " .. selected) end end function M:eval() selected = get_visual_selection() if (selected == nil) then vim.ui.input({ prompt = "Enter eval expression" }, function(expression) if (expression ~= nil) then vim.cmd(":VdebugEval " .. expression) end end) else vim.cmd(":VdebugEval " .. selected) end end function M:showBreakpoints() vim.cmd(":BreakpointWindow") end return M