-- UI ========================================================================== Config.now(function() -- Global icon provider. require('mini.icons').setup() Config.later(MiniIcons.tweak_lsp_kind) -- Notifications. require('mini.notify').setup() -- Start screen. require('mini.starter').setup() -- Statusline. require('mini.statusline').setup() end) Config.later(function() -- Git diff indicators. require('mini.diff').setup() -- Keymap hints. local miniclue = require('mini.clue') miniclue.setup({ clues = { Config.leader_group_clues, miniclue.gen_clues.builtin_completion(), miniclue.gen_clues.g(), miniclue.gen_clues.marks(), miniclue.gen_clues.registers(), miniclue.gen_clues.square_brackets(), miniclue.gen_clues.windows({ submode_resize = true }), miniclue.gen_clues.z(), }, triggers = { { mode = { 'n', 'x' }, keys = '' }, -- Leader triggers { mode = 'n', keys = '\\' }, -- mini.basics { mode = { 'n', 'x' }, keys = '[' }, -- mini.bracketed { mode = { 'n', 'x' }, keys = ']' }, { mode = 'i', keys = '' }, -- Built-in completion { mode = { 'n', 'x' }, keys = 'g' }, -- `g` key { mode = { 'n', 'x' }, keys = "'" }, -- Marks { mode = { 'n', 'x' }, keys = '`' }, { mode = { 'n', 'x' }, keys = '"' }, -- Registers { mode = { 'i', 'c' }, keys = '' }, { mode = 'n', keys = '' }, -- Window commands { mode = { 'n', 'x' }, keys = 's' }, -- `s` key (mini.surround, etc.) { mode = { 'n', 'x' }, keys = 'z' }, -- `z` key }, }) end) -- Editing ===================================================================== Config.later(function() -- Enhanced text objects (a/i). require('mini.ai').setup() -- Auto-close brackets and quotes. require('mini.pairs').setup() -- Surround functionality (add/delete/replace). require('mini.surround').setup() end) -- Navigation ================================================================== Config.now_if_args(function() -- File system explorer. require('mini.files').setup() local add_marks = function() MiniFiles.set_bookmark('c', vim.fn.stdpath('config'), { desc = 'Config' }) MiniFiles.set_bookmark('w', vim.fn.getcwd, { desc = 'Working directory' }) end Config.autocmd('User', 'MiniFilesExplorerOpen', add_marks, 'Add default marks') end) Config.later(function() -- Fuzzy picker. require('mini.pick').setup() -- Square bracket navigation. require('mini.bracketed').setup() end) -- Completion ================================================================== Config.now_if_args(function() -- Autocompletion and signature help. require('mini.completion').setup({ lsp_completion = { source_func = 'omnifunc', auto_setup = false, process_items = function(items, base) return MiniCompletion.default_process_items(items, base, { kind_priority = { Text = -1 } }) end, }, }) -- Set 'omnifunc' for LSP completion only when needed. local on_attach = function(ev) vim.bo[ev.buf].omnifunc = 'v:lua.MiniCompletion.completefunc_lsp' end Config.autocmd('LspAttach', nil, on_attach, "Set 'omnifunc'") -- Advertise to servers that Neovim supports certain set of completion features. vim.lsp.config('*', { capabilities = MiniCompletion.get_lsp_capabilities() }) end) -- Workspace & Utilities ======================================================= Config.now(function() -- Session management. require('mini.sessions').setup() end) Config.now_if_args(function() -- Miscellaneous utility functions. require('mini.misc').setup() MiniMisc.setup_auto_root() MiniMisc.setup_restore_cursor() end) Config.later(function() -- Extra functionality (pickers, clues). require('mini.extra').setup() end)