Ensure config.plugins are restored on new config

When a user's or project's module configuration file is changed we
make sure that the config.plugins fields are all restored so that
all plugins already loaded can continue to work.
This commit is contained in:
Francesco Abbate 2022-01-10 09:54:47 +01:00
parent 656a89c494
commit 4cdd42de1a
1 changed files with 10 additions and 3 deletions

View File

@ -81,17 +81,24 @@ end
local function reload_customizations() local function reload_customizations()
core.reload_module("core.style") -- The logic is:
-- - the core.style and config modules are reloaded with the purpose of applying
-- the new user's and project's module configs
-- - inside the core.config the existing fields in config.plugins are preserved
-- because they are reserved to plugins configuration and plugins are already
-- loaded.
-- - plugins are not reloaded or unloaded
local plugins_save = {} local plugins_save = {}
for k, v in pairs(config.plugins) do for k, v in pairs(config.plugins) do
plugins_save[k] = v plugins_save[k] = v
end end
core.reload_module("core.style")
core.reload_module("core.config") core.reload_module("core.config")
core.load_user_directory()
core.load_project_module()
for k, v in pairs(plugins_save) do for k, v in pairs(plugins_save) do
config.plugins[k] = v config.plugins[k] = v
end end
core.load_user_directory()
core.load_project_module()
end end