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.
This commit is contained in:
Evgeni Chasnovski
2026-01-08 11:38:45 +02:00
parent 565cfa04eb
commit 14003bd1c5

View File

@@ -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