-- Trouble - A pretty diagnostics, references, telescope results, quickfix and location list -- https://github.com/folke/trouble.nvim return { "folke/trouble.nvim", dependencies = { "nvim-tree/nvim-web-devicons" }, event = { "BufReadPost", "BufNewFile" }, cmd = { "TroubleToggle", "Trouble" }, opts = { position = "bottom", -- position of the list can be: bottom, top, left, right height = 12, -- height of the trouble list when position is top or bottom width = 50, -- width of the list when position is left or right icons = true, -- use devicons for filenames mode = "workspace_diagnostics", -- "workspace_diagnostics", "document_diagnostics", "quickfix", "lsp_references", "loclist" severity = nil, -- nil (ALL) or vim.diagnostic.severity.ERROR | WARN | INFO | HINT fold_open = "", -- icon used for open folds fold_closed = "", -- icon used for closed folds group = true, -- group results by file padding = true, -- add an extra new line on top of the list action_keys = { -- key mappings for actions in the trouble list close = "q", -- close the list cancel = "", -- cancel the preview and get back to your last window / buffer / cursor refresh = "r", -- manually refresh jump = { "", "", "<2-leftmouse>" }, -- jump to the diagnostic or open / close folds open_split = { "" }, -- open buffer in new split open_vsplit = { "" }, -- open buffer in new vsplit open_tab = { "" }, -- open buffer in new tab jump_close = {"o"}, -- jump to the diagnostic and close the list toggle_mode = "m", -- toggle between "workspace" and "document" diagnostics mode switch_severity = "s", -- switch "diagnostics" severity filter toggle_preview = "P", -- toggle auto_preview hover = "K", -- opens a small popup with the full multiline message preview = "p", -- preview the diagnostic location open_code_href = "c", -- if present, open a URI with more information about the diagnostic error close_folds = {"zM", "zm"}, -- close all folds open_folds = {"zR", "zr"}, -- open all folds toggle_fold = {"zA", "za"}, -- toggle fold of current file previous = "k", -- previous item next = "j", -- next item help = "?" -- help menu }, multiline = true, -- render multi-line messages indent_lines = true, -- add an indent guide below the fold icons win_config = { border = "rounded" }, -- window configuration for floating windows auto_open = false, -- automatically open the list when you have diagnostics auto_close = false, -- automatically close the list when you have no diagnostics auto_preview = true, -- automatically preview the location of the diagnostic. to close preview and go back to last window auto_fold = false, -- automatically fold a file trouble list at creation auto_jump = {"lsp_definitions"}, -- for the given modes, automatically jump if there is only a single result signs = { -- icons / text used for a diagnostic error = "", warning = "", hint = "", information = "", other = "", }, use_diagnostic_signs = false -- enabling this will use the signs defined in your lsp client }, keys = { { "xx", "TroubleToggle document_diagnostics", desc = "Document Diagnostics (Trouble)" }, { "xX", "TroubleToggle workspace_diagnostics", desc = "Workspace Diagnostics (Trouble)" }, { "xL", "TroubleToggle loclist", desc = "Location List (Trouble)" }, { "xQ", "TroubleToggle quickfix", desc = "Quickfix List (Trouble)" }, { "gR", "TroubleToggle lsp_references", desc = "LSP References (Trouble)" }, { "gD", "TroubleToggle lsp_definitions", desc = "LSP Definitions (Trouble)" }, { "xT", "TodoTrouble", desc = "TODOs (Trouble)", cond = function() return require("lazy.core.config").spec.plugins["todo-comments"] ~= nil end }, }, config = function(_, opts) require("trouble").setup(opts) -- Add which-key group local ok, which_key = pcall(require, "which-key") if ok then which_key.register({ ["x"] = { name = "Trouble/Diagnostics", x = { "TroubleToggle document_diagnostics", "Document Diagnostics" }, X = { "TroubleToggle workspace_diagnostics", "Workspace Diagnostics" }, L = { "TroubleToggle loclist", "Location List" }, Q = { "TroubleToggle quickfix", "Quickfix List" }, T = { "TodoTrouble", "TODOs" }, }, }) end end, }