return { -- Highly experimental plugin that completely -- replaces the UI for messages, cmdline and the popupmenu. -- https://github.com/folke/noice.nvim { ---@module 'noice' 'folke/noice.nvim', event = 'VeryLazy', dependencies = { -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries 'MunifTanjim/nui.nvim', { 'rcarriga/nvim-notify', opts = { background_colour = '#000000' }, }, }, opts = { lsp = { -- override markdown rendering so that **cmp** and other plugins -- use **Treesitter** override = { ['vim.lsp.util.convert_input_to_markdown_lines'] = true, ['vim.lsp.util.stylize_markdown'] = true, ['cmp.entry.get_documentation'] = true, -- requires hrsh7th/nvim-cmp }, }, -- you can enable a preset for easier configuration presets = { bottom_search = true, -- use a classic bottom cmdline for search command_palette = true, -- position the cmdline and popupmenu together long_message_to_split = true, -- long messages will be sent to a split inc_rename = false, -- enables an input dialog for inc-rename.nvim lsp_doc_border = false, -- add a border to hover docs and signature help }, routes = { { view = 'notify', filter = { event = 'msg_showmode' }, }, { filter = { event = 'msg_show', kind = '', any = { { find = 'written' }, { find = '%d of %d --%d%--' }, }, }, opts = { skip = true }, }, { filter = { event = 'msg_show', any = { { find = '%d+L, %d+B' }, { find = '; after #%d+' }, { find = '; before #%d+' }, { find = "' added to" }, }, }, view = 'mini', }, { filter = { event = 'lsp', kind = 'progress', cond = function(message) local client = vim.tbl_get(message.opts, 'progress', 'client') return client == 'lua_ls' end, }, opts = { skip = true }, }, }, views = { cmdline_popup = { position = { row = 5, col = '50%', }, size = { width = 60, height = 'auto', }, }, popupmenu = { relative = 'editor', position = { row = 8, col = '50%', }, size = { width = 60, height = 10, }, border = { style = 'rounded', padding = { 0, 1 }, }, win_options = { winhighlight = { Normal = 'Normal', FloatBorder = 'DiagnosticInfo' }, }, }, }, }, }, -- A pretty diagnostics, references, telescope results, -- quickfix and location list to help you solve all the -- trouble your code is causing. -- https://github.com/folke/trouble.nvim { ---@module 'trouble' 'folke/trouble.nvim', lazy = false, cmd = 'Trouble', dependencies = { 'nvim-tree/nvim-web-devicons' }, ---@type trouble.Config opts = { auto_preview = true, auto_fold = true, auto_close = true, use_lsp_diagnostic_signs = true, keys = { j = 'next', k = 'prev', }, modes = { diagnostics = { auto_open = false, }, test = { mode = 'diagnostics', preview = { type = 'split', relative = 'win', position = 'right', size = 0.25, }, }, cascade = { 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, }, }, }, }, }