return { 'echasnovski/mini.nvim', version = '*', dependencies = { "rafamadriz/friendly-snippets", }, config = function() require('mini.icons').setup() require('mini.bracketed').setup() -- [] movement for various stuff require("mini.ai").setup({}) require('mini.cursorword').setup() -- Highlight word under cursor require('mini.extra').setup() require('mini.jump').setup() -- Extend f, F, t, T require('mini.surround').setup() require('mini.operators').setup() require('mini.pairs').setup() require('mini.splitjoin').setup() require("mini.align").setup({}) require('mini.animate').setup() require('mini.notify').setup({ -- Notifications about LSP progress lsp_progress = { -- Whether to enable showing enable = false, } }) vim.notify = require('mini.notify').make_notify() require('mini.starter').setup() require('mini.statusline').setup({}) require('mini.diff').setup({ view = { style = 'sign' } }) require('mini.git').setup({}) local rhs = 'lua MiniGit.show_at_cursor()' vim.keymap.set({ 'n', 'x' }, 'gs', rhs, { desc = 'Show at cursor', silent = true }) local starter = require('mini.starter') starter.setup({ footer = '', evaluate_single = true, items = { starter.sections.recent_files(10, true), starter.sections.pick(), starter.sections.builtin_actions(), }, content_hooks = { starter.gen_hook.adding_bullet(), starter.gen_hook.indexing('all', { 'Builtin actions' }), starter.gen_hook.aligning("center", "center"), }, }) require('mini.indentscope').setup({ draw = { animation = require('mini.indentscope').gen_animation.none(), }, }) require('mini.files').setup({ mappings = { go_in = 'L', go_in_plus = 'l', }, windows = { preview = true, width_preview = 75, } }) vim.keymap.set('n', 'e', ":lua MiniFiles.open(vim.api.nvim_buf_get_name(0))", { desc = 'Show at cursor', silent = true }) require('mini.move').setup({ mappings = { -- Move visual selection in Visual mode left = 'H', right = 'L', down = 'J', up = 'K', -- Move current line in Normal mode line_left = '', line_right = '', line_down = '', line_up = '', }, }) require('mini.comment').setup({ options = { -- Whether to ignore blank lines when commenting ignore_blank_line = true, -- Whether to ignore blank lines in actions and textobject start_of_line = true, }, }) local gen_loader = require('mini.snippets').gen_loader require('mini.snippets').setup({ snippets = { -- Load custom file with global snippets first (adjust for Windows) gen_loader.from_file('~/.config/nvim-unstable/snippets/global.json'), -- Load snippets based on current language by reading files from -- "snippets/" subdirectories from 'runtimepath' directories. gen_loader.from_lang(), }, }) local miniclue = require("mini.clue") miniclue.setup({ triggers = { -- Leader triggers { mode = "n", keys = "" }, { mode = "v", keys = "" }, { mode = "x", keys = "" }, -- Built-in completion { mode = "i", keys = "" }, -- `g` key { mode = "n", keys = "g" }, { mode = "x", keys = "g" }, -- Marks { mode = "n", keys = "'" }, { mode = "n", keys = "`" }, { mode = "x", keys = "'" }, { mode = "x", keys = "`" }, -- Registers { mode = "n", keys = '"' }, { mode = "x", keys = '"' }, { mode = "i", keys = "" }, { mode = "c", keys = "" }, -- Window commands { mode = "n", keys = "" }, -- `z` key { mode = "n", keys = "z" }, { mode = "x", keys = "z" }, }, -- Add a "postkeys" value to activate those keys after others clues = { miniclue.gen_clues.builtin_completion(), miniclue.gen_clues.g(), miniclue.gen_clues.marks(), miniclue.gen_clues.registers(), miniclue.gen_clues.windows(), miniclue.gen_clues.z(), { mode = "n", keys = "", desc = "+Bookmarks" }, { mode = "n", keys = "n", postkeys = "" }, { mode = "n", keys = "N", postkeys = "" }, { mode = "n", keys = "b", desc = "+Buffers" }, { mode = "n", keys = "bh", postkeys = "b" }, { mode = "n", keys = "bl", postkeys = "b" }, { mode = "n", keys = "f", desc = "+Find" }, { mode = "n", keys = "g", desc = "+Git" }, { mode = "n", keys = "l", desc = "+LSP" }, { mode = "n", keys = "r", desc = "+Replace" }, { mode = "n", keys = "u", desc = "+UI & Config" }, { mode = "n", keys = "un", desc = "+Noice" }, { mode = "n", keys = "w", desc = "+Workspace" }, { mode = "n", keys = "p", desc = "+Run stuff" }, { mode = "n", keys = "z", desc = "+ZK" }, { mode = "v", keys = "z", desc = "+ZK" }, { mode = "v", keys = "a", desc = "+AI" }, { mode = "n", keys = "a", desc = "+AI" }, { mode = "n", keys = "g?", desc = "+Print Debug" }, }, -- Clue window settings window = { -- Floating window config config = { width = "auto", }, -- Delay before showing clue window delay = 200, -- Keys to scroll inside the clue window scroll_down = "", scroll_up = "", }, }) local hipatterns = require('mini.hipatterns') hipatterns.setup({ highlighters = { -- Highlight standalone 'FIXME', 'HACK', 'TODO', 'NOTE' fixme = { pattern = '%f[%w]()FIXME()%f[%W]', group = 'MiniHipatternsFixme' }, hack = { pattern = '%f[%w]()HACK()%f[%W]', group = 'MiniHipatternsHack' }, todo = { pattern = '%f[%w]()TODO()%f[%W]', group = 'MiniHipatternsTodo' }, note = { pattern = '%f[%w]()NOTE()%f[%W]', group = 'MiniHipatternsNote' }, -- Highlight hex color strings (`#rrggbb`) using that color hex_color = hipatterns.gen_highlighter.hex_color(), }, }) end }