From 51302fe9f25166b778676b776630237f6add82f8 Mon Sep 17 00:00:00 2001 From: xfy Date: Fri, 12 Jun 2026 18:03:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(lazy):=20setup=20=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E5=90=8E=E6=89=8D=E6=A0=87=E8=AE=B0=E6=A8=A1=E5=9D=97=E4=B8=BA?= =?UTF-8?q?=E5=B7=B2=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- lua/lazy.lua | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/lua/lazy.lua b/lua/lazy.lua index b8e991f..f13b22c 100644 --- a/lua/lazy.lua +++ b/lua/lazy.lua @@ -28,24 +28,33 @@ M._loaded = {} -- -- 行为: -- 1. 检查 _loaded[name] 是否为真,是则直接返回(幂等) --- 2. 标记为已加载 --- 3. 如果有 fn,执行 fn() 完成插件 setup +-- 2. 如果有 fn,执行 fn() 完成插件 setup +-- 3. 仅在 fn() 成功执行后,标记为已加载 -- -- 使用场景: -- 在按键回调中手动触发加载,或在 on_event 回调中延迟初始化。 M.load = function(name, fn) if M._loaded[name] then - return + return true + end + if fn then + local ok, err = pcall(fn) + if not ok then + vim.notify("[lazy] 加载 " .. name .. " 失败: " .. tostring(err), vim.log.levels.ERROR) + return false + end end M._loaded[name] = true - if fn then - fn() - end + return true end -- 仅标记模块为已加载,不执行 setup(用于直接加载的插件)。 M.track = function(name) + if M._loaded[name] then + return true + end M._loaded[name] = true + return true end -- ---------------------------------------------------------------------------