36 lines
1.4 KiB
Lua
36 lines
1.4 KiB
Lua
-- Fast and feature-rich surround actions. For text that includes
|
|
-- surrounding characters like brackets or quotes, this allows you
|
|
-- to select the text inside, change or modify the surrounding characters,
|
|
-- and more.
|
|
return {
|
|
"echasnovski/mini.surround",
|
|
keys = function(_, keys)
|
|
-- Populate the keys based on the user's options
|
|
local opts = LazyVim.opts("mini.surround")
|
|
local mappings = {
|
|
{ opts.mappings.add, desc = "Add Surrounding", mode = { "n", "v" } },
|
|
{ opts.mappings.delete, desc = "Delete Surrounding" },
|
|
{ opts.mappings.find, desc = "Find Right Surrounding" },
|
|
{ opts.mappings.find_left, desc = "Find Left Surrounding" },
|
|
{ opts.mappings.highlight, desc = "Highlight Surrounding" },
|
|
{ opts.mappings.replace, desc = "Replace Surrounding" },
|
|
{ opts.mappings.update_n_lines, desc = "Update `MiniSurround.config.n_lines`" },
|
|
}
|
|
mappings = vim.tbl_filter(function(m)
|
|
return m[1] and #m[1] > 0
|
|
end, mappings)
|
|
return vim.list_extend(mappings, keys)
|
|
end,
|
|
opts = {
|
|
mappings = {
|
|
add = "gsa", -- Add surrounding in Normal and Visual modes
|
|
delete = "gsd", -- Delete surrounding
|
|
find = "gsf", -- Find surrounding (to the right)
|
|
find_left = "gsF", -- Find surrounding (to the left)
|
|
highlight = "gsh", -- Highlight surrounding
|
|
replace = "gsr", -- Replace surrounding
|
|
update_n_lines = "gsn", -- Update `n_lines`
|
|
},
|
|
},
|
|
}
|