1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 11:50:05 +08:00
SpaceVim/bundle/plenary.nvim/lua/plenary/reload.lua
2022-05-16 22:20:10 +08:00

37 lines
845 B
Lua

local reload = {}
reload.reload_module = function(module_name, starts_with_only)
-- Default to starts with only
if starts_with_only == nil then
starts_with_only = true
end
-- TODO: Might need to handle cpath / compiled lua packages? Not sure.
local matcher
if not starts_with_only then
matcher = function(pack)
return string.find(pack, module_name, 1, true)
end
else
local module_name_pattern = vim.pesc(module_name)
matcher = function(pack)
return string.find(pack, "^" .. module_name_pattern)
end
end
-- Handle impatient.nvim automatically.
local luacache = (_G.__luacache or {}).cache
for pack, _ in pairs(package.loaded) do
if matcher(pack) then
package.loaded[pack] = nil
if luacache then
luacache[pack] = nil
end
end
end
end
return reload