local mini = { 'echasnovski/mini.nvim', event = 'VeryLazy', } local specs = { mini, 'JoosepAlviste/nvim-ts-context-commentstring' } -- function mini.surround() -- require('mini.surround').setup { -- mappings = { -- add = 'gza', -- Add surrounding in Normal and Visual modes -- delete = 'gzd', -- Delete surrounding -- find = 'gzf', -- Find surrounding (to the right) -- find_left = 'gzF', -- Find surrounding (to the left) -- highlight = 'gzh', -- Highlight surrounding -- replace = 'gzr', -- Replace surrounding -- update_n_lines = 'gzn', -- Update `n_lines` -- }, -- } -- end -- -- function mini.jump() -- require('mini.jump').setup {} -- end -- -- function mini.pairs() -- require('mini.pairs').setup {} -- end function mini.comment() require('mini.comment').setup { hooks = { pre = function() require('ts_context_commentstring.internal').update_commentstring {} end, }, } end -- function mini.ai() -- local ai = require 'mini.ai' -- require('mini.ai').setup { -- n_lines = 500, -- -- search_method = "cover_or_next", -- custom_textobjects = { -- o = ai.gen_spec.treesitter({ -- a = { '@block.outer', '@conditional.outer', '@loop.outer' }, -- i = { '@block.inner', '@conditional.inner', '@loop.inner' }, -- }, {}), -- f = ai.gen_spec.treesitter({ a = '@function.outer', i = '@function.inner' }, {}), -- c = ai.gen_spec.treesitter({ a = '@class.outer', i = '@class.inner' }, {}), -- }, -- } -- -- local map = function(text_obj, desc) -- for _, side in ipairs { 'left', 'right' } do -- for dir, d in pairs { prev = '[', next = ']' } do -- local lhs = d .. (side == 'right' and text_obj:upper() or text_obj:lower()) -- for _, mode in ipairs { 'n', 'x', 'o' } do -- vim.keymap.set(mode, lhs, function() -- ai.move_cursor(side, 'a', text_obj, { search_method = dir }) -- end, { -- desc = dir .. ' ' .. desc, -- }) -- end -- end -- end -- end -- -- map('f', 'function') -- map('c', 'class') -- map('o', 'block') -- end function mini.config() -- M.jump() -- mini.surround() -- mini.ai() -- mini.pairs() mini.comment() -- mini.jump() -- mini.animate() end -- function mini.animate() -- local mouse_scrolled = false -- for _, scroll in ipairs { 'Up', 'Down' } do -- local key = '' -- vim.keymap.set('', key, function() -- mouse_scrolled = true -- return key -- end, { remap = true, expr = true }) -- end -- -- local animate = require 'mini.animate' -- vim.go.winwidth = 20 -- vim.go.winminwidth = 5 -- -- animate.setup { -- resize = { -- timing = animate.gen_timing.linear { duration = 50, unit = 'total' }, -- }, -- scroll = { -- timing = animate.gen_timing.linear { duration = 100, unit = 'total' }, -- subscroll = animate.gen_subscroll.equal { -- predicate = function(total_scroll) -- if mouse_scrolled then -- mouse_scrolled = false -- return false -- end -- return total_scroll > 1 -- end, -- }, -- }, -- } -- end function mini.init() vim.keymap.set('n', 'bd', function() require('mini.bufremove').delete(0, false) end) vim.keymap.set('n', 'bD', function() require('mini.bufremove').delete(0, true) end) end return specs