return {
	{
		'mfussenegger/nvim-dap',
		-- optional = true,
		dependencies = {
			'mfussenegger/nvim-dap-python',
		},
		-- stylua: ignore
		-- keys = {
		-- 	{ '<leader>dPt', function() require('dap-python').test_method() end, desc = 'Debug Method' },
		-- 	{ '<leader>dPc', function() require('dap-python').test_class() end,  desc = 'Debug Class' },
		-- },
		opts = function()
			local dap = require('dap')
			dap.adapters.cppdbg = {
				id = 'cppdbg',
				type = 'executable',
				command = '/home/cscherr/.local/share/nvim/nvim-dap/debuggers/cpptools/extension/debugAdapters/bin/OpenDebugAD7',
			}
			dap.configurations.cpp = {
				{
					name = "Launch file",
					type = "cppdbg",
					request = "launch",
					program = function()
						return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
					end,
					cwd = '${workspaceFolder}',
					stopAtEntry = true,
					setupCommands = {
						{
							text = '-enable-pretty-printing',
							description = 'enable pretty printing',
							ignoreFailures = false
						},
					},

				},
				{
					name = 'Attach to gdbserver :1234',
					type = 'cppdbg',
					request = 'launch',
					MIMode = 'gdb',
					miDebuggerServerAddress = 'localhost:1234',
					miDebuggerPath = '/usr/bin/gdb',
					cwd = '${workspaceFolder}',
					program = function()
						return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
					end,
					setupCommands = {
						{
							text = '-enable-pretty-printing',
							description = 'enable pretty printing',
							ignoreFailures = false
						},
					},

				},
			}
			dap.configurations.c = dap.configurations.cpp
			dap.configurations.rust = dap.configurations.cpp
		end,
	},
}
