---@type LazySpec return { "echasnovski/mini.surround", version = "*", event = "VeryLazy", enabled = true, opts = { n_lines = 100, mappings = { add = "sa", -- Add surrounding in Normal and Visual modes delete = "sd", -- Delete surrounding find = "sf", -- Find surrounding (to the right) find_left = "sF", -- Find surrounding (to the left) highlight = "", -- Highlight surrounding replace = "sr", -- Replace surrounding update_n_lines = "sn", -- Update `n_lines` suffix_last = "l", -- Suffix to search with "prev" method suffix_next = "n", -- Suffix to search with "next" method }, custom_surroundings = { t = { input = { "<(%w-)%f[^<%w][^<>]->.-", "^<.->().*()$" }, -- from https://github.com/echasnovski/mini.surround/blob/14f418209ecf52d1a8de9d091eb6bd63c31a4e01/lua/mini/surround.lua#LL1048C13-L1048C72 output = function() local emmet = require("mini.surround").user_input("Emmet") if not emmet then return nil end return require("plugin.mini_surround.emmet").totag(emmet) end, }, }, }, config = function(_, opts) -- use gz mappings instead of s to prevent conflict with leap require("mini.surround").setup(opts) end, }