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.g.moonflyTransparent = true
|
||||||
vim.cmd("colorscheme catppuccin-mocha")
|
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)
|
end)
|
||||||
|
|
||||||
-- mason + LSP 配置
|
-- mason + LSP 配置
|
||||||
-- 由 init.lua 在 VimEnter 时 require,此处直接执行
|
|
||||||
vim.cmd.packadd("nvim-lspconfig")
|
vim.cmd.packadd("nvim-lspconfig")
|
||||||
require("mason").setup()
|
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(true, "WARN"), { desc = "Next Warning" })
|
||||||
vim.keymap.set("n", "[w", diagnostic_goto(false, "WARN"), { desc = "Prev 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 })
|
vim.diagnostic.config({ virtual_text = true })
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|||||||
50
lua/pack.lua
50
lua/pack.lua
@ -123,42 +123,44 @@ vim.keymap.set("n", ":", function()
|
|||||||
return ":"
|
return ":"
|
||||||
end, { expr = true, noremap = true })
|
end, { expr = true, noremap = true })
|
||||||
|
|
||||||
-- mini.surround - BufReadPost
|
vim.keymap.set("n", "<leader>ds", function()
|
||||||
lazy.on_event("surround", "BufReadPost", "*", function()
|
vim.diagnostic.setloclist()
|
||||||
require("mini.surround").setup()
|
end, { desc = "LSP diagnostic loclist" })
|
||||||
end)
|
|
||||||
|
|
||||||
-- mini.pick + mini.extra - 按键触发
|
-- finders
|
||||||
lazy.on_keys("pick", "<leader>ff", "n", pick.load_pick, function()
|
lazy.on_keys("pick", "<leader>ff", "n", pick.load_pick, function()
|
||||||
require("mini.pick").builtin.files()
|
require("mini.pick").builtin.files()
|
||||||
end, { desc = "Mini File Picker" })
|
end, { desc = "Mini File Picker" })
|
||||||
|
|
||||||
lazy.on_keys("pick", "<leader>fw", "n", pick.load_pick, function()
|
lazy.on_keys("pick", "<leader>fw", "n", pick.load_pick, function()
|
||||||
require("mini.pick").builtin.grep_live()
|
require("mini.pick").builtin.grep_live()
|
||||||
end, { desc = "Live grep in project" })
|
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()
|
lazy.on_keys("pick", "<leader>sk", "n", pick.load_pick, function()
|
||||||
require("mini.extra").pickers.keymaps()
|
require("mini.extra").pickers.keymaps()
|
||||||
end, { desc = "Search keymaps" })
|
end, { desc = "Search keymaps" })
|
||||||
|
|
||||||
lazy.on_keys("pick", "<leader>fa", "n", pick.load_pick, function()
|
lazy.on_keys("pick", "<leader>fa", "n", pick.load_pick, function()
|
||||||
require("mini.pick").builtin.cli({ command = { "rg", "--files", "--hidden", "--no-ignore", "--color=never" } })
|
require("mini.pick").builtin.cli({ command = { "rg", "--files", "--hidden", "--no-ignore", "--color=never" } })
|
||||||
end, { desc = "Find all files (including hidden/ignored)" })
|
end, { desc = "Find all files (including hidden/ignored)" })
|
||||||
|
|
||||||
lazy.on_keys("pick", "<leader>fh", "n", pick.load_pick, function()
|
lazy.on_keys("pick", "<leader>fh", "n", pick.load_pick, function()
|
||||||
require("mini.pick").builtin.help()
|
require("mini.pick").builtin.help()
|
||||||
end, { desc = "Search help tags" })
|
end, { desc = "Search help tags" })
|
||||||
|
|
||||||
lazy.on_keys("pick", "<leader>fo", "n", pick.load_pick, function()
|
lazy.on_keys("pick", "<leader>fo", "n", pick.load_pick, function()
|
||||||
require("mini.extra").pickers.oldfiles()
|
require("mini.extra").pickers.oldfiles()
|
||||||
end, { desc = "Search oldfiles" })
|
end, { desc = "Search oldfiles" })
|
||||||
|
|
||||||
lazy.on_keys("pick", "<leader>fz", "n", pick.load_pick, function()
|
lazy.on_keys("pick", "<leader>fz", "n", pick.load_pick, function()
|
||||||
require("mini.extra").pickers.buf_lines({ scope = "current" })
|
require("mini.extra").pickers.buf_lines({ scope = "current" })
|
||||||
end, { desc = "Search in current buffer" })
|
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
|
-- mini.completion - InsertEnter
|
||||||
lazy.on_event("completion", "InsertEnter", "*", function()
|
lazy.on_event("completion", "InsertEnter", "*", function()
|
||||||
require("mini.completion").setup({
|
require("mini.completion").setup({
|
||||||
@ -194,15 +196,15 @@ lazy.on_event("diff", "BufReadPost", "*", function()
|
|||||||
})
|
})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- vim-fugitive - 按键触发
|
-- mini.surround - BufReadPost
|
||||||
local function load_fugitive()
|
lazy.on_event("surround", "BufReadPost", "*", function()
|
||||||
vim.cmd.packadd("vim-fugitive")
|
require("mini.surround").setup()
|
||||||
end
|
end)
|
||||||
|
|
||||||
lazy.on_keys("fugitive", "<leader>gg", "n", load_fugitive, function()
|
-- 延迟加载 heavy 模块
|
||||||
vim.cmd("tabnew | Git | only")
|
lazy.on_event("treesitter", "VimEnter", "*", function()
|
||||||
end, { desc = "Fugitive Full Page New Tab" })
|
require("treesitter").setup()
|
||||||
|
end)
|
||||||
lazy.on_keys("fugitive", "<leader>gd", "n", load_fugitive, function()
|
lazy.on_event("lsp", "VimEnter", "*", function()
|
||||||
vim.cmd("Gvdiffsplit")
|
require("lsp")
|
||||||
end, { desc = "Git diff split" })
|
end)
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
local ensure_installed = {
|
local ensure_installed = {
|
||||||
"lua",
|
"lua",
|
||||||
"vim",
|
"vim",
|
||||||
@ -24,9 +26,7 @@ local ensure_installed = {
|
|||||||
"make",
|
"make",
|
||||||
}
|
}
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd("VimEnter", {
|
M.setup = function()
|
||||||
once = true,
|
|
||||||
callback = function()
|
|
||||||
vim.cmd.packadd("nvim-treesitter")
|
vim.cmd.packadd("nvim-treesitter")
|
||||||
local treesitter = require("nvim-treesitter")
|
local treesitter = require("nvim-treesitter")
|
||||||
|
|
||||||
@ -54,5 +54,6 @@ vim.api.nvim_create_autocmd("VimEnter", {
|
|||||||
pcall(vim.treesitter.start, buf, lang)
|
pcall(vim.treesitter.start, buf, lang)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
end,
|
end
|
||||||
})
|
|
||||||
|
return M
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user