fix(lua): remove vim.loader.disable() #31344

Problem:
`vim.loader.disable` does not conform to `:help dev-name-common` and
`:help dev-patterns`.

Solution:
- Add `enable` parameter to `vim.loader.enable`
- Remove `vim.loader.disable`
- Note the change in `:help news-breaking-dev` (HEAD changes).
  - This is not a breaking change (except to "HEAD") because
    `vim.loader` is marked "experimental".

previous: 26765e8461
This commit is contained in:
Justin M. Keyes
2024-11-26 06:15:50 -08:00
committed by GitHub
parent 66bb1e577c
commit 3d707e6f14
4 changed files with 63 additions and 46 deletions

View File

@@ -399,50 +399,51 @@ function M.reset(path)
end
end
--- Enables the experimental Lua module loader:
--- * overrides loadfile
--- Enables or disables the experimental Lua module loader:
---
--- Enable (`enable=true`):
--- * overrides |loadfile()|
--- * adds the Lua loader using the byte-compilation cache
--- * adds the libs loader
--- * removes the default Nvim loader
---
--- @since 0
function M.enable()
if M.enabled then
return
end
M.enabled = true
vim.fn.mkdir(vim.fn.fnamemodify(M.path, ':p'), 'p')
_G.loadfile = loadfile_cached
-- add Lua loader
table.insert(loaders, 2, loader_cached)
-- add libs loader
table.insert(loaders, 3, loader_lib_cached)
-- remove Nvim loader
for l, loader in ipairs(loaders) do
if loader == vim._load_package then
table.remove(loaders, l)
break
end
end
end
--- Disables the experimental Lua module loader:
--- Disable (`enable=false`):
--- * removes the loaders
--- * adds the default Nvim loader
---
--- @since 0
function M.disable()
if not M.enabled then
---
--- @param enable? (boolean) true/nil to enable, false to disable
function M.enable(enable)
enable = enable == nil and true or enable
if enable == M.enabled then
return
end
M.enabled = false
_G.loadfile = _loadfile
for l, loader in ipairs(loaders) do
if loader == loader_cached or loader == loader_lib_cached then
table.remove(loaders, l)
M.enabled = enable
if enable then
vim.fn.mkdir(vim.fn.fnamemodify(M.path, ':p'), 'p')
_G.loadfile = loadfile_cached
-- add Lua loader
table.insert(loaders, 2, loader_cached)
-- add libs loader
table.insert(loaders, 3, loader_lib_cached)
-- remove Nvim loader
for l, loader in ipairs(loaders) do
if loader == vim._load_package then
table.remove(loaders, l)
break
end
end
else
_G.loadfile = _loadfile
for l, loader in ipairs(loaders) do
if loader == loader_cached or loader == loader_lib_cached then
table.remove(loaders, l)
end
end
table.insert(loaders, 2, vim._load_package)
end
table.insert(loaders, 2, vim._load_package)
end
--- Tracks the time spent in a function