mirror of
https://github.com/iofq/nvim.nix.git
synced 2026-01-23 08:55:16 -06:00
120 lines
3.6 KiB
Lua
120 lines
3.6 KiB
Lua
return {
|
|
{
|
|
'nvim-mini/mini.nvim',
|
|
lazy = false,
|
|
keys = {
|
|
{
|
|
'<leader>gp',
|
|
function()
|
|
MiniDiff.toggle_overlay(0)
|
|
end,
|
|
noremap = true,
|
|
desc = 'git diff overlay',
|
|
},
|
|
{
|
|
'<leader>go',
|
|
function()
|
|
return MiniGit.show_at_cursor()
|
|
end,
|
|
noremap = true,
|
|
desc = 'git show at cursor',
|
|
},
|
|
{
|
|
'<leader>gb',
|
|
'<Cmd>Git blame -- %<CR>',
|
|
desc = 'git blame',
|
|
},
|
|
},
|
|
config = function()
|
|
require('mini.basics').setup { mappings = { windows = true } }
|
|
require('mini.icons').setup()
|
|
vim.schedule(function()
|
|
local ai = require('mini.ai')
|
|
ai.setup {
|
|
n_lines = 300,
|
|
custom_textobjects = {
|
|
i = require('mini.extra').gen_ai_spec.indent(),
|
|
a = ai.gen_spec.treesitter { a = '@parameter.outer', i = '@parameter.inner' },
|
|
f = ai.gen_spec.treesitter { a = '@function.outer', i = '@function.inner' },
|
|
},
|
|
}
|
|
require('mini.align').setup()
|
|
require('mini.pairs').setup()
|
|
require('mini.git').setup()
|
|
require('mini.surround').setup()
|
|
require('mini.splitjoin').setup { detect = { separator = '[,;\n]' } }
|
|
|
|
local jump = require('mini.jump2d')
|
|
jump.setup {
|
|
view = { n_steps_ahead = 1, dim = true },
|
|
spotter = jump.gen_spotter.vimpattern(),
|
|
}
|
|
|
|
local diff = require('mini.diff')
|
|
diff.setup {
|
|
source = {
|
|
require('plugins.lib.minidiff_jj').gen_source(),
|
|
diff.gen_source.git(),
|
|
},
|
|
}
|
|
local miniclue = require('mini.clue')
|
|
miniclue.setup {
|
|
triggers = {
|
|
{ mode = 'n', keys = '<Leader>' },
|
|
{ mode = 'n', keys = 'g' },
|
|
{ mode = 'n', keys = "'" },
|
|
{ mode = 'n', keys = '`' },
|
|
{ mode = 'n', keys = '"' },
|
|
{ mode = 'n', keys = '<C-w>' },
|
|
{ mode = 'n', keys = 'z' },
|
|
{ mode = 'n', keys = ']' },
|
|
{ mode = 'n', keys = '[' },
|
|
{ mode = 'n', keys = '\\' },
|
|
},
|
|
window = {
|
|
config = { width = 'auto' },
|
|
},
|
|
clues = {
|
|
miniclue.gen_clues.g(),
|
|
miniclue.gen_clues.marks(),
|
|
miniclue.gen_clues.registers({show_contents = true}),
|
|
miniclue.gen_clues.windows(),
|
|
miniclue.gen_clues.z(),
|
|
},
|
|
}
|
|
local files = require('mini.files')
|
|
files.setup {
|
|
mappings = {
|
|
go_in_plus = '<CR>',
|
|
},
|
|
windows = {
|
|
preview = true,
|
|
width_preview = 50,
|
|
},
|
|
}
|
|
vim.keymap.set('n', '<leader>nc', function()
|
|
files.open(vim.api.nvim_buf_get_name(0), false) -- open current buffer's dir
|
|
files.reveal_cwd()
|
|
end, { desc = 'minifiles open' })
|
|
vim.api.nvim_create_autocmd('User', {
|
|
pattern = 'MiniFilesBufferCreate',
|
|
callback = function(args)
|
|
vim.keymap.set('n', '`', function()
|
|
local _, cur_entry_path = pcall(MiniFiles.get_fs_entry().path)
|
|
local cur_directory = vim.fs.dirname(cur_entry_path)
|
|
if cur_directory ~= '' then
|
|
vim.fn.chdir(cur_directory)
|
|
end
|
|
end, { buffer = args.data.buf_id })
|
|
end,
|
|
})
|
|
vim.api.nvim_create_autocmd('User', {
|
|
pattern = 'MiniFilesActionRename',
|
|
callback = function(event)
|
|
Snacks.rename.on_rename_file(event.data.from, event.data.to)
|
|
end,
|
|
})
|
|
end)
|
|
end,
|
|
},
|
|
}
|