diff --git a/changelog.md b/changelog.md
index 6fb01e28261846f4a70f3b1e0ee9e7fdbdcf6526..502b6fbc8963d52d2fb65c76c747eb2489a7825b 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,21 @@
 # changelog
 
+## 3.5.1
+`2022-7-26`
+* `NEW` supports [color](https://github.com/sumneko/lua-language-server/pull/1379)
+* `NEW` setting `Lua.runtime.pluginArgs`
+* `CHG` setting `type.castNumberToInteger` default by `true`
+* `CHG` improve supports for multi-workspace
+* `FIX` [#1354](https://github.com/sumneko/lua-language-server/issues/1354)
+* `FIX` [#1355](https://github.com/sumneko/lua-language-server/issues/1355)
+* `FIX` [#1363](https://github.com/sumneko/lua-language-server/issues/1363)
+* `FIX` [#1365](https://github.com/sumneko/lua-language-server/issues/1365)
+* `FIX` [#1367](https://github.com/sumneko/lua-language-server/issues/1367)
+* `FIX` [#1368](https://github.com/sumneko/lua-language-server/issues/1368)
+* `FIX` [#1370](https://github.com/sumneko/lua-language-server/issues/1370)
+* `FIX` [#1375](https://github.com/sumneko/lua-language-server/issues/1375)
+* `FIX` [#1391](https://github.com/sumneko/lua-language-server/issues/1391)
+
 ## 3.5.0
 `2022-7-19`
 * `NEW` `LuaDoc`: `---@operator`:
diff --git a/package.json b/package.json
index f380f08b6cfb22335f9f7f96a66779c39a37fc58..93ab2fccac109887193430ad3e713cd3ffa060ba 100644
--- a/package.json
+++ b/package.json
@@ -633,7 +633,7 @@
 							"type": "string"
 						},
 						"cast-type-mismatch": {
-							"default": "Any",
+							"default": "Opened",
 							"description": "%config.diagnostics.cast-type-mismatch%",
 							"enum": [
 								"Any",
@@ -2527,6 +2527,15 @@
 					"scope": "resource",
 					"type": "string"
 				},
+				"Lua.runtime.pluginArgs": {
+					"default": [],
+					"items": {
+						"type": "string"
+					},
+					"markdownDescription": "%config.runtime.pluginArgs%",
+					"scope": "resource",
+					"type": "array"
+				},
 				"Lua.runtime.special": {
 					"additionalProperties": false,
 					"default": {},
@@ -2633,7 +2642,7 @@
 					]
 				},
 				"Lua.type.castNumberToInteger": {
-					"default": false,
+					"default": true,
 					"markdownDescription": "%config.type.castNumberToInteger%",
 					"scope": "resource",
 					"type": "boolean"
@@ -2896,5 +2905,5 @@
 	"sponsor": {
 		"url": "https://github.com/sumneko/lua-language-server/issues/484"
 	},
-	"version": "3.5.0"
+	"version": "3.5.1"
 }
diff --git a/package.nls.json b/package.nls.json
index ed2d24506575875ff5e4eeb606a6c719e4855893..74c3684e92daa25e7898e189d0c047bc0e0b6d2f 100644
--- a/package.nls.json
+++ b/package.nls.json
@@ -53,7 +53,7 @@
     "config.diagnostics.libraryFiles.Enable": "Always diagnose these files.",
     "config.diagnostics.libraryFiles.Opened": "Only when these files are opened will it be diagnosed.",
     "config.diagnostics.lowercase-global": "Enable lowercase global variable definition diagnostics.",
-    "config.diagnostics.luadoc": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
+    "config.diagnostics.luadoc": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
     "config.diagnostics.neededFileStatus": "* Opened:  only diagnose opened files\n* Any:     diagnose all files\n* None:    disable this diagnostic\n\nEnd with `!` means override the group setting `diagnostics.groupFileStatus`.\n",
     "config.diagnostics.newfield-call": "在字面量表中,2行代码之间缺少分隔符,在语法上被解析为了一次索引操作",
     "config.diagnostics.newline-call": "Enable newline call diagnostics. Is's raised when a line starting with `(` is encountered, which is syntactically parsed as a function call on the previous line.",
@@ -113,6 +113,7 @@
     "config.runtime.path": "When using `require`, how to find the file based on the input name.\nSetting this config to `?/init.lua` means that when you enter `require 'myfile'`, `${workspace}/myfile/init.lua` will be searched from the loaded files.\nif `runtime.pathStrict` is `false`, `${workspace}/**/myfile/init.lua` will also be searched.\nIf you want to load files outside the workspace, you need to set `Lua.workspace.library` first.\n",
     "config.runtime.pathStrict": "When enabled, `runtime.path` will only search the first level of directories, see the description of `runtime.path`.",
     "config.runtime.plugin": "Plugin path. Please read [wiki](https://github.com/sumneko/lua-language-server/wiki/Plugin) to learn more.",
+    "config.runtime.pluginArgs": "Additional arguments for the plugin.",
     "config.runtime.special": "The custom global variables are regarded as some special built-in variables, and the language server will provide special support\nThe following example shows that 'include' is treated as' require '.\n```json\n\"Lua.runtime.special\" : {\n    \"include\" : \"require\"\n}\n```\n",
     "config.runtime.unicodeName": "Allows Unicode characters in name.",
     "config.runtime.version": "Lua runtime version.",
diff --git a/package.nls.pt-br.json b/package.nls.pt-br.json
index 7d59e95912db5893dcf47b8b3ee19e08be764696..1e64bd9034149b1c5e07c2811577188f5fa83524 100644
--- a/package.nls.pt-br.json
+++ b/package.nls.pt-br.json
@@ -53,7 +53,7 @@
     "config.diagnostics.libraryFiles.Enable": "Always diagnose these files.",
     "config.diagnostics.libraryFiles.Opened": "Only when these files are opened will it be diagnosed.",
     "config.diagnostics.lowercase-global": "首字母小写的全局变量定义",
-    "config.diagnostics.luadoc": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
+    "config.diagnostics.luadoc": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
     "config.diagnostics.neededFileStatus": "* Opened:  only diagnose opened files\n* Any:     diagnose all files\n* None:    disable this diagnostic\n\nEnd with `!` means override the group setting `diagnostics.groupFileStatus`.\n",
     "config.diagnostics.newfield-call": "在字面量表中,2行代码之间缺少分隔符,在语法上被解析为了一次索引操作",
     "config.diagnostics.newline-call": "以 `(` 开始的新行,在语法上被解析为了上一行的函数调用",
@@ -113,6 +113,7 @@
     "config.runtime.path": "When using `require`, how to find the file based on the input name.\nSetting this config to `?/init.lua` means that when you enter `require 'myfile'`, `${workspace}/myfile/init.lua` will be searched from the loaded files.\nif `runtime.pathStrict` is `false`, `${workspace}/**/myfile/init.lua` will also be searched.\nIf you want to load files outside the workspace, you need to set `Lua.workspace.library` first.\n",
     "config.runtime.pathStrict": "When enabled, `runtime.path` will only search the first level of directories, see the description of `runtime.path`.",
     "config.runtime.plugin": "Plugin path. Please read [wiki](https://github.com/sumneko/lua-language-server/wiki/Plugin) to learn more.",
+    "config.runtime.pluginArgs": "Additional arguments for the plugin.",
     "config.runtime.special": "The custom global variables are regarded as some special built-in variables, and the language server will provide special support\nThe following example shows that 'include' is treated as' require '.\n```json\n\"Lua.runtime.special\" : {\n    \"include\" : \"require\"\n}\n```\n",
     "config.runtime.unicodeName": "Allows Unicode characters in name.",
     "config.runtime.version": "Lua runtime version.",
diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json
index 3d0fcb3a1e2b9517c15dcfa0ed427b03ec967e69..3ed7a620937d475090fb4e52b6ec1dff0f46677a 100644
--- a/package.nls.zh-cn.json
+++ b/package.nls.zh-cn.json
@@ -53,7 +53,7 @@
     "config.diagnostics.libraryFiles.Enable": "总是诊断这些文件。",
     "config.diagnostics.libraryFiles.Opened": "只有打开这些文件时才会诊断。",
     "config.diagnostics.lowercase-global": "首字母小写的全局变量定义",
-    "config.diagnostics.luadoc": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
+    "config.diagnostics.luadoc": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
     "config.diagnostics.neededFileStatus": "* Opened:  只诊断打开的文件\n* Any:     诊断任何文件\n* None:    禁用此诊断\n\n以 `!` 结尾的设置优先级高于组设置 `diagnostics.groupFileStatus`。\n",
     "config.diagnostics.newfield-call": "在字面量表中,2行代码之间缺少分隔符,在语法上被解析为了一次索引操作",
     "config.diagnostics.newline-call": "以 `(` 开始的新行,在语法上被解析为了上一行的函数调用",
@@ -113,6 +113,7 @@
     "config.runtime.path": "当使用 `require` 时,如何根据输入的名字来查找文件。\n此选项设置为 `?/init.lua` 意味着当你输入 `require 'myfile'` 时,会从已加载的文件中搜索 `{workspace}/myfile/init.lua`。\n当 `runtime.pathStrict` 设置为 `false` 时,还会尝试搜索 `${workspace}/**/myfile/init.lua`。\n如果你想要加载工作区以外的文件,你需要先设置 `Lua.workspace.library`。\n",
     "config.runtime.pathStrict": "启用后 `runtime.path` 将只搜索第一层目录,见 `runtime.path` 的说明。",
     "config.runtime.plugin": "插件路径,请查阅[文档](https://github.com/sumneko/lua-language-server/wiki/Plugin)了解用法。",
+    "config.runtime.pluginArgs": "Additional arguments for the plugin.",
     "config.runtime.special": "将自定义全局变量视为一些特殊的内置变量,语言服务将提供特殊的支持。\n下面这个例子表示将 `include` 视为 `require` 。\n```json\n\"Lua.runtime.special\" : {\n    \"include\" : \"require\"\n}\n```\n",
     "config.runtime.unicodeName": "允许在名字中使用 Unicode 字符。",
     "config.runtime.version": "Lua运行版本。",
diff --git a/package.nls.zh-tw.json b/package.nls.zh-tw.json
index 7ccc5016e562323bd8437467c46b083767b9ccd7..488c11534129423ae9dd1b3f7aa97d62b6d0aa76 100644
--- a/package.nls.zh-tw.json
+++ b/package.nls.zh-tw.json
@@ -53,7 +53,7 @@
     "config.diagnostics.libraryFiles.Enable": "總是診斷這些檔案。",
     "config.diagnostics.libraryFiles.Opened": "只有打開這些檔案時才會診斷。",
     "config.diagnostics.lowercase-global": "首字母小寫的全域變數定義",
-    "config.diagnostics.luadoc": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
+    "config.diagnostics.luadoc": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
     "config.diagnostics.neededFileStatus": "* Opened:  只診斷打開的檔案\n* Any:     診斷所有檔案\n* None:    停用此診斷\n\n以 `!` 結尾的設定優先順序高於組設定 `diagnostics.groupFileStatus`。\n",
     "config.diagnostics.newfield-call": "在字面常數表中,2行程式碼之間缺少分隔符,在語法上被解析為了一次索引操作",
     "config.diagnostics.newline-call": "以 `(` 開始的新行,在語法上被解析為了上一行的函式呼叫",
@@ -113,6 +113,7 @@
     "config.runtime.path": "當使用 `require` 時,如何根據輸入的名字來尋找檔案。\n此選項設定為 `?/init.lua` 意味著當你輸入 `require 'myfile'` 時,會從已載入的檔案中搜尋 `{workspace}/myfile/init.lua`。\n當 `runtime.pathStrict` 設定為 `false` 時,還會嘗試搜尋 `${workspace}/**/myfile/init.lua`。\n如果你想要載入工作區以外的檔案,你需要先設定 `Lua.workspace.library`。\n",
     "config.runtime.pathStrict": "啟用後 `runtime.path` 將只搜尋第一層目錄,見 `runtime.path` 的説明。",
     "config.runtime.plugin": "延伸模組路徑,請查閱[文件](https://github.com/sumneko/lua-language-server/wiki/Plugin)瞭解用法。",
+    "config.runtime.pluginArgs": "Additional arguments for the plugin.",
     "config.runtime.special": "將自訂全域變數視為一些特殊的內建變數,語言伺服將提供特殊的支援。\n下面這個例子表示將 `include` 視為 `require` 。\n```json\n\"Lua.runtime.special\" : {\n    \"include\" : \"require\"\n}\n```\n",
     "config.runtime.unicodeName": "允許在名字中使用 Unicode 字元。",
     "config.runtime.version": "Lua執行版本。",
diff --git a/package/build.lua b/package/build.lua
index daf97053d605a09afbbb0e70245962f2908ee000..0fa088c4e7894e111daa69fdcd9cf950914290e8 100644
--- a/package/build.lua
+++ b/package/build.lua
@@ -1,6 +1,6 @@
 local json = require 'json-beautify'
 
-local VERSION = "3.5.0"
+local VERSION = "3.5.1"
 
 local package = require 'package.package'
 local fsu     = require 'fs-utility'
diff --git a/server b/server
index be85f2c855f9075cadae3219f4dc1f3ce1f920ca..0c4f94b7b4cc3f8776f8136e777634973bbc2ede 160000
--- a/server
+++ b/server
@@ -1 +1 @@
-Subproject commit be85f2c855f9075cadae3219f4dc1f3ce1f920ca
+Subproject commit 0c4f94b7b4cc3f8776f8136e777634973bbc2ede
diff --git a/setting/schema-pt-br.json b/setting/schema-pt-br.json
index 149150b78c2763d766565d074372fd78d8ddcaf0..a038dcb0d247f5ccc3e030442abe11899f84b061 100644
--- a/setting/schema-pt-br.json
+++ b/setting/schema-pt-br.json
@@ -361,7 +361,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
                     "enum": [
                         "Any",
                         "Opened",
@@ -507,7 +507,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
                     "enum": [
                         "Error",
                         "Warning",
@@ -683,7 +683,7 @@
                     "type": "string"
                 },
                 "cast-type-mismatch": {
-                    "default": "Any",
+                    "default": "Opened",
                     "description": "%config.diagnostics.cast-type-mismatch%",
                     "enum": [
                         "Any",
@@ -2410,6 +2410,9 @@
                 "plugin": {
                     "$ref": "#/properties/runtime.plugin"
                 },
+                "pluginArgs": {
+                    "$ref": "#/properties/runtime.pluginArgs"
+                },
                 "special": {
                     "$ref": "#/properties/runtime.special"
                 },
@@ -2678,6 +2681,15 @@
             "scope": "resource",
             "type": "string"
         },
+        "runtime.pluginArgs": {
+            "default": [],
+            "items": {
+                "type": "string"
+            },
+            "markdownDescription": "Additional arguments for the plugin.",
+            "scope": "resource",
+            "type": "array"
+        },
         "runtime.special": {
             "additionalProperties": false,
             "default": {},
@@ -2834,7 +2846,7 @@
             }
         },
         "type.castNumberToInteger": {
-            "default": false,
+            "default": true,
             "markdownDescription": "Allowed to assign the `number` type to the `integer` type.",
             "scope": "resource",
             "type": "boolean"
diff --git a/setting/schema-zh-cn.json b/setting/schema-zh-cn.json
index 705a2f28f15b7f7a8a4ce74f543ef5bee611a955..980b9495c073365a0e102d335b0e8c5f4e2e6b34 100644
--- a/setting/schema-zh-cn.json
+++ b/setting/schema-zh-cn.json
@@ -361,7 +361,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
                     "enum": [
                         "Any",
                         "Opened",
@@ -507,7 +507,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
                     "enum": [
                         "Error",
                         "Warning",
@@ -683,7 +683,7 @@
                     "type": "string"
                 },
                 "cast-type-mismatch": {
-                    "default": "Any",
+                    "default": "Opened",
                     "description": "%config.diagnostics.cast-type-mismatch%",
                     "enum": [
                         "Any",
@@ -2410,6 +2410,9 @@
                 "plugin": {
                     "$ref": "#/properties/runtime.plugin"
                 },
+                "pluginArgs": {
+                    "$ref": "#/properties/runtime.pluginArgs"
+                },
                 "special": {
                     "$ref": "#/properties/runtime.special"
                 },
@@ -2678,6 +2681,15 @@
             "scope": "resource",
             "type": "string"
         },
+        "runtime.pluginArgs": {
+            "default": [],
+            "items": {
+                "type": "string"
+            },
+            "markdownDescription": "Additional arguments for the plugin.",
+            "scope": "resource",
+            "type": "array"
+        },
         "runtime.special": {
             "additionalProperties": false,
             "default": {},
@@ -2834,7 +2846,7 @@
             }
         },
         "type.castNumberToInteger": {
-            "default": false,
+            "default": true,
             "markdownDescription": "允许将 `number` 类型赋给 `integer` 类型。",
             "scope": "resource",
             "type": "boolean"
diff --git a/setting/schema-zh-tw.json b/setting/schema-zh-tw.json
index 3a8192a22e42b34c1a13ee100f44c06d147f8ce8..2366bf9c499e657e036115d5dff4144be798b4d7 100644
--- a/setting/schema-zh-tw.json
+++ b/setting/schema-zh-tw.json
@@ -361,7 +361,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
                     "enum": [
                         "Any",
                         "Opened",
@@ -507,7 +507,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
                     "enum": [
                         "Error",
                         "Warning",
@@ -683,7 +683,7 @@
                     "type": "string"
                 },
                 "cast-type-mismatch": {
-                    "default": "Any",
+                    "default": "Opened",
                     "description": "%config.diagnostics.cast-type-mismatch%",
                     "enum": [
                         "Any",
@@ -2410,6 +2410,9 @@
                 "plugin": {
                     "$ref": "#/properties/runtime.plugin"
                 },
+                "pluginArgs": {
+                    "$ref": "#/properties/runtime.pluginArgs"
+                },
                 "special": {
                     "$ref": "#/properties/runtime.special"
                 },
@@ -2678,6 +2681,15 @@
             "scope": "resource",
             "type": "string"
         },
+        "runtime.pluginArgs": {
+            "default": [],
+            "items": {
+                "type": "string"
+            },
+            "markdownDescription": "Additional arguments for the plugin.",
+            "scope": "resource",
+            "type": "array"
+        },
         "runtime.special": {
             "additionalProperties": false,
             "default": {},
@@ -2834,7 +2846,7 @@
             }
         },
         "type.castNumberToInteger": {
-            "default": false,
+            "default": true,
             "markdownDescription": "允許將 `number` 類型賦值給 `integer` 類型。",
             "scope": "resource",
             "type": "boolean"
diff --git a/setting/schema.json b/setting/schema.json
index 2f160b04ebe3ab86569a2369980a7f3e78e50987..ba85da3450fc50c135567fdc459c9045a15d02ad 100644
--- a/setting/schema.json
+++ b/setting/schema.json
@@ -361,7 +361,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
                     "enum": [
                         "Any",
                         "Opened",
@@ -507,7 +507,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator",
                     "enum": [
                         "Error",
                         "Warning",
@@ -683,7 +683,7 @@
                     "type": "string"
                 },
                 "cast-type-mismatch": {
-                    "default": "Any",
+                    "default": "Opened",
                     "description": "%config.diagnostics.cast-type-mismatch%",
                     "enum": [
                         "Any",
@@ -2410,6 +2410,9 @@
                 "plugin": {
                     "$ref": "#/properties/runtime.plugin"
                 },
+                "pluginArgs": {
+                    "$ref": "#/properties/runtime.pluginArgs"
+                },
                 "special": {
                     "$ref": "#/properties/runtime.special"
                 },
@@ -2678,6 +2681,15 @@
             "scope": "resource",
             "type": "string"
         },
+        "runtime.pluginArgs": {
+            "default": [],
+            "items": {
+                "type": "string"
+            },
+            "markdownDescription": "Additional arguments for the plugin.",
+            "scope": "resource",
+            "type": "array"
+        },
         "runtime.special": {
             "additionalProperties": false,
             "default": {},
@@ -2834,7 +2846,7 @@
             }
         },
         "type.castNumberToInteger": {
-            "default": false,
+            "default": true,
             "markdownDescription": "Allowed to assign the `number` type to the `integer` type.",
             "scope": "resource",
             "type": "boolean"