123 lines
3.8 KiB
Lua
123 lines
3.8 KiB
Lua
-- 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>' }, -- Leader triggers
|
|
{ mode = 'n', keys = '\\' }, -- mini.basics
|
|
{ mode = { 'n', 'x' }, keys = '[' }, -- mini.bracketed
|
|
{ mode = { 'n', 'x' }, keys = ']' },
|
|
{ mode = 'i', keys = '<C-x>' }, -- 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 = '<C-r>' },
|
|
{ mode = 'n', keys = '<C-w>' }, -- 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)
|