-- Editor enhancement plugins return { -- Detect tabstop and shiftwidth automatically (removed guess-indent.nvim duplicate) 'tpope/vim-sleuth', -- Highlight TODOs in comments { 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false }, }, -- Collection of mini plugins { 'echasnovski/mini.nvim', config = function() -- Better Around/Inside textobjects require('mini.ai').setup { n_lines = 500 } -- Add/delete/replace surroundings require('mini.surround').setup() -- Simple statusline local statusline = require 'mini.statusline' statusline.setup { use_icons = vim.g.have_nerd_font } ---@diagnostic disable-next-line: duplicate-set-field statusline.section_location = function() return '%2l:%-2v' end -- File navigator require('mini.files').setup() end, keys = { { 'ff', 'lua MiniFiles.open()', desc = 'Toggle file navigator' }, }, }, -- Autopairs { 'windwp/nvim-autopairs', event = 'InsertEnter', dependencies = { 'hrsh7th/nvim-cmp' }, config = function() require('nvim-autopairs').setup {} end, }, -- Diagnostics list { 'folke/trouble.nvim', dependencies = { 'nvim-tree/nvim-web-devicons' }, opts = {}, keys = { { 'xx', 'Trouble diagnostics toggle', desc = 'Diagnostics (Trouble)' }, { 'xw', 'Trouble diagnostics toggle filter.buf=0', desc = 'Buffer Diagnostics (Trouble)' }, { 'xq', 'Trouble qflist toggle', desc = 'Quickfix List (Trouble)' }, { 'xl', 'Trouble loclist toggle', desc = 'Location List (Trouble)' }, { 'gR', 'Trouble lsp_references toggle', desc = 'LSP References (Trouble)' }, }, }, -- Linting { 'mfussenegger/nvim-lint', event = { 'BufReadPre', 'BufNewFile' }, config = function() local lint = require 'lint' lint.linters_by_ft = { -- Add linters per filetype as needed } vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWritePost', 'InsertLeave' }, { group = vim.api.nvim_create_augroup('lint', { clear = true }), callback = function() if vim.opt_local.modifiable:get() then lint.try_lint() end end, }) end, }, -- Indentation guides { 'lukas-reineke/indent-blankline.nvim', main = 'ibl', opts = {}, }, }