[DAP] Improve
This commit is contained in:
		| @@ -58,52 +58,7 @@ return { | ||||
|             { text = "", texthl = "DapStopped", linehl = "DapStopped", numhl = "DapStopped" } | ||||
|         ) | ||||
|  | ||||
|         dap.configurations.python = { | ||||
|             { | ||||
|                 type = "python", | ||||
|                 request = "launch", | ||||
|                 name = "Launch file", | ||||
|  | ||||
|                 -- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options | ||||
|  | ||||
|                 program = "${file}", -- This configuration will launch the current file if used. | ||||
|                 pythonPath = function() | ||||
|                     local cwd = vim.fn.getcwd() | ||||
|                     if vim.fn.executable(cwd .. "/venv/bin/python") == 1 then | ||||
|                         return cwd .. "/venv/bin/python" | ||||
|                     elseif vim.fn.executable(cwd .. "/.venv/bin/python") == 1 then | ||||
|                         return cwd .. "/.venv/bin/python" | ||||
|                     else | ||||
|                         return "/usr/bin/python" | ||||
|                     end | ||||
|                 end, | ||||
|             }, | ||||
|         } | ||||
|  | ||||
|         dap.adapters.python = function(cb, config) | ||||
|             if config.request == "attach" then | ||||
|                 ---@diagnostic disable-next-line: undefined-field | ||||
|                 local port = (config.connect or config).port | ||||
|                 ---@diagnostic disable-next-line: undefined-field | ||||
|                 local host = (config.connect or config).host or "127.0.0.1" | ||||
|                 cb({ | ||||
|                     type = "server", | ||||
|                     port = assert(port, "`connect.port` is required for a python `attach` configuration"), | ||||
|                     host = host, | ||||
|                     options = { | ||||
|                         source_filetype = "python", | ||||
|                     }, | ||||
|                 }) | ||||
|             else | ||||
|                 cb({ | ||||
|                     type = "executable", | ||||
|                     command = vim.fn.stdpath("data") .. "/mason/packages/debugpy/venv/bin/python", | ||||
|                     args = { "-m", "debugpy.adapter" }, | ||||
|                     options = { | ||||
|                         source_filetype = "python", | ||||
|                     }, | ||||
|                 }) | ||||
|             end | ||||
|         end | ||||
|         require("plugins.testing.debuggers.python") | ||||
|         require("plugins.testing.debuggers.gdb") | ||||
|     end, | ||||
| } | ||||
|   | ||||
							
								
								
									
										46
									
								
								nvim/lua/plugins/testing/debuggers/gdb.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								nvim/lua/plugins/testing/debuggers/gdb.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| local dap = require("dap") | ||||
| dap.adapters.gdb = { | ||||
|     type = "executable", | ||||
|     command = "gdb", | ||||
|     args = { "--interpreter=dap", "--eval-command", "set print pretty on" }, | ||||
| } | ||||
|  | ||||
| dap.configurations.c = { | ||||
|     { | ||||
|         name = "Launch", | ||||
|         type = "gdb", | ||||
|         request = "launch", | ||||
|         program = function() | ||||
|             return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") | ||||
|         end, | ||||
|         args = {}, -- provide arguments if needed | ||||
|         cwd = "${workspaceFolder}", | ||||
|         stopAtBeginningOfMainSubprogram = false, | ||||
|     }, | ||||
|     { | ||||
|         name = "Select and attach to process", | ||||
|         type = "gdb", | ||||
|         request = "attach", | ||||
|         program = function() | ||||
|             return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") | ||||
|         end, | ||||
|         pid = function() | ||||
|             local name = vim.fn.input("Executable name (filter): ") | ||||
|             return require("dap.utils").pick_process({ filter = name }) | ||||
|         end, | ||||
|         cwd = "${workspaceFolder}", | ||||
|     }, | ||||
|     { | ||||
|         name = "Attach to gdbserver :1234", | ||||
|         type = "gdb", | ||||
|         request = "attach", | ||||
|         target = "localhost:1234", | ||||
|         program = function() | ||||
|             return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") | ||||
|         end, | ||||
|         cwd = "${workspaceFolder}", | ||||
|     }, | ||||
| } | ||||
|  | ||||
| dap.configurations.cpp = dap.configurations.c | ||||
| dap.configurations.rust = dap.configurations.c | ||||
							
								
								
									
										48
									
								
								nvim/lua/plugins/testing/debuggers/python.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								nvim/lua/plugins/testing/debuggers/python.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| local dap = require("dap") | ||||
| dap.configurations.python = { | ||||
|     { | ||||
|         type = "python", | ||||
|         request = "launch", | ||||
|         name = "Launch file", | ||||
|  | ||||
|         -- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options | ||||
|  | ||||
|         program = "${file}", -- This configuration will launch the current file if used. | ||||
|         pythonPath = function() | ||||
|             local cwd = vim.fn.getcwd() | ||||
|             if vim.fn.executable(cwd .. "/venv/bin/python") == 1 then | ||||
|                 return cwd .. "/venv/bin/python" | ||||
|             elseif vim.fn.executable(cwd .. "/.venv/bin/python") == 1 then | ||||
|                 return cwd .. "/.venv/bin/python" | ||||
|             else | ||||
|                 return "/usr/bin/python" | ||||
|             end | ||||
|         end, | ||||
|     }, | ||||
| } | ||||
|  | ||||
| dap.adapters.python = function(cb, config) | ||||
|     if config.request == "attach" then | ||||
|         ---@diagnostic disable-next-line: undefined-field | ||||
|         local port = (config.connect or config).port | ||||
|         ---@diagnostic disable-next-line: undefined-field | ||||
|         local host = (config.connect or config).host or "127.0.0.1" | ||||
|         cb({ | ||||
|             type = "server", | ||||
|             port = assert(port, "`connect.port` is required for a python `attach` configuration"), | ||||
|             host = host, | ||||
|             options = { | ||||
|                 source_filetype = "python", | ||||
|             }, | ||||
|         }) | ||||
|     else | ||||
|         cb({ | ||||
|             type = "executable", | ||||
|             command = vim.fn.stdpath("data") .. "/mason/packages/debugpy/venv/bin/python", | ||||
|             args = { "-m", "debugpy.adapter" }, | ||||
|             options = { | ||||
|                 source_filetype = "python", | ||||
|             }, | ||||
|         }) | ||||
|     end | ||||
| end | ||||
		Reference in New Issue
	
	Block a user