| 
									
										
										
										
											2025-06-03 23:02:23 -07:00
										 |  |  | return { | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		"mfussenegger/nvim-dap", | 
					
						
							|  |  |  | 		config = function() | 
					
						
							|  |  |  | 			local dap = require("dap") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			vim.keymap.set("n", "<Leader>db", dap.toggle_breakpoint, { desc = "Toggle Breakpoint" }) | 
					
						
							|  |  |  | 			vim.keymap.set("n", "<Leader>dc", dap.continue, { desc = "Start/Continue" }) | 
					
						
							|  |  |  | 			vim.keymap.set("n", "<Leader>do", dap.step_over, { desc = "Step Over" }) | 
					
						
							|  |  |  | 			vim.keymap.set("n", "<Leader>di", dap.step_into, { desc = "Step Into" }) | 
					
						
							| 
									
										
										
										
											2025-06-15 19:18:36 -07:00
										 |  |  | 			vim.keymap.set("n", "<F9>", dap.toggle_breakpoint) | 
					
						
							|  |  |  | 			vim.keymap.set("i", "<F9>", dap.toggle_breakpoint) | 
					
						
							|  |  |  | 			vim.keymap.set("n", "<F5>", dap.continue) | 
					
						
							|  |  |  | 			vim.keymap.set("i", "<F5>", dap.continue) | 
					
						
							|  |  |  | 			vim.keymap.set("n", "<F10>", dap.step_over) | 
					
						
							|  |  |  | 			vim.keymap.set("i", "<F10>", dap.step_over) | 
					
						
							|  |  |  | 			vim.keymap.set("n", "<F11>", dap.step_into) | 
					
						
							|  |  |  | 			vim.keymap.set("i", "<F11>", dap.step_into) | 
					
						
							| 
									
										
										
										
											2025-08-29 14:48:19 -07:00
										 |  |  | 			vim.keymap.set("n", "<Leader>dx", dap.terminate, { desc = "Terminate Session" }) | 
					
						
							| 
									
										
										
										
											2025-06-03 23:02:23 -07:00
										 |  |  | 		end, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		"rcarriga/nvim-dap-ui", | 
					
						
							|  |  |  | 		dependencies = { | 
					
						
							|  |  |  | 			"mfussenegger/nvim-dap", | 
					
						
							|  |  |  | 			"mfussenegger/nvim-dap-python", | 
					
						
							|  |  |  | 			"nvim-neotest/nvim-nio", | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		config = function() | 
					
						
							|  |  |  | 			require("dapui").setup({ | 
					
						
							|  |  |  | 				layouts = { | 
					
						
							|  |  |  | 					{ | 
					
						
							|  |  |  | 						elements = { | 
					
						
							|  |  |  | 							{ id = "scopes", size = 0.5 }, | 
					
						
							|  |  |  | 							{ id = "breakpoints", size = 0.25 }, | 
					
						
							|  |  |  | 							--{ id = "stacks", size = 0.25 }, | 
					
						
							|  |  |  | 							{ id = "watches", size = 0.25 }, | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						size = 0.3, | 
					
						
							|  |  |  | 						position = "left", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 					{ | 
					
						
							|  |  |  | 						elements = { | 
					
						
							|  |  |  | 							{ id = "console", size = 0.6 }, | 
					
						
							|  |  |  | 							{ id = "repl", size = 0.4 }, | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						size = 10, | 
					
						
							|  |  |  | 						position = "bottom", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}) | 
					
						
							|  |  |  | 			require("dap-python").setup("uv") | 
					
						
							| 
									
										
										
										
											2025-06-16 08:55:27 -07:00
										 |  |  | 			require("dap-python").test_runner = "pytest" | 
					
						
							|  |  |  | 			vim.keymap.set("n", "<Leader>dt", require("dap-python").test_method, { desc = "Debug Test Method" }) | 
					
						
							| 
									
										
										
										
											2025-08-29 14:48:19 -07:00
										 |  |  |       vim.keymap.set("n", "<Leader>dq", require("dapui").close, { desc = "Close Debugger" }) | 
					
						
							| 
									
										
										
										
											2025-06-16 08:55:27 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-03 23:02:23 -07:00
										 |  |  | 			local dap = require("dap") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			dap.listeners.after.event_initialized["dapui_config"] = function() | 
					
						
							|  |  |  | 				require("dapui").open() | 
					
						
							|  |  |  | 			end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 14:48:19 -07:00
										 |  |  | 			--dap.listeners.before.event_terminated["dapui_config"] = function() | 
					
						
							|  |  |  | 			--	require("dapui").close() | 
					
						
							|  |  |  | 			--end | 
					
						
							| 
									
										
										
										
											2025-06-03 23:02:23 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 14:48:19 -07:00
										 |  |  | 			--dap.listeners.before.event_exited["dapui_config"] = function() | 
					
						
							|  |  |  | 			--	require("dapui").close() | 
					
						
							|  |  |  | 			--end | 
					
						
							| 
									
										
										
										
											2025-06-03 23:02:23 -07:00
										 |  |  | 		end, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		"linux-cultist/venv-selector.nvim", | 
					
						
							|  |  |  | 		branch = "regexp", | 
					
						
							|  |  |  | 		lazy = false, | 
					
						
							|  |  |  | 		dependencies = { | 
					
						
							|  |  |  | 			"neovim/nvim-lspconfig", | 
					
						
							|  |  |  | 			"mfussenegger/nvim-dap", | 
					
						
							|  |  |  | 			"mfussenegger/nvim-dap-python", | 
					
						
							|  |  |  | 			{ "nvim-telescope/telescope.nvim", branch = "0.1.x", dependencies = { "nvim-lua/plenary.nvim" } }, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		keys = { | 
					
						
							|  |  |  | 			{ "<Leader>ea", "<cmd>VenvSelect<cr>", desc = "Activate Virtual Environment" }, | 
					
						
							| 
									
										
										
										
											2025-06-08 22:46:02 -07:00
										 |  |  | 			{ | 
					
						
							|  |  |  | 				"<Leader>es", | 
					
						
							|  |  |  | 				"<cmd>lua print(require('venv-selector').venv())<cr>", | 
					
						
							|  |  |  | 				desc = "Show Active Virtual Environment", | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2025-06-03 23:02:23 -07:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 		opts = { | 
					
						
							|  |  |  | 			search = { | 
					
						
							|  |  |  | 				vscode_venvs = { | 
					
						
							|  |  |  | 					command = "fdfind -p '.*/bin/python$' ~/VSCode/.venvs", | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 				code_venvs = { | 
					
						
							|  |  |  | 					command = "fdfind -p '.*/bin/python$' ~/Code/.venvs", | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2025-06-08 22:46:02 -07:00
										 |  |  | 			options = { | 
					
						
							|  |  |  | 				on_venv_activate_callback = function() | 
					
						
							| 
									
										
										
										
											2025-06-16 08:55:27 -07:00
										 |  |  | 					local python_path = require("venv-selector").python() | 
					
						
							| 
									
										
										
										
											2025-06-08 22:46:02 -07:00
										 |  |  | 					--print("Active python: " .. python_path) | 
					
						
							|  |  |  | 					vim.env.PYTHONPATH = python_path | 
					
						
							|  |  |  | 				end, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2025-06-03 23:02:23 -07:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | } |