commit 14003bd1c56322b1095e3cda44fdd78aec54ff27
parent 565cfa04eb00125eae2ade200591d435f5a86ad0
Author: Evgeni Chasnovski <evgeni.chasnovski@gmail.com>
Date: Thu, 8 Jan 2026 11:38:45 +0200
fix(pack): ensure plugin directory is created during first usage attempt
Problem: Plugin directory ('.../pack/core/opt') may be missing while
lockfile is present. Like after discarded attempt to install plugins.
Solution: Ensure plugin directory is created on first `vim.pack` use.
Diffstat:
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/runtime/lua/vim/pack.lua b/runtime/lua/vim/pack.lua
@@ -838,9 +838,13 @@ local function lock_sync(confirm)
end
-- Compute installed plugins
+ local plug_dir = get_plug_dir()
+ if vim.uv.fs_stat(plug_dir) == nil then
+ vim.fn.mkdir(plug_dir, 'p')
+ end
+
-- NOTE: The directory traversal is done on every startup, but it is very fast.
-- Also, single `vim.fs.dir()` scales better than on demand `uv.fs_stat()` checks.
- local plug_dir = get_plug_dir()
local installed = {} --- @type table<string,string>
for name, fs_type in vim.fs.dir(plug_dir) do
installed[name] = fs_type