From 67ef83999dabf5f05b63ab0a0d0ff6ff5c840e6b Mon Sep 17 00:00:00 2001 From: Pratik Tripathy Date: Sat, 18 May 2024 18:25:58 +0530 Subject: [PATCH] NVIM: Updated trouble plugin with better options --- .../.config/nvim/lua/plugins/code-generic.lua | 56 ++++++++++++++++--- 1 file changed, 48 insertions(+), 8 deletions(-) diff --git a/common/.config/nvim/lua/plugins/code-generic.lua b/common/.config/nvim/lua/plugins/code-generic.lua index 754c1a1..bb28823 100644 --- a/common/.config/nvim/lua/plugins/code-generic.lua +++ b/common/.config/nvim/lua/plugins/code-generic.lua @@ -197,16 +197,57 @@ return { -- better diagnostics list and others { "folke/trouble.nvim", - cmd = { "TroubleToggle", "Trouble" }, + branch = "dev", opts = { - use_diagnostic_signs = true, - severity = vim.diagnostic.severity.WARN, + -- Default: Preview in a split + preview = { + type = "split", + relative = "win", + position = "right", + size = 0.6, + }, + modes = { + + -- Show only the most severe diagnostics; once resolved, less severe will be shown + most_severe = { + mode = "diagnostics", -- inherit from diagnostics mode + filter = function(items) + local severity = vim.diagnostic.severity.HINT + for _, item in ipairs(items) do + severity = math.min(severity, item.severity) + end + return vim.tbl_filter(function(item) + return item.severity == severity + end, items) + end, + }, + + -- Diagnostics from buffer + Errors from current project + project_errors = { + mode = "diagnostics", -- inherit from diagnostics mode + filter = { + any = { + buf = 0, -- current buffer + { + severity = vim.diagnostic.severity.ERROR, + -- limit to files in the current project + function(item) + return item.filename:find((vim.loop or vim.uv).cwd(), 1, true) + end, + }, + }, + }, + }, + }, }, keys = { - { "dd", "TroubleToggle document_diagnostics", desc = "Document Diagnostics (Trouble)" }, - { "dw", "TroubleToggle workspace_diagnostics", desc = "Workspace Diagnostics (Trouble)" }, - { "dl", "TroubleToggle loclist", desc = "Location List (Trouble)" }, - { "dq", "TroubleToggle quickfix", desc = "Quickfix List (Trouble)" }, + { "o", "Trouble symbols toggle focus=true", desc = "Code: Toggle Symbol Outline" }, + + { "dd", "Trouble project_errors toggle focus=true", desc = "Trouble: Document Diagnostics" }, + { "dw", "Trouble most_severe toggle focus=true", desc = "Trouble: List Project Diagnostics" }, + { "dl", "Trouble loclist toggle focus=true", desc = "Trouble: Location List" }, + { "dq", "Trouble quickfix toggle focus=true", desc = "Trouble: Quickfix List" }, + { "gr", "Trouble lsp_references toggle focus=true", desc = "Code: List References" }, { "[q", function() @@ -290,7 +331,6 @@ return { vim.keymap.set("n", "cD", "Lspsaga peek_type_definition", { desc = "Code: Peek definition: Class" }) vim.keymap.set("n", "K", "Lspsaga hover_doc", { desc = "Hover Documentation" }) - vim.keymap.set("n", "o", "Lspsaga outline", { desc = "Code: Toggle Symbol Outline" }) end, },