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:
parent
e0441656b4
commit
2c524fc30d
9
init.lua
9
init.lua
@ -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,
|
||||
})
|
||||
|
||||
@ -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,
|
||||
})
|
||||
vim.diagnostic.config({ virtual_text = true })
|
||||
|
||||
62
lua/pack.lua
62
lua/pack.lua
@ -29,12 +29,12 @@ end
|
||||
|
||||
local header_lines = {
|
||||
"",
|
||||
" ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗",
|
||||
" ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║",
|
||||
" ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║",
|
||||
" ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║",
|
||||
" ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║",
|
||||
" ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝",
|
||||
"███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗",
|
||||
"████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║",
|
||||
"██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║",
|
||||
"██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║",
|
||||
"██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║",
|
||||
"╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝",
|
||||
"",
|
||||
}
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user