my demo first config lua
This commit is contained in:
1
back/lua/alpha/dap/configs/golang.lua
Normal file
1
back/lua/alpha/dap/configs/golang.lua
Normal file
@@ -0,0 +1 @@
|
||||
require("dap-go").setup()
|
||||
45
back/lua/alpha/dap/configs/javascript.lua
Normal file
45
back/lua/alpha/dap/configs/javascript.lua
Normal file
@@ -0,0 +1,45 @@
|
||||
require("dap-vscode-js").setup {
|
||||
debugger_cmd = { "js-debug-adapter" },
|
||||
adapters = { "pwa-node", "pwa-chrome", "node-terminal" },
|
||||
}
|
||||
|
||||
for _, language in ipairs { "typescript", "javascript" } do
|
||||
require("dap").configurations[language] = {
|
||||
{
|
||||
type = "pwa-node",
|
||||
request = "launch",
|
||||
name = "Launch file",
|
||||
program = "${file}",
|
||||
cwd = "${workspaceFolder}",
|
||||
},
|
||||
{
|
||||
type = "pwa-node",
|
||||
request = "attach",
|
||||
name = "Attach",
|
||||
processId = require("dap.utils").pick_process,
|
||||
cwd = "${workspaceFolder}",
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
for _, language in ipairs { "typescriptreact", "javascriptreact" } do
|
||||
require("dap").configurations[language] = {
|
||||
{
|
||||
type = "pwa-chrome",
|
||||
name = "Attach - Remote Debugging",
|
||||
request = "attach",
|
||||
program = "${file}",
|
||||
cwd = vim.fn.getcwd(),
|
||||
sourceMaps = true,
|
||||
protocol = "inspector",
|
||||
port = 9222,
|
||||
webRoot = "${workspaceFolder}",
|
||||
},
|
||||
{
|
||||
type = "pwa-chrome",
|
||||
name = "Launch Chrome",
|
||||
request = "launch",
|
||||
url = "http://localhost:3000",
|
||||
},
|
||||
}
|
||||
end
|
||||
27
back/lua/alpha/dap/configs/php.lua
Normal file
27
back/lua/alpha/dap/configs/php.lua
Normal file
@@ -0,0 +1,27 @@
|
||||
local dap = require("dap")
|
||||
|
||||
dap.adapters.php = {
|
||||
type = "executable",
|
||||
command = "php-debug-adapter",
|
||||
}
|
||||
|
||||
dap.configurations.php = {
|
||||
{
|
||||
type = "php",
|
||||
request = "launch",
|
||||
name = "Laravel",
|
||||
port = 9003,
|
||||
pathMappings = {
|
||||
["/var/www/html"] = "${workspaceFolder}",
|
||||
},
|
||||
},
|
||||
{
|
||||
type = "php",
|
||||
request = "launch",
|
||||
name = "Symfony",
|
||||
port = 9003,
|
||||
pathMappings = {
|
||||
["/app"] = "${workspaceFolder}",
|
||||
},
|
||||
},
|
||||
}
|
||||
57
back/lua/alpha/dap/configs/rust.lua
Normal file
57
back/lua/alpha/dap/configs/rust.lua
Normal file
@@ -0,0 +1,57 @@
|
||||
local dap = require("dap")
|
||||
|
||||
local rust_adapter = nil
|
||||
local rust_adapters = { "lldb-vscode", "codelldb" }
|
||||
for _, adapter in pairs(rust_adapters) do
|
||||
if vim.fn.executable(adapter) then
|
||||
rust_adapter = adapter
|
||||
end
|
||||
end
|
||||
|
||||
if rust_adapter ~= nil then
|
||||
dap.adapters.lldb = {
|
||||
type = "executable",
|
||||
command = rust_adapter,
|
||||
name = "lldb",
|
||||
}
|
||||
|
||||
dap.configurations.rust = {
|
||||
{
|
||||
name = "launch",
|
||||
type = "lldb",
|
||||
request = "launch",
|
||||
program = function()
|
||||
local dir = vim.fn.getcwd()
|
||||
return dir .. "/target/debug/" .. vim.fs.basename(dir)
|
||||
end,
|
||||
cwd = "${workspaceFolder}",
|
||||
stopOnEntry = false,
|
||||
args = function()
|
||||
local resp = vim.fn.input "Arguments: "
|
||||
if resp == "" then
|
||||
return {}
|
||||
end
|
||||
|
||||
return vim.fn.split(resp, " ")
|
||||
end,
|
||||
},
|
||||
{
|
||||
name = "custom",
|
||||
type = "lldb",
|
||||
request = "launch",
|
||||
program = function()
|
||||
return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
|
||||
end,
|
||||
cwd = "${workspaceFolder}",
|
||||
stopOnEntry = false,
|
||||
args = function()
|
||||
local resp = vim.fn.input "Arguments: "
|
||||
if resp == "" then
|
||||
return {}
|
||||
end
|
||||
|
||||
return vim.fn.split(resp, " ")
|
||||
end,
|
||||
},
|
||||
}
|
||||
end
|
||||
106
back/lua/alpha/dap/init.lua
Normal file
106
back/lua/alpha/dap/init.lua
Normal file
@@ -0,0 +1,106 @@
|
||||
local dap, dapui, hydra = require "dap", require "dapui", require "hydra"
|
||||
|
||||
-- Setup Virtual Text
|
||||
require("nvim-dap-virtual-text").setup {}
|
||||
|
||||
for _, ft_path in ipairs(vim.api.nvim_get_runtime_file("lua/alpha/dap/configs/*.lua", true)) do
|
||||
loadfile(ft_path)()
|
||||
end
|
||||
|
||||
-- Signs
|
||||
vim.fn.sign_define("DapBreakpoint", { text = "🛑", texthl = "", linehl = "", numhl = "" })
|
||||
vim.fn.sign_define("DapStopped", { text = "▶", texthl = "", linehl = "", numhl = "" })
|
||||
vim.fn.sign_define("DapBreakpointRejected", { text = "🚫", texthl = "", linehl = "", numhl = "" })
|
||||
vim.fn.sign_define("DapBreakpointCondition", { text = "❓", texthl = "", linehl = "", numhl = "" })
|
||||
vim.fn.sign_define("DapLogPoint", { text = "💬", texthl = "", linehl = "", numhl = "" })
|
||||
|
||||
-- UI structure
|
||||
dapui.setup {
|
||||
icons = { expanded = "▾", collapsed = "▸" },
|
||||
layouts = {
|
||||
{
|
||||
elements = {
|
||||
"scopes",
|
||||
"breakpoints",
|
||||
"stacks",
|
||||
"watches",
|
||||
},
|
||||
size = 80,
|
||||
position = "right",
|
||||
},
|
||||
{
|
||||
elements = {
|
||||
"repl",
|
||||
"console",
|
||||
},
|
||||
size = 10,
|
||||
position = "bottom",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- Events Listeners
|
||||
dap.listeners.after.event_initialized["dapui_config"] = function()
|
||||
dapui.open {}
|
||||
end
|
||||
|
||||
local hint = [[
|
||||
Nvim DAP
|
||||
_d_: Start/Continue _j_: StepOver _k_: StepOut _l_: StepInto ^
|
||||
_bp_: Toogle Breakpoint _bc_: Conditional Breakpoint ^
|
||||
_?_: log point ^
|
||||
_c_: Run To Cursor ^
|
||||
_h_: Show information of the variable under the cursor ^
|
||||
_x_: Stop Debbuging ^
|
||||
^^ _<Esc>_
|
||||
]]
|
||||
|
||||
hydra {
|
||||
name = "dap",
|
||||
hint = hint,
|
||||
mode = "n",
|
||||
config = {
|
||||
color = "blue",
|
||||
invoke_on_body = true,
|
||||
hint = {
|
||||
border = "rounded",
|
||||
position = "bottom",
|
||||
},
|
||||
},
|
||||
body = "<leader>d",
|
||||
heads = {
|
||||
{ "d", dap.continue },
|
||||
{ "bp", dap.toggle_breakpoint },
|
||||
{ "l", dap.step_into },
|
||||
{ "j", dap.step_over },
|
||||
{ "k", dap.step_out },
|
||||
{ "h", dapui.eval },
|
||||
{ "c", dap.run_to_cursor },
|
||||
{
|
||||
"bc",
|
||||
function()
|
||||
vim.ui.input({ prompt = "Condition: " }, function(condition)
|
||||
dap.set_breakpoint(condition)
|
||||
end)
|
||||
end,
|
||||
},
|
||||
{
|
||||
"?",
|
||||
function()
|
||||
vim.ui.input({ prompt = "Log: " }, function(log)
|
||||
dap.set_breakpoint(nil, nil, log)
|
||||
end)
|
||||
end,
|
||||
},
|
||||
{
|
||||
"x",
|
||||
function()
|
||||
dap.terminate()
|
||||
dapui.close {}
|
||||
dap.clear_breakpoints()
|
||||
end,
|
||||
},
|
||||
|
||||
{ "<Esc>", nil, { exit = true } },
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user