From 1f457c85e789d8928bd2297d6da957623d6a06ec Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Sat, 13 Jun 2026 00:07:24 +0200 Subject: [PATCH] languages/zig: use new dap config format --- modules/plugins/languages/zig.nix | 55 +++++++++++++++---------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/modules/plugins/languages/zig.nix b/modules/plugins/languages/zig.nix index a9589f9c..c14d980d 100644 --- a/modules/plugins/languages/zig.nix +++ b/modules/plugins/languages/zig.nix @@ -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); }; }) ]);