diff options
Diffstat (limited to 'server')
-rw-r--r-- | server/src/config.lua | 27 | ||||
-rw-r--r-- | server/test/build_package.lua | 4 |
2 files changed, 24 insertions, 7 deletions
diff --git a/server/src/config.lua b/server/src/config.lua index 176e3ce9..7ee2c959 100644 --- a/server/src/config.lua +++ b/server/src/config.lua @@ -79,6 +79,19 @@ local function Hash(keyChecker, valueChecker) end end +local function Or(...) + local checkers = {...} + return function (obj) + for _, checker in ipairs(checkers) do + local suc, res = checker(obj) + if suc then + return true, res + end + end + return false + end +end + local ConfigTemplate = { runtime = { version = {'Lua 5.3', String}, @@ -98,11 +111,15 @@ local ConfigTemplate = { }, }, workspace = { - ignoreDir = {{}, Str2Hash ';'}, - ignoreSubmodules= {true, Boolean}, - useGitIgnore = {true, Boolean}, - maxPreload = {300, Integer}, - preloadFileSize = {100, Integer}, + ignoreDir = {{}, Str2Hash ';'}, + ignoreSubmodules= {true, Boolean}, + useGitIgnore = {true, Boolean}, + maxPreload = {300, Integer}, + preloadFileSize = {100, Integer}, + library = {{}, Hash( + String, + Or(Boolean, Array(String)) + )} } } diff --git a/server/test/build_package.lua b/server/test/build_package.lua index 052ac006..0b5a59bc 100644 --- a/server/test/build_package.lua +++ b/server/test/build_package.lua @@ -179,7 +179,7 @@ io.save(ROOT:parent_path() / 'package.nls.json', json.encode { ["config.workspace.preloadFileSize"] = "Skip files larger than this value (KB) when preloading.", ["config.workspace.library"] = [[ 加载的外部函数库。 -下面这个例子表示加载`C:/lua`中的所有文件,以及加载`../lib`中的`.txt`与`.lua`文件,但不加载`../lib/temp`中的`.txt`文件。加载的文件最终会受设置中文件关联的影响,因此需要设置`.txt`文件关联`lua`后`*.txt`才有意义。 +下面这个例子表示加载`C:/lua`中的所有文件,以及加载`../lib`中的`.txt`与`.lua`文件,但不加载`../lib/temp`中的`.txt`文件。加载的文件最终会受文件关联的影响,因此需要设置`.txt`文件关联`lua`后`*.txt`才有意义。 ]] .. libraryExample, }) @@ -196,6 +196,6 @@ io.save(ROOT:parent_path() / 'package.nls.zh-cn.json', json.encode { ["config.workspace.preloadFileSize"] = "预加载时跳过大小大于该值(KB)的文件。", ["config.workspace.library"] = [[ 加载的外部函数库。 -下面这个例子表示加载`C:/lua`中的所有文件,以及加载`../lib`中的`.txt`与`.lua`文件,但不加载`../lib/temp`中的`.txt`文件。加载的文件最终会受设置中文件关联的影响,因此需要设置`.txt`文件关联`lua`后`*.txt`才有意义。 +下面这个例子表示加载`C:/lua`中的所有文件,以及加载`../lib`中的`.txt`与`.lua`文件,但不加载`../lib/temp`中的`.txt`文件。加载的文件最终会受文件关联的影响,因此需要设置`.txt`文件关联`lua`后`*.txt`才有意义。 ]] .. libraryExample, }) |