mirror of
https://github.com/NotAShelf/nvf.git
synced 2026-06-13 16:25:04 +00:00
languages/zig: use new dap config format
This commit is contained in:
parent
987867905e
commit
1f457c85e7
1 changed files with 26 additions and 29 deletions
|
|
@ -7,42 +7,34 @@
|
|||
inherit (builtins) attrNames;
|
||||
inherit (lib.options) mkEnableOption mkOption literalExpression;
|
||||
inherit (lib.modules) mkIf mkMerge mkDefault;
|
||||
inherit (lib.generators) mkLuaInline;
|
||||
inherit (lib) genAttrs;
|
||||
inherit (lib.types) bool package enum listOf;
|
||||
inherit (lib.nvim.types) mkGrammarOption;
|
||||
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf enumWithRename;
|
||||
|
||||
cfg = config.vim.languages.zig;
|
||||
|
||||
defaultServers = ["zls"];
|
||||
servers = ["zls"];
|
||||
|
||||
# TODO: dap.adapter.lldb is duplicated when enabling the
|
||||
# vim.languages.clang.dap module. This does not cause
|
||||
# breakage... but could be cleaner.
|
||||
defaultDebugger = "lldb-vscode";
|
||||
defaultDebugger = ["lldb"];
|
||||
debuggers = {
|
||||
lldb-vscode = {
|
||||
package = pkgs.lldb;
|
||||
dapConfig = ''
|
||||
dap.adapters.lldb = {
|
||||
type = 'executable',
|
||||
command = '${cfg.dap.package}/bin/lldb-dap',
|
||||
name = 'lldb'
|
||||
}
|
||||
dap.configurations.zig = {
|
||||
{
|
||||
name = 'Launch',
|
||||
type = 'lldb',
|
||||
request = 'launch',
|
||||
program = function()
|
||||
lldb = {
|
||||
zig = [
|
||||
{
|
||||
name = "Launch";
|
||||
type = "lldb";
|
||||
request = "launch";
|
||||
program = mkLuaInline ''
|
||||
function()
|
||||
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
|
||||
end,
|
||||
cwd = "''${workspaceFolder}",
|
||||
stopOnEntry = false,
|
||||
args = {},
|
||||
},
|
||||
end
|
||||
'';
|
||||
cwd = "\${workspaceFolder}";
|
||||
stopOnEntry = false;
|
||||
args = {};
|
||||
}
|
||||
'';
|
||||
];
|
||||
};
|
||||
};
|
||||
in {
|
||||
|
|
@ -83,7 +75,11 @@ in {
|
|||
};
|
||||
|
||||
debugger = mkOption {
|
||||
type = enum (attrNames debuggers);
|
||||
type =
|
||||
deprecatedSingleOrListOf "vim.langauges.zig.dap.debugger"
|
||||
(enumWithRename "vim.langauges.zig.dap.debugger" (attrNames debuggers) {
|
||||
lldb-vscode = "lldb";
|
||||
});
|
||||
default = defaultDebugger;
|
||||
description = "Zig debugger to use";
|
||||
};
|
||||
|
|
@ -119,9 +115,10 @@ in {
|
|||
})
|
||||
|
||||
(mkIf cfg.dap.enable {
|
||||
vim = {
|
||||
debugger.nvim-dap.enable = true;
|
||||
debugger.nvim-dap.sources.zig-debugger = debuggers.${cfg.dap.debugger}.dapConfig;
|
||||
vim.debugger.nvim-dap = {
|
||||
enable = true;
|
||||
presets.lldb.enable = true;
|
||||
configurations = mkMerge (map (name: debuggers.${name}) cfg.dap.debugger);
|
||||
};
|
||||
})
|
||||
]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue