diff --git a/lua/tiny-debugger/adapters/lua.lua b/lua/tiny-debugger/adapters/lua.lua index a564707..26219b1 100644 --- a/lua/tiny-debugger/adapters/lua.lua +++ b/lua/tiny-debugger/adapters/lua.lua @@ -1 +1,25 @@ -return {} +local loader = require("tiny-debugger.adapters.init") + +local M = {} + +function M.register(dap) + -- osv (one-small-step-for-vimkind) is optional — skip gracefully if not installed + local ok, osv = pcall(require, "osv") + if not ok then return end + + loader.register(dap, "nlua", { + type = "server", + host = "127.0.0.1", + port = function() + return osv.launch({ port = 0 }) + end, + }, { + { + type = "nlua", + request = "attach", + name = "Attach to running Neovim", + }, + }, { "lua" }) +end + +return M diff --git a/lua/tiny-debugger/adapters/php.lua b/lua/tiny-debugger/adapters/php.lua index a564707..568dc5e 100644 --- a/lua/tiny-debugger/adapters/php.lua +++ b/lua/tiny-debugger/adapters/php.lua @@ -1 +1,22 @@ -return {} +local loader = require("tiny-debugger.adapters.init") + +local M = {} + +function M.register(dap) + local php_debug = loader.find_executable({ "php-debug-adapter" }) + if not php_debug then return end + + loader.register(dap, "php", { + type = "executable", + command = php_debug, + }, { + { + type = "php", + request = "launch", + name = "Listen for Xdebug", + port = 9003, + }, + }, { "php" }) +end + +return M diff --git a/lua/tiny-debugger/adapters/ruby.lua b/lua/tiny-debugger/adapters/ruby.lua index a564707..29b5fc6 100644 --- a/lua/tiny-debugger/adapters/ruby.lua +++ b/lua/tiny-debugger/adapters/ruby.lua @@ -1 +1,33 @@ -return {} +local loader = require("tiny-debugger.adapters.init") + +local M = {} + +function M.register(dap) + local rdbg = loader.find_executable({ "rdbg" }) + if not rdbg then return end + + loader.register(dap, "rdbg", { + type = "server", + port = "${port}", + executable = { + command = rdbg, + args = { "-n", "--open", "--port", "${port}", "-c", "--", "ruby", "${file}" }, + }, + }, { + { + type = "rdbg", + request = "launch", + name = "Launch file", + command = "ruby", + script = "${file}", + }, + { + type = "rdbg", + request = "attach", + name = "Attach", + localfsMap = "${workspaceFolder}", + }, + }, { "ruby" }) +end + +return M