feat(neovim): make debugger adapters work for rust and c++
This commit is contained in:
parent
6f8c09023c
commit
97a16187aa
5 changed files with 95 additions and 40 deletions
|
@ -58,6 +58,7 @@ in
|
|||
# C/C++
|
||||
clang-tools
|
||||
gcc # Needed for treesitter
|
||||
vscode-extensions.ms-vscode.cpptools
|
||||
|
||||
# C#
|
||||
csharp-ls
|
||||
|
@ -114,5 +115,7 @@ in
|
|||
config = config;
|
||||
pkgs = pkgs;
|
||||
};
|
||||
|
||||
xdg.configFile."nvim/lua/polish.lua".text = import ./polish.nix pkgs;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
-- This will run last in the setup process and is a good place to configure
|
||||
-- things like custom filetypes. This just pure lua so anything that doesn't
|
||||
-- fit in the normal config locations above can go here
|
||||
|
||||
-- Set up custom filetypes
|
||||
vim.filetype.add {
|
||||
extension = {
|
||||
foo = "fooscript",
|
||||
},
|
||||
filename = {
|
||||
["Foofile"] = "fooscript",
|
||||
},
|
||||
pattern = {
|
||||
["~/%.config/foo/.*"] = "fooscript",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
local dap = require "dap"
|
||||
|
||||
dap.adapters.codelldb = {
|
||||
port = "${port}",
|
||||
type = "server",
|
||||
executable = {
|
||||
command = "codelldb",
|
||||
args = { "--port", "${port}" },
|
||||
},
|
||||
}
|
||||
|
||||
dap.configurations.rust = {
|
||||
{
|
||||
name = "Launch file",
|
||||
type = "codelldb",
|
||||
request = "launch",
|
||||
program = function() return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") end,
|
||||
cwd = "${workspaceFolder}",
|
||||
stopOnEntry = false,
|
||||
},
|
||||
}
|
80
modules/home-manager/programs/neovim/polish.nix
Normal file
80
modules/home-manager/programs/neovim/polish.nix
Normal file
|
@ -0,0 +1,80 @@
|
|||
pkgs:
|
||||
#lua
|
||||
''
|
||||
-- This will run last in the setup process and is a good place to configure
|
||||
-- things like custom filetypes. This just pure lua so anything that doesn't
|
||||
-- fit in the normal config locations above can go here
|
||||
|
||||
-- Set up custom filetypes
|
||||
vim.filetype.add({
|
||||
extension = {
|
||||
foo = "fooscript",
|
||||
},
|
||||
filename = {
|
||||
["Foofile"] = "fooscript",
|
||||
},
|
||||
pattern = {
|
||||
["~/%.config/foo/.*"] = "fooscript",
|
||||
},
|
||||
})
|
||||
|
||||
local dap = require("dap")
|
||||
|
||||
-- @type DapAdapter
|
||||
dap.adapters.codelldb = {
|
||||
port = "''${port}",
|
||||
type = "server",
|
||||
executable = {
|
||||
command = "codelldb",
|
||||
args = { "--port", "''${port}" },
|
||||
},
|
||||
}
|
||||
|
||||
dap.adapters.cppdbg = {
|
||||
id = "cppdbg",
|
||||
type = "executable",
|
||||
command =
|
||||
"${pkgs.vscode-extensions.ms-vscode.cpptools}/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7",
|
||||
}
|
||||
|
||||
-- @type DapConfiguration
|
||||
dap.configurations.rust = {
|
||||
{
|
||||
name = "Launch file",
|
||||
type = "codelldb",
|
||||
request = "launch",
|
||||
program = function()
|
||||
return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
|
||||
end,
|
||||
cwd = "''${workspaceFolder}",
|
||||
stopOnEntry = false,
|
||||
},
|
||||
}
|
||||
|
||||
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,
|
||||
},
|
||||
{
|
||||
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,
|
||||
},
|
||||
}
|
||||
|
||||
dap.configurations.c = dap.configurations.cpp
|
||||
''
|
Loading…
Add table
Add a link
Reference in a new issue