summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/src/config.lua4
-rw-r--r--server/src/service.lua6
2 files changed, 9 insertions, 1 deletions
diff --git a/server/src/config.lua b/server/src/config.lua
index 5272a964..2c04858f 100644
--- a/server/src/config.lua
+++ b/server/src/config.lua
@@ -133,6 +133,8 @@ local function setConfig(self, config, other)
local suc, v = info[2](v)
if suc then
Config[c][k] = v
+ else
+ Config[c][k] = info[1]
end
end
end
@@ -141,6 +143,8 @@ local function setConfig(self, config, other)
local suc, v = info[2](v)
if suc then
Other[k] = v
+ else
+ Other[k] = info[1]
end
end
log.debug('Config update: ', table.dump(Config), table.dump(Other))
diff --git a/server/src/service.lua b/server/src/service.lua
index b7290329..0a1b27aa 100644
--- a/server/src/service.lua
+++ b/server/src/service.lua
@@ -674,8 +674,10 @@ end
function mt:onUpdateConfig(updated, other)
local oldConfig = table.deepCopy(config.config)
+ local oldOther = table.deepCopy(config.other)
config:setConfig(updated, other)
local newConfig = config.config
+ local newOther = config.other
if not table.equal(oldConfig.runtime, newConfig.runtime) then
local library = require 'core.library'
library.reload()
@@ -685,7 +687,9 @@ function mt:onUpdateConfig(updated, other)
log.debug('reDiagnostic')
self:reDiagnostic()
end
- if not table.equal(oldConfig.workspace, newConfig.workspace) then
+ if not table.equal(oldConfig.workspace, newConfig.workspace)
+ or not table.equal(oldOther.associations, newOther.associations)
+ then
self:clearAllFiles()
if self.workspace then
self.workspace:scanFiles()