diff --git a/lua/lazyvim/plugins/coding.lua b/lua/lazyvim/plugins/coding.lua index ffd743b3..e4ce97d2 100644 --- a/lua/lazyvim/plugins/coding.lua +++ b/lua/lazyvim/plugins/coding.lua @@ -171,9 +171,6 @@ return { "echasnovski/mini.ai", event = "VeryLazy", opts = function() - LazyVim.on_load("which-key.nvim", function() - vim.schedule(LazyVim.mini.ai_whichkey) - end) local ai = require("mini.ai") return { n_lines = 500, @@ -197,6 +194,14 @@ return { }, } end, + config = function(_, opts) + require("mini.ai").setup(opts) + LazyVim.on_load("which-key.nvim", function() + vim.schedule(function() + LazyVim.mini.ai_whichkey(opts) + end) + end) + end, }, { diff --git a/lua/lazyvim/util/mini.lua b/lua/lazyvim/util/mini.lua index d536592c..0fb4ecad 100644 --- a/lua/lazyvim/util/mini.lua +++ b/lua/lazyvim/util/mini.lua @@ -60,7 +60,8 @@ function M.ai_buffer(ai_type) end -- register all text objects with which-key -function M.ai_whichkey() +---@param opts table +function M.ai_whichkey(opts) local objects = { { " ", desc = "whitespace" }, { '"', desc = '" string' }, @@ -92,22 +93,22 @@ function M.ai_whichkey() } local ret = { mode = { "o", "x" } } - local default_mappings = { + ---@type table + local mappings = vim.tbl_extend("force", {}, { around = "a", inside = "i", - around_next = "an", inside_next = "in", around_last = "al", inside_last = "il", - } - local user_mappings = LazyVim.opts("mini.ai").mappings - local mappings = vim.tbl_extend("force", default_mappings, user_mappings) + goto_left = "g[", + goto_right = "g]", + }, opts.mappings or {}) + mappings.goto_left = nil + mappings.goto_right = nil for name, prefix in pairs(mappings) do - if name:match("next$") or name:match("last$") then - name = name:gsub("^around_", ""):gsub("^inside_", "") - end + name = name:gsub("^around_", ""):gsub("^inside_", "") ret[#ret + 1] = { prefix, group = name } for _, obj in ipairs(objects) do local desc = obj.desc