{ lib, config, ... }: let cfg = config.presets.trouble; in { options.presets.trouble = { enable = lib.mkEnableOption "trouble"; }; config = lib.mkIf cfg.enable { keymaps = [ { key = "xx"; mode = "n"; action.__raw = # lua "require('trouble').toggle"; } { key = "xw"; mode = "n"; action.__raw = # lua "function() require('trouble').toggle('workspace_diagnostics') end"; } { key = "xd"; mode = "n"; action.__raw = # lua "function() require('trouble').toggle('document_diagnostics') end"; } { key = "xq"; mode = "n"; action.__raw = # lua "function() require('trouble').toggle('quickfix') end"; } { key = "xl"; mode = "n"; action.__raw = # lua "function() require('trouble').toggle('loclist') end"; } ]; plugins = { web-devicons.enable = true; trouble = { enable = true; settings.use_diagnostic_signs = true; }; which-key.settings.spec = [ { __unkeyed-1 = "x"; group = "Trouble"; icon = { icon = ""; color = "red"; }; } { __unkeyed-1 = "xx"; desc = "Toggle"; icon = "󰺲"; } { __unkeyed-1 = "xw"; desc = "Workspace Diagnostics"; icon = "󰙅"; } { __unkeyed-1 = "xd"; desc = "Document Diagnostics"; icon = "󱪗"; } { __unkeyed-1 = "xq"; desc = "Quickfix"; icon = ""; } { __unkeyed-1 = "xl"; desc = "Loclist"; icon = "󰷐"; } ]; }; }; }