local opts = function(label) return {noremap = true, silent = true, desc = label} end require('mini.ai').setup() require('mini.align').setup() require('mini.bracketed').setup() require('mini.completion').setup() require('mini.diff').setup() require('mini.extra').setup() require('mini.icons').setup() require('mini.jump').setup() require('mini.pairs').setup() require('mini.statusline').setup() require('mini.surround').setup() require('mini.splitjoin').setup() require('mini.files').setup() local oil_style = function() if not MiniFiles.close() then MiniFiles.open(vim.api.nvim_buf_get_name(0)) MiniFiles.reveal_cwd() end end vim.keymap.set('n', '-', oil_style, opts("File Explorer")); local hipatterns = require('mini.hipatterns') hipatterns.setup({ -- highlight strings and colors 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(), } }) require('mini.jump2d').setup({ mappings = { start_jumping = 'gw' } }) require('mini.pick').setup() MiniPick.registry.files_root = function(local_opts) local root_patterns = { ".jj" } local root_dir = vim.fs.dirname(vim.fs.find(root_patterns, { upward = true })[1]) local opts = { source = { cwd = root_dir } } local_opts.cwd = root_dir -- nil? return MiniPick.builtin.files(local_opts, opts) end vim.keymap.set('n', '/', "Pick grep_live", opts("Live Grep")) vim.keymap.set('n', 'F', "Pick files tool='git'", opts("Find Files in CWD")) vim.keymap.set('n', 'ff', "Pick files", opts("Find Files")) vim.keymap.set('n', 'fr', "Pick oldfiles", opts("Recent Files")) vim.keymap.set('n', 'b', "Pick buffers", opts("Buffers")) vim.keymap.set('n', '', "Pick buffers", opts("Buffers")) vim.keymap.set('n', "'", "Pick resume", opts("Last Picker")) vim.keymap.set('n', "g", "Pick git_commits", opts("Git Commits")) local miniclue = require('mini.clue') miniclue.setup({ -- cute prompts about bindings triggers = { { mode = 'n', keys = '' }, { mode = 'x', keys = '' }, { mode = 'n', 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' }, -- Bracketed { mode = 'n', keys = '[' }, { mode = 'n', keys = ']' }, }, 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(), }, window = { delay = 15, } })