{ 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"; lua = true; action = "require('trouble').toggle"; } { key = "xw"; mode = "n"; lua = true; action = "function() require('trouble').toggle('workspace_diagnostics') end"; } { key = "xd"; mode = "n"; lua = true; action = "function() require('trouble').toggle('document_diagnostics') end"; } { key = "xq"; mode = "n"; lua = true; action = "function() require('trouble').toggle('quickfix') end"; } { key = "xl"; mode = "n"; lua = true; action = "function() require('trouble').toggle('loclist') end"; } ]; plugins = { trouble = { enable = true; settings.use_diagnostic_signs = true; }; which-key.registrations."x" = { name = "Trouble"; x = "Toggle"; w = "Workspace Diagnostics"; d = "Document Diagnostics"; q = "Quickfix"; l = "Loclist"; }; }; }; }