nvim-ks/lua/plugins/mini.lua
2026-03-05 17:23:53 +01:00

80 lines
2.8 KiB
Lua

return { -- Collection of various small independent plugins/modules
'echasnovski/mini.nvim',
config = function()
-- Better Around/Inside textobjects
--
-- Examples:
-- - va) - [V]isually select [A]round [)]paren
-- - yinq - [Y]ank [I]nside [N]ext [']quote
-- - ci' - [C]hange [I]nside [']quote
require('mini.ai').setup { n_lines = 500 }
-- Add/delete/replace surroundings (brackets, quotes, etc.)
--
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
-- - sd' - [S]urround [D]elete [']quotes
-- - sr)' - [S]urround [R]eplace [)] [']
require('mini.surround').setup()
-- Simple tabline
require('mini.tabline').setup()
-- Fancy notifications
require('mini.notify').setup()
-- Pair brackets, quotes, etc.
require('mini.pairs').setup()
-- Highlight word under cursor.
-- Useful for motions similar to 'diw' and 'ciw'
-- as well as # and * searches
require('mini.cursorword').setup()
-- Trailspace: highlight trailing whitespace
-- Trim all trailing whitespace with MiniTrailspace.trim().
-- Trim all trailing empty lines with MiniTrailspace.trim_last_lines().
require('mini.trailspace').setup()
require('mini.hipatterns').setup {
highlighters = {
fixme = { pattern = 'FIXME', group = 'MiniHipatternsFixme' },
hack = { pattern = 'HACK', group = 'MiniHipatternsHack' },
todo = { pattern = 'TODO', group = 'MiniHipatternsTodo' },
note = { pattern = 'NOTE', group = 'MiniHipatternsNote' },
see = { pattern = '[Ss][Ee][Ee]:', group = 'MiniHipatternsNote' },
warning = { pattern = 'WARNING', group = 'MiniHipatternsFixme' },
},
}
-- Unused for now
-- require('mini.git').setup {}
-- Helpful diffs, replaces gitsigns
-- see: https://nvim-mini.org/mini.nvim/doc/mini-diff.html#module-highlightgroups
require('mini.diff').setup {
view = {
style = 'sign',
-- signs = { add = '▒', change = '▒', delete = '▒' },
-- signs = { add = '|', change = '|', delete = '|' },
},
}
-- Simple and easy statusline.
-- You could remove this setup call if you don't like it,
-- and try some other statusline plugin
local statusline = require 'mini.statusline'
-- set use_icons to true if you have a Nerd Font
statusline.setup { use_icons = vim.g.have_nerd_font }
-- You can configure sections in the statusline by overriding their
-- default behavior. For example, here we set the section for
-- cursor location to LINE:COLUMN
---@diagnostic disable-next-line: duplicate-set-field
statusline.section_location = function()
return '%2l:%-2v'
end
-- ... and there is more!
-- Check out: https://github.com/echasnovski/mini.nvim
end,
}