Refactor lazy loading: unify treesitter/LSP deferral via lazy.on_event

- Move VimEnter autocmd from init.lua to pack.lua using lazy.on_event
- Convert treesitter.lua to modular M.setup() pattern
- Simplify lsp.lua: remove redundant comment, inline diagnostic config
- Reorganize pack.lua: group finders, add fugitive keymaps, adjust header indent

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
xfy 2026-05-28 15:07:01 +08:00
parent e0441656b4
commit 2c524fc30d
4 changed files with 61 additions and 73 deletions

View File

@ -40,12 +40,3 @@ require("pack")
vim.g.moonflyTransparent = true
vim.cmd("colorscheme catppuccin-mocha")
-- 延迟加载 heavy 模块,避免阻塞启动
vim.api.nvim_create_autocmd("VimEnter", {
once = true,
callback = function()
require("treesitter")
require("lsp")
end,
})

View File

@ -44,7 +44,6 @@ lazy.on_event("conform", "BufWritePre", "*", function()
end)
-- mason + LSP 配置
-- 由 init.lua 在 VimEnter 时 require此处直接执行
vim.cmd.packadd("nvim-lspconfig")
require("mason").setup()
@ -124,9 +123,4 @@ vim.keymap.set("n", "[e", diagnostic_goto(false, "ERROR"), { desc = "Prev Error"
vim.keymap.set("n", "]w", diagnostic_goto(true, "WARN"), { desc = "Next Warning" })
vim.keymap.set("n", "[w", diagnostic_goto(false, "WARN"), { desc = "Prev Warning" })
vim.api.nvim_create_autocmd("VimEnter", {
once = true,
callback = function()
vim.diagnostic.config({ virtual_text = true })
end,
})

View File

@ -123,42 +123,44 @@ vim.keymap.set("n", ":", function()
return ":"
end, { expr = true, noremap = true })
-- mini.surround - BufReadPost
lazy.on_event("surround", "BufReadPost", "*", function()
require("mini.surround").setup()
end)
vim.keymap.set("n", "<leader>ds", function()
vim.diagnostic.setloclist()
end, { desc = "LSP diagnostic loclist" })
-- mini.pick + mini.extra - 按键触发
-- finders
lazy.on_keys("pick", "<leader>ff", "n", pick.load_pick, function()
require("mini.pick").builtin.files()
end, { desc = "Mini File Picker" })
lazy.on_keys("pick", "<leader>fw", "n", pick.load_pick, function()
require("mini.pick").builtin.grep_live()
end, { desc = "Live grep in project" })
vim.keymap.set("n", "<leader>ds", function() vim.diagnostic.setloclist() end, { desc = "LSP diagnostic loclist" })
lazy.on_keys("pick", "<leader>sk", "n", pick.load_pick, function()
require("mini.extra").pickers.keymaps()
end, { desc = "Search keymaps" })
lazy.on_keys("pick", "<leader>fa", "n", pick.load_pick, function()
require("mini.pick").builtin.cli({ command = { "rg", "--files", "--hidden", "--no-ignore", "--color=never" } })
end, { desc = "Find all files (including hidden/ignored)" })
lazy.on_keys("pick", "<leader>fh", "n", pick.load_pick, function()
require("mini.pick").builtin.help()
end, { desc = "Search help tags" })
lazy.on_keys("pick", "<leader>fo", "n", pick.load_pick, function()
require("mini.extra").pickers.oldfiles()
end, { desc = "Search oldfiles" })
lazy.on_keys("pick", "<leader>fz", "n", pick.load_pick, function()
require("mini.extra").pickers.buf_lines({ scope = "current" })
end, { desc = "Search in current buffer" })
-- vim-fugitive - 按键触发
local function load_fugitive()
vim.cmd.packadd("vim-fugitive")
end
lazy.on_keys("fugitive", "<leader>gg", "n", load_fugitive, function()
vim.cmd("tabnew | Git | only")
end, { desc = "Fugitive Full Page New Tab" })
lazy.on_keys("fugitive", "<leader>gd", "n", load_fugitive, function()
vim.cmd("Gvdiffsplit")
end, { desc = "Git diff split" })
-- mini.completion - InsertEnter
lazy.on_event("completion", "InsertEnter", "*", function()
require("mini.completion").setup({
@ -194,15 +196,15 @@ lazy.on_event("diff", "BufReadPost", "*", function()
})
end)
-- vim-fugitive - 按键触发
local function load_fugitive()
vim.cmd.packadd("vim-fugitive")
end
-- mini.surround - BufReadPost
lazy.on_event("surround", "BufReadPost", "*", function()
require("mini.surround").setup()
end)
lazy.on_keys("fugitive", "<leader>gg", "n", load_fugitive, function()
vim.cmd("tabnew | Git | only")
end, { desc = "Fugitive Full Page New Tab" })
lazy.on_keys("fugitive", "<leader>gd", "n", load_fugitive, function()
vim.cmd("Gvdiffsplit")
end, { desc = "Git diff split" })
-- 延迟加载 heavy 模块
lazy.on_event("treesitter", "VimEnter", "*", function()
require("treesitter").setup()
end)
lazy.on_event("lsp", "VimEnter", "*", function()
require("lsp")
end)

View File

@ -1,3 +1,5 @@
local M = {}
local ensure_installed = {
"lua",
"vim",
@ -24,9 +26,7 @@ local ensure_installed = {
"make",
}
vim.api.nvim_create_autocmd("VimEnter", {
once = true,
callback = function()
M.setup = function()
vim.cmd.packadd("nvim-treesitter")
local treesitter = require("nvim-treesitter")
@ -54,5 +54,6 @@ vim.api.nvim_create_autocmd("VimEnter", {
pcall(vim.treesitter.start, buf, lang)
end,
})
end,
})
end
return M