aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradalessa <dalessandro.ariel@gmail.com>2023-03-04 16:14:13 +0100
committeradalessa <dalessandro.ariel@gmail.com>2023-03-04 16:14:13 +0100
commit8fc48402953a9d91e5c05662c7fa6dfae8605fc9 (patch)
tree76e266425d780f7b93e7e40bbf1cf9485c3700cc
parent61499082db8f34ca38fc9eb916f9cc87d82e7655 (diff)
downloadnvim-conf-8fc48402953a9d91e5c05662c7fa6dfae8605fc9.tar.gz
nvim-conf-8fc48402953a9d91e5c05662c7fa6dfae8605fc9.zip
feat: improve dap
-rw-r--r--lazy-lock.json32
-rw-r--r--lua/alpha/dap/configs/golang.lua1
-rw-r--r--lua/alpha/dap/configs/javascript.lua45
-rw-r--r--lua/alpha/dap/configs/php.lua27
-rw-r--r--lua/alpha/dap/configs/rust.lua57
-rw-r--r--lua/alpha/dap/init.lua (renamed from lua/alpha/dap.lua)95
-rw-r--r--lua/alpha/lsp/tools.lua2
7 files changed, 162 insertions, 97 deletions
diff --git a/lazy-lock.json b/lazy-lock.json
index d351f00..dd9ff41 100644
--- a/lazy-lock.json
+++ b/lazy-lock.json
@@ -2,7 +2,7 @@
"Comment.nvim": { "branch": "master", "commit": "6821b3ae27a57f1f3cf8ed030e4a55d70d0c4e43" },
"LuaSnip": { "branch": "master", "commit": "500981ff6cefc7343e3959ef0f939bd0bfd49ba9" },
"SmoothCursor.nvim": { "branch": "main", "commit": "679b5ee2ef6db53c328642535e0e8fdcb8e9bdec" },
- "catppuccin": { "branch": "main", "commit": "7c392fb5f27daa6addee050f7b7522718e8d9357" },
+ "catppuccin": { "branch": "main", "commit": "e406cf07a1573c77ab83e142cc0d8c9d798d5c81" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-cmdline": { "branch": "main", "commit": "8fcc934a52af96120fe26358985c10c035984b53" },
"cmp-dap": { "branch": "master", "commit": "d16f14a210cd28988b97ca8339d504533b7e09a4" },
@@ -12,54 +12,56 @@
"cmp-nvim-lua": { "branch": "main", "commit": "f3491638d123cfd2c8048aefaf66d246ff250ca6" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
- "color-picker.nvim": { "branch": "master", "commit": "a94dc4424ec0f116bc3a5ff74514c9fa99006cd2" },
+ "color-picker.nvim": { "branch": "master", "commit": "6d49c615cb9ff101fdcf85cd7137439e13bdbddc" },
+ "composer.nvim": { "branch": "main", "commit": "e62eaaef7c978d96a2abfeb2ca570650a4f21528" },
"dressing.nvim": { "branch": "master", "commit": "5f44f829481640be0f96759c965ae22a3bcaf7ce" },
"fidget.nvim": { "branch": "main", "commit": "688b4fec4517650e29c3e63cfbb6e498b3112ba1" },
"fzf.vim": { "branch": "master", "commit": "dc71692255b62d1f67dc55c8e51ab1aa467b1d46" },
"git-worktree.nvim": { "branch": "master", "commit": "d7f4e2584e81670154f07ca9fa5dd791d9c1b458" },
- "gitsigns.nvim": { "branch": "main", "commit": "f388995990aba04cfdc7c3ab870c33e280601109" },
+ "gitsigns.nvim": { "branch": "main", "commit": "3b6c0a6412b31b91eb26bb8f712562cf7bb1d3be" },
"harpoon": { "branch": "master", "commit": "f7040fd0c44e7a4010369136547de5604b9c22a1" },
"hydra.nvim": { "branch": "master", "commit": "3ced42c0b6a6c85583ff0f221635a7f4c1ab0dd0" },
"icon-picker.nvim": { "branch": "master", "commit": "66d37ceae84099ca76235de44466829eb37118c2" },
"indent-blankline.nvim": { "branch": "master", "commit": "018bd04d80c9a73d399c1061fa0c3b14a7614399" },
- "lazy.nvim": { "branch": "main", "commit": "25132fc08f6c0c68068be19680f8b6d9d6149985" },
+ "lazy.nvim": { "branch": "main", "commit": "8d18ef44e769e98a8dc974ca85275de1d8cc7c04" },
"lspkind-nvim": { "branch": "master", "commit": "c68b3a003483cf382428a43035079f78474cd11e" },
"lualine.nvim": { "branch": "master", "commit": "e99d733e0213ceb8f548ae6551b04ae32e590c80" },
"markdown-preview.nvim": { "branch": "main", "commit": "cc05a30393e2bf9f12e2d59fc35a1aa928ed1727" },
- "mason-lspconfig.nvim": { "branch": "main", "commit": "3f9c0ea157e88b08e2d11ec65002eeb6e421f0da" },
+ "mason-lspconfig.nvim": { "branch": "main", "commit": "e4badf7984f7a5f0ac7dc10657dbedbd99a82f94" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "6ca38efeb0406dea8da6c97f61d6f6ef30ab0576" },
- "mason.nvim": { "branch": "main", "commit": "5f38eca64b7ed9f8a1f997ce67f2ccc80ab80c91" },
+ "mason.nvim": { "branch": "main", "commit": "7175340eee0b1b4a86b38794d8c21fdcfa01376b" },
"mind.nvim": { "branch": "v2.2", "commit": "79e0ca131d5e37dfa65f3f0e725d99742e4ff783" },
"neogen": { "branch": "main", "commit": "93d997dbddfe084e77ba4541c54a7b8bfd754fb1" },
"null-ls.nvim": { "branch": "main", "commit": "689cdd78f70af20a37b5309ebc287ac645ae4f76" },
- "nvim-autopairs": { "branch": "master", "commit": "6a5faeabdbcc86cfbf1561ae430a451a72126e81" },
+ "nvim-autopairs": { "branch": "master", "commit": "ab49517cfd1765b3f3de52c1f0fda6190b44e27b" },
"nvim-cmp": { "branch": "main", "commit": "01f697a68905f9dcae70960a9eb013695a17f9a2" },
- "nvim-dap": { "branch": "master", "commit": "5b986edc95cf7b37da1db91a5c149daa3ac008d2" },
+ "nvim-dap": { "branch": "master", "commit": "c1bfcd89ef440a44d02ade7e71befb1e5aa358ca" },
"nvim-dap-go": { "branch": "main", "commit": "b4ded7de579b4e2a85c203388233b54bf1028816" },
"nvim-dap-ui": { "branch": "master", "commit": "bdb94e3853d11b5ce98ec182e5a3719d5c0ef6fd" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "8db23ea51203b5f00ad107a0cef7e0b2d7a0476c" },
"nvim-dap-vscode-js": { "branch": "main", "commit": "baff224af20c6632861a59aa742c9740c68030de" },
- "nvim-lspconfig": { "branch": "master", "commit": "62856b20751b748841b0f3ec5a10b1e2f6a6dbc9" },
+ "nvim-lspconfig": { "branch": "master", "commit": "e0926b6abc84578f44fb8917d61cdee22188639e" },
"nvim-notify": { "branch": "master", "commit": "9c987081390753b625e2d94e749e80e9b4a3e082" },
"nvim-projectconfig": { "branch": "master", "commit": "05fd34831e170db269d1b84597615bcdcdde930e" },
"nvim-transparent": { "branch": "main", "commit": "4c3c392f285378e606d154bee393b6b3dd18059c" },
- "nvim-treesitter": { "branch": "master", "commit": "418caac89dab5a37ccaf403b3829e4eeb4124d67" },
+ "nvim-treesitter": { "branch": "master", "commit": "88c490f00f837fbac95b2948bb7f0454a9cc4cf0" },
"nvim-treesitter-refactor": { "branch": "master", "commit": "75f5895cc662d61eb919da8050b7a0124400d589" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "4b30081d2736e09f90c890a8a7adfe4df36f5b36" },
- "nvim-web-devicons": { "branch": "master", "commit": "c2c2317f356c8b7da0252f5da758f71bb60bb6b2" },
+ "nvim-web-devicons": { "branch": "master", "commit": "c3c1dc4e36969370ff589b7025df8ec2e5c881a2" },
+ "php-code-actions.nvim": { "branch": "main", "commit": "a85a695c58f9c5e8033d824ffae366e9797e0b28" },
"playground": { "branch": "master", "commit": "4044b53c4d4fcd7a78eae20b8627f78ce7dc6f56" },
"plenary.nvim": { "branch": "master", "commit": "253d34830709d690f013daf2853a9d21ad7accab" },
"popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" },
"refactoring.nvim": { "branch": "master", "commit": "57c32c6b7a211e5a3a5e4ddc4ad2033daff5cf9a" },
"rest.nvim": { "branch": "main", "commit": "0fdb69f328529b34a2279c14be63b3325dc52740" },
"telescope-dap.nvim": { "branch": "master", "commit": "313d2ea12ae59a1ca51b62bf01fc941a983d9c9c" },
- "telescope-file-browser.nvim": { "branch": "master", "commit": "6eb6bb45b7a9bed94a464a3e1dadfe870459628c" },
+ "telescope-file-browser.nvim": { "branch": "master", "commit": "61b3769065131129716974f7fb63f82ee409bd80" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "580b6c48651cabb63455e97d7e131ed557b8c7e2" },
"telescope-fzy-native.nvim": { "branch": "master", "commit": "282f069504515eec762ab6d6c89903377252bf5b" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "62ea5e58c7bbe191297b983a9e7e89420f581369" },
"telescope.nvim": { "branch": "master", "commit": "a3f17d3baf70df58b9d3544ea30abe52a7a832c2" },
"todo-comments.nvim": { "branch": "main", "commit": "74c7d28cb50b0713c881ef69bcb6cdd77d8907d1" },
- "trouble.nvim": { "branch": "main", "commit": "3b754285635a66a93aeb15fa71a23417d8997217" },
+ "trouble.nvim": { "branch": "main", "commit": "67337644e38144b444d026b0df2dc5fa0038930f" },
"vim-blade": { "branch": "master", "commit": "9534101808cc320eef003129a40cab04b026a20c" },
"vim-dadbod": { "branch": "master", "commit": "389a2b0120f82b13d51ff7c07f5c13f9bc9f412f" },
"vim-dadbod-completion": { "branch": "master", "commit": "e71eb6140556c5ced80de6299a1fdfe22bd3c1b1" },
@@ -68,9 +70,9 @@
"vim-dotenv": { "branch": "master", "commit": "5c51cfcf8d87280d6414e03cd6b253eb70ecb800" },
"vim-easy-align": { "branch": "master", "commit": "12dd6316974f71ce333e360c0260b4e1f81169c3" },
"vim-eunuch": { "branch": "master", "commit": "291ef1f8c8996ca7715df1032a35a27b12d7b5cf" },
- "vim-fugitive": { "branch": "master", "commit": "d507d00bd04794119beeb41da118774a96815b65" },
+ "vim-fugitive": { "branch": "master", "commit": "fa33145cc12003005b92d7e536025ed5833b9c4f" },
"vim-repeat": { "branch": "master", "commit": "24afe922e6a05891756ecf331f39a1f6743d3d5a" },
"vim-rhubarb": { "branch": "master", "commit": "cad60fe382f3f501bbb28e113dfe8c0de6e77c75" },
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
"vim-test": { "branch": "master", "commit": "c63b94c1e5089807f4532e05f087351ddb5a207c" }
-} \ No newline at end of file
+}
diff --git a/lua/alpha/dap/configs/golang.lua b/lua/alpha/dap/configs/golang.lua
new file mode 100644
index 0000000..1ec449a
--- /dev/null
+++ b/lua/alpha/dap/configs/golang.lua
@@ -0,0 +1 @@
+require("dap-go").setup()
diff --git a/lua/alpha/dap/configs/javascript.lua b/lua/alpha/dap/configs/javascript.lua
new file mode 100644
index 0000000..b910f30
--- /dev/null
+++ b/lua/alpha/dap/configs/javascript.lua
@@ -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
diff --git a/lua/alpha/dap/configs/php.lua b/lua/alpha/dap/configs/php.lua
new file mode 100644
index 0000000..968bb9d
--- /dev/null
+++ b/lua/alpha/dap/configs/php.lua
@@ -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}",
+ },
+ },
+}
diff --git a/lua/alpha/dap/configs/rust.lua b/lua/alpha/dap/configs/rust.lua
new file mode 100644
index 0000000..9ca976f
--- /dev/null
+++ b/lua/alpha/dap/configs/rust.lua
@@ -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
diff --git a/lua/alpha/dap.lua b/lua/alpha/dap/init.lua
index a89d72e..1d69cf9 100644
--- a/lua/alpha/dap.lua
+++ b/lua/alpha/dap/init.lua
@@ -1,10 +1,20 @@
-local dap, dapui, dap_go = require "dap", require "dapui", require "dap-go"
+local dap, dapui, hydra = require "dap", require "dapui", require "hydra"
+-- Setup Virtual Text
require("nvim-dap-virtual-text").setup {}
--- dap.set_log_level('TRACE')
-dap_go.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 = {
@@ -29,90 +39,11 @@ dapui.setup {
},
}
-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 = "" })
-
-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}",
- },
- },
-}
-
-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
-
-- Events Listeners
dap.listeners.after.event_initialized["dapui_config"] = function()
dapui.open {}
end
-local hydra = require "hydra"
local hint = [[
Nvim DAP
_d_: Start/Continue _j_: StepOver _k_: StepOut _l_: StepInto ^
diff --git a/lua/alpha/lsp/tools.lua b/lua/alpha/lsp/tools.lua
index 68607d5..4eb40b3 100644
--- a/lua/alpha/lsp/tools.lua
+++ b/lua/alpha/lsp/tools.lua
@@ -1,4 +1,6 @@
return {
"go-debug-adapter",
"php-debug-adapter",
+ "js-debug-adapter",
+ "codelldb",
}