neovim refactor
This commit is contained in:
1 parent
b12c211a69
commit
883f9d26c2
25 files changed
+1154
-880
No files matched your search
@@ -0,0 +1,141 @@
|
||||
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",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
Reference in new issue
Block a user