142 lines
4.3 KiB
Lua
142 lines
4.3 KiB
Lua
require("lz.n").load({
|
|
{
|
|
"mini.nvim",
|
|
event = "VimEnter",
|
|
after = function()
|
|
require("mini.ai").setup({ n_lines = 500 })
|
|
require("mini.surround").setup()
|
|
require("mini.pairs").setup()
|
|
|
|
local icons = require("mini.icons")
|
|
icons.setup()
|
|
icons.mock_nvim_web_devicons()
|
|
end,
|
|
},
|
|
{
|
|
"guess-indent.nvim",
|
|
event = { "BufReadPre", "BufNewFile" },
|
|
after = function()
|
|
require("guess-indent").setup({})
|
|
end,
|
|
},
|
|
{
|
|
"nvim-treesitter",
|
|
event = "FileType",
|
|
after = function()
|
|
require("nvim-treesitter").setup({})
|
|
vim.api.nvim_create_autocmd("FileType", {
|
|
group = vim.api.nvim_create_augroup("lux-treesitter", { clear = true }),
|
|
callback = function(args)
|
|
if vim.bo[args.buf].buftype ~= "" then
|
|
return
|
|
end
|
|
|
|
if pcall(vim.treesitter.start, args.buf) then
|
|
vim.bo[args.buf].indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
|
|
end
|
|
end,
|
|
})
|
|
end,
|
|
},
|
|
{
|
|
"nvim-treesitter-textobjects",
|
|
event = "FileType",
|
|
after = function()
|
|
require("nvim-treesitter-textobjects").setup({
|
|
select = { lookahead = true },
|
|
move = { set_jumps = true },
|
|
})
|
|
|
|
local select = require("nvim-treesitter-textobjects.select")
|
|
local move = require("nvim-treesitter-textobjects.move")
|
|
local objects = {
|
|
{ "if", "@function.inner", "Select inner function" },
|
|
{ "af", "@function.outer", "Select outer function" },
|
|
{ "ic", "@class.inner", "Select inner class" },
|
|
{ "ac", "@class.outer", "Select outer class" },
|
|
{ "ia", "@parameter.inner", "Select inner parameter" },
|
|
{ "aa", "@parameter.outer", "Select outer parameter" },
|
|
{ "ii", "@conditional.inner", "Select inner conditional" },
|
|
{ "ai", "@conditional.outer", "Select outer conditional" },
|
|
{ "il", "@loop.inner", "Select inner loop" },
|
|
{ "al", "@loop.outer", "Select outer loop" },
|
|
{ "ib", "@block.inner", "Select inner block" },
|
|
{ "ab", "@block.outer", "Select outer block" },
|
|
}
|
|
|
|
for _, object in ipairs(objects) do
|
|
vim.keymap.set({ "o", "x" }, object[1], function()
|
|
select.select_textobject(object[2], "textobjects")
|
|
end, { desc = object[3] })
|
|
end
|
|
|
|
local motions = {
|
|
{ "[f", move.goto_previous_start, "@function.outer", "Previous function" },
|
|
{ "]f", move.goto_next_start, "@function.outer", "Next function" },
|
|
{ "[c", move.goto_previous_start, "@class.outer", "Previous class" },
|
|
{ "]c", move.goto_next_start, "@class.outer", "Next class" },
|
|
{ "[a", move.goto_previous_start, "@parameter.inner", "Previous parameter" },
|
|
{ "]a", move.goto_next_start, "@parameter.inner", "Next parameter" },
|
|
}
|
|
|
|
for _, motion in ipairs(motions) do
|
|
vim.keymap.set({ "n", "x", "o" }, motion[1], function()
|
|
motion[2](motion[3], "textobjects")
|
|
end, { desc = motion[4] })
|
|
end
|
|
end,
|
|
},
|
|
{
|
|
"rainbow-delimiters.nvim",
|
|
event = "FileType",
|
|
after = function()
|
|
require("rainbow-delimiters.setup").setup({})
|
|
end,
|
|
},
|
|
{
|
|
"nvim-ts-autotag",
|
|
ft = { "svelte", "astro", "html", "javascriptreact", "typescriptreact" },
|
|
after = function()
|
|
local enabled = { enable_close = true, enable_rename = true }
|
|
require("nvim-ts-autotag").setup({
|
|
opts = { enable_close = false, enable_rename = false },
|
|
per_filetype = {
|
|
svelte = enabled,
|
|
astro = enabled,
|
|
html = enabled,
|
|
javascriptreact = enabled,
|
|
typescriptreact = enabled,
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
{
|
|
"grug-far.nvim",
|
|
cmd = "GrugFar",
|
|
keys = {
|
|
{
|
|
"<leader>cR",
|
|
function()
|
|
require("grug-far").open({
|
|
prefills = {
|
|
search = vim.fn.expand("<cword>"),
|
|
paths = require("project").root(),
|
|
},
|
|
})
|
|
end,
|
|
desc = "Replace across project",
|
|
},
|
|
{
|
|
"<leader>cR",
|
|
function()
|
|
require("grug-far").with_visual_selection({
|
|
prefills = { paths = require("project").root() },
|
|
})
|
|
end,
|
|
mode = "x",
|
|
desc = "Replace selection across project",
|
|
},
|
|
},
|
|
},
|
|
})
|