diff options
| author | Evgeni Chasnovski <evgeni.chasnovski@gmail.com> | 2026-01-08 11:38:45 +0200 |
|---|---|---|
| committer | Evgeni Chasnovski <evgeni.chasnovski@gmail.com> | 2026-01-08 17:41:29 +0200 |
| commit | 14003bd1c56322b1095e3cda44fdd78aec54ff27 (patch) | |
| tree | 5966fddafba35a70569775974bbfdaf66b04823f /runtime/lua/vim/pack.lua | |
| parent | 565cfa04eb00125eae2ade200591d435f5a86ad0 (diff) | |
| download | rneovim-14003bd1c56322b1095e3cda44fdd78aec54ff27.tar.gz rneovim-14003bd1c56322b1095e3cda44fdd78aec54ff27.tar.bz2 rneovim-14003bd1c56322b1095e3cda44fdd78aec54ff27.zip | |
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 (limited to 'runtime/lua/vim/pack.lua')
| -rw-r--r-- | runtime/lua/vim/pack.lua | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/runtime/lua/vim/pack.lua b/runtime/lua/vim/pack.lua index 13a97fa334..e32cf303e5 100644 --- 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 |