Context
Two plugins that would fill genuine gaps in the current setup, distinct from those already suggested in #129 (nvim-surround, oil.nvim, nvim-dap) and #139 (lazydev.nvim, render-markdown.nvim).
1. echasnovski/mini.ai — enhanced text objects
Rationale: The config already uses nvim-treesitter-textobjects for ]f/[f function navigation. mini.ai complements it by improving the everyday a/i text-object layer: af/if for function bodies, aa/ia for function arguments, a"/i" with smarter multi-line handling, etc. It works without grammar-level queries, so it covers filetypes where treesitter parsers are missing. The plugin is part of the mini.nvim ecosystem, zero-dependency, and a single-file install.
Install: { name = "mini.ai", src = "https://github.com/echasnovski/mini.ai.git" }
Minimal setup:
require("mini.ai").setup() -- sensible defaults out of the box
2. mfussenegger/nvim-lint — async linting
Rationale: The config has conform.nvim for formatting and LSP for type-checking diagnostics, but no dedicated lint pass. Many tools emit diagnostics that LSP servers don't surface: eslint for JS/TS style rules, ruff check (not ruff_format) for Python, selene for Lua, shellcheck for Bash. nvim-lint runs these asynchronously on BufWritePost/InsertLeave and populates the diagnostic namespace — appearing in the existing statusline diagnostics counter and <leader>d list with no extra UI. It pairs naturally with the existing conform formatters: format → then lint.
Install: { name = "nvim-lint", src = "https://github.com/mfussenegger/nvim-lint.git" }
Minimal setup:
require("lint").linters_by_ft = {
python = { "ruff" },
javascript = { "eslint_d" },
typescript = { "eslint_d" },
lua = { "selene" },
sh = { "shellcheck" },
}
vim.api.nvim_create_autocmd({ "BufWritePost", "InsertLeave" }, {
callback = function() require("lint").try_lint() end,
})
Context
Two plugins that would fill genuine gaps in the current setup, distinct from those already suggested in #129 (nvim-surround, oil.nvim, nvim-dap) and #139 (lazydev.nvim, render-markdown.nvim).
1.
echasnovski/mini.ai— enhanced text objectsRationale: The config already uses
nvim-treesitter-textobjectsfor]f/[ffunction navigation.mini.aicomplements it by improving the everydaya/itext-object layer:af/iffor function bodies,aa/iafor function arguments,a"/i"with smarter multi-line handling, etc. It works without grammar-level queries, so it covers filetypes where treesitter parsers are missing. The plugin is part of themini.nvimecosystem, zero-dependency, and a single-file install.Install:
{ name = "mini.ai", src = "https://github.com/echasnovski/mini.ai.git" }Minimal setup:
2.
mfussenegger/nvim-lint— async lintingRationale: The config has
conform.nvimfor formatting and LSP for type-checking diagnostics, but no dedicated lint pass. Many tools emit diagnostics that LSP servers don't surface:eslintfor JS/TS style rules,ruff check(notruff_format) for Python,selenefor Lua,shellcheckfor Bash.nvim-lintruns these asynchronously onBufWritePost/InsertLeaveand populates the diagnostic namespace — appearing in the existing statusline diagnostics counter and<leader>dlist with no extra UI. It pairs naturally with the existing conform formatters: format → then lint.Install:
{ name = "nvim-lint", src = "https://github.com/mfussenegger/nvim-lint.git" }Minimal setup: