178 lines
4.3 KiB
Lua
178 lines
4.3 KiB
Lua
-- The MIT License (MIT)
|
|
--
|
|
-- Copyright © 2026 Scott E. Graves <scott.e.graves@protonmail.com>
|
|
--
|
|
-- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
|
-- and associated documentation files (the “Software”), to deal in the Software without restriction,
|
|
-- including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
|
-- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
|
-- furnished to do so, subject to the following conditions:
|
|
--
|
|
-- The above copyright notice and this permission notice shall be included in all copies or
|
|
-- substantial portions of the Software.
|
|
--
|
|
-- THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
|
-- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
-- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
--
|
|
local dap = require("dap")
|
|
local utils = require("darcula.utils")
|
|
local utils_os = require("darcula.utils.os")
|
|
|
|
-- DOES NOT CURRENTLY WORK
|
|
-- dap.adapters.cppvsdbg = {
|
|
-- id = "cppvsdbg",
|
|
-- type = "executable",
|
|
-- command = vim.fs.joinpath(
|
|
-- vim.fn.stdpath("data"),
|
|
-- "dap", "cpp", "extension", "debugAdapters", "vsdbg", "bin", "vsdbg.exe"
|
|
-- ),
|
|
-- args = {
|
|
-- "--interpreter=vscode"
|
|
-- },
|
|
-- options = {
|
|
-- detached = false
|
|
-- }
|
|
-- }
|
|
dap.adapters.cppdbg = {
|
|
id = "cppdbg",
|
|
type = "executable",
|
|
command = vim.fs.joinpath(
|
|
vim.fn.stdpath("data"),
|
|
"dap",
|
|
"cpp",
|
|
"extension",
|
|
"debugAdapters",
|
|
"bin",
|
|
utils.iff(utils_os.is_windows, "OpenDebugAD7.exe", "OpenDebugAD7")
|
|
),
|
|
options = {
|
|
detached = false
|
|
}
|
|
}
|
|
|
|
dap.adapters.dart = {
|
|
type = "executable",
|
|
command = "dart",
|
|
args = {"debug_adapter"}
|
|
}
|
|
dap.adapters.flutter = {
|
|
type = "executable",
|
|
command = "flutter",
|
|
args = {"debug_adapter"}
|
|
}
|
|
dap.configurations.dart = {
|
|
{
|
|
type = "dart",
|
|
request = "launch",
|
|
name = "Launch dart",
|
|
dartSdkPath = vim.fs.joinpath(
|
|
utils.iff(utils_os.is_windows, vim.env.NV_DARCULA_DRIVE, vim.env.HOME),
|
|
"flutter",
|
|
"bin",
|
|
"cache",
|
|
"dart-sdk",
|
|
"bin",
|
|
"dart"
|
|
),
|
|
flutterSdkPath = vim.fs.joinpath(
|
|
utils.iff(utils_os.is_windows, vim.env.NV_DARCULA_DRIVE, vim.env.HOME),
|
|
"flutter",
|
|
"bin",
|
|
"flutter"
|
|
),
|
|
program = "${workspaceFolder}/lib/main.dart", -- ensure this is correct
|
|
cwd = "${workspaceFolder}"
|
|
},
|
|
{
|
|
type = "flutter",
|
|
request = "launch",
|
|
name = "Launch flutter",
|
|
dartSdkPath = vim.fs.joinpath(
|
|
utils.iff(utils_os.is_windows, vim.env.NV_DARCULA_DRIVE, vim.env.HOME),
|
|
"flutter",
|
|
"bin",
|
|
"cache",
|
|
"dart-sdk",
|
|
"bin",
|
|
"dart"
|
|
),
|
|
flutterSdkPath = vim.fs.joinpath(
|
|
utils.iff(utils_os.is_windows, vim.env.NV_DARCULA_DRIVE, vim.env.HOME),
|
|
"flutter",
|
|
"bin",
|
|
"flutter"
|
|
),
|
|
program = "${workspaceFolder}/lib/main.dart", -- ensure this is correct
|
|
cwd = "${workspaceFolder}"
|
|
}
|
|
}
|
|
|
|
require("dap-go").setup()
|
|
|
|
local symbols = require("darcula.utils.symbols")
|
|
vim.fn.sign_define(
|
|
"DapBreakpoint",
|
|
{
|
|
text = symbols.debug.breakpoint,
|
|
texthl = "ErrorSign",
|
|
linehl = "",
|
|
numhl = ""
|
|
}
|
|
)
|
|
|
|
vim.fn.sign_define(
|
|
"DapBreakpointCondition",
|
|
{
|
|
text = symbols.debug.conditional_breakpoint,
|
|
texthl = "ErrorSign",
|
|
linehl = "",
|
|
numhl = ""
|
|
}
|
|
)
|
|
|
|
vim.fn.sign_define(
|
|
"DapBreakpointRejected",
|
|
{
|
|
text = symbols.debug.breakpoint_disabled,
|
|
texthl = "ErrorSign",
|
|
linehl = "",
|
|
numhl = ""
|
|
}
|
|
)
|
|
|
|
vim.fn.sign_define(
|
|
"DapLogPoint",
|
|
{
|
|
text = symbols.debug.breakpoint,
|
|
texthl = "WarningSign",
|
|
linehl = "",
|
|
numhl = ""
|
|
}
|
|
)
|
|
|
|
vim.fn.sign_define(
|
|
"DapStopped",
|
|
{
|
|
text = symbols.debug.current_line,
|
|
texthl = "WarningSign",
|
|
linehl = "",
|
|
numhl = ""
|
|
}
|
|
)
|
|
|
|
local dapui = require("dapui")
|
|
dapui.setup()
|
|
|
|
dap.listeners.after.event_initialized["dapui_config"] = function()
|
|
dapui.open()
|
|
end
|
|
dap.listeners.before.event_terminated["dapui_config"] = function()
|
|
dapui.close()
|
|
end
|
|
dap.listeners.before.event_exited["dapui_config"] = function()
|
|
dapui.close()
|
|
end
|