diff --git a/lua/lazy/core/cache.lua b/lua/lazy/core/cache.lua index 12515ec..8a02711 100644 --- a/lua/lazy/core/cache.lua +++ b/lua/lazy/core/cache.lua @@ -230,6 +230,14 @@ function Cache.find(modname, opts) modname = modname:gsub("/", ".") local basename = modname:gsub("%.", "/") local idx = modname:find(".", 1, true) + + -- HACK: some plugins try to load invalid relative paths (see #543) + if idx == 1 then + modname = modname:gsub("^%.+", "") + basename = modname:gsub("%.", "/") + idx = modname:find(".", 1, true) + end + local topmod = idx and modname:sub(1, idx - 1) or modname -- OPTIM: search for a directory first when topmod == modname