From 2aaab95fa6e1e87b10991f8f6da8caf2020c91fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= <sumneko@hotmail.com>
Date: Thu, 24 Aug 2023 17:33:51 +0800
Subject: [PATCH] 3.7.0

---
 .vscode/launch.json       |  2 --
 README.md                 | 51 +++++++++++++++---------------------
 changelog.md              | 54 +++++++++++++++++++++++++++++++++++----
 package.json              | 31 +++++++++++++++++++++-
 package.nls.json          | 11 +++-----
 package.nls.pt-br.json    | 11 +++-----
 package.nls.zh-cn.json    | 13 ++++------
 package.nls.zh-tw.json    | 13 ++++------
 package/build.lua         |  2 +-
 server                    |  2 +-
 setting/schema-pt-br.json | 35 ++++++++++++++++++++++---
 setting/schema-zh-cn.json | 37 ++++++++++++++++++++++++---
 setting/schema-zh-tw.json | 37 ++++++++++++++++++++++++---
 setting/schema.json       | 35 ++++++++++++++++++++++---
 14 files changed, 250 insertions(+), 84 deletions(-)

diff --git a/.vscode/launch.json b/.vscode/launch.json
index acf5cae..6455aed 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -10,7 +10,6 @@
             "program": "${workspaceRoot}/publish.lua",
             "arg": [
             ],
-            "consoleCoding": "utf8",
             "sourceCoding": "utf8",
             "luaexe": "${workspaceFolder}/server/bin/lua-language-server.exe",
             "outputCapture": [
@@ -27,7 +26,6 @@
             "arg": [
             ],
             "luaexe": "${workspaceFolder}/server/bin/lua-language-server.exe",
-            "consoleCoding": "utf8",
             "sourceCoding": "utf8",
             "outputCapture": [
                 "print",
diff --git a/README.md b/README.md
index e347faf..aa40ab3 100644
--- a/README.md
+++ b/README.md
@@ -8,45 +8,36 @@
 
 ***Lua development just got a whole lot better*** 🧠
 
-The Lua language server provides various language features for Lua to make development easier and faster. With around half a million installs on Visual Studio Code, it is the most popular extension for Lua language support.
+The Lua language server provides various language features for Lua to make development easier and faster. With nearly a million installs in Visual Studio Code, it is the most popular extension for Lua language support.
+
+[See our website for more info](https://luals.github.io).
 
 ## Features
 
 - ⚙️ Supports `Lua 5.4`, `Lua 5.3`, `Lua 5.2`, `Lua 5.1`, and `LuaJIT`
-- 📄 Over 20 supported [annotations](https://github.com/LuaLS/lua-language-server/wiki/Annotations) for documenting your code
+- 📄 Over 20 supported [annotations](https://luals.github.io/wiki/annotations/) for documenting your code
 - ↪ Go to definition
-- 🦺 Dynamic [type checking](https://github.com/LuaLS/lua-language-server/wiki/Type-Checking)
+- 🦺 Dynamic [type checking](https://luals.github.io/wiki/type-checking/)
 - 🔍 Find references
-- ⚠️ [Diagnostics/Warnings](https://github.com/LuaLS/lua-language-server/wiki/Diagnostics)
-- 🕵️ [Syntax checking](https://github.com/LuaLS/lua-language-server/wiki/Syntax-Errors)
+- ⚠️ [Diagnostics/Warnings](https://luals.github.io/wiki/diagnostics/)
+- 🕵️ [Syntax checking](https://luals.github.io/wiki/syntax-errors/)
 - 📝 Element renaming
 - 🗨️ Hover to view details on variables, functions, and more
 - 🖊️ Autocompletion
-- 📚 Support for [libraries](https://github.com/LuaLS/lua-language-server/wiki/Libraries)
-- 💅 [Code formatting](https://github.com/LuaLS/lua-language-server/wiki/Formatter)
-- 💬 [Spell checking](https://github.com/LuaLS/lua-language-server/wiki/Formatter)
-- 🛠️ Custom [plugins](https://github.com/LuaLS/lua-language-server/wiki/Plugins)
-- 📖 [Documentation Generation](https://github.com/LuaLS/lua-language-server/wiki/Export-Documentation)
+- 📚 Support for [libraries](https://luals.github.io/wiki/settings/#workspacelibrary)
+- 💅 [Code formatting](https://luals.github.io/wiki/formatter/)
+- 💬 [Spell checking](https://luals.github.io/wiki/diagnostics/#spell-check)
+- 🛠️ Custom [plugins](https://luals.github.io/wiki/plugins/)
+- 📖 [Documentation Generation](https://luals.github.io/wiki/export-docs/)
 
 ## Install
-The language server can be installed for use in Visual Studio Code, NeoVim, and any [other clients](https://microsoft.github.io/language-server-protocol/implementors/tools/) that support the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/). The language server can be configured using a [configuration file](https://github.com/LuaLS/lua-language-server/wiki/Configuration-File). For a more detailed intro, check out the [getting started page in the wiki](https://github.com/LuaLS/lua-language-server/wiki/Getting-Started).
-
-### Visual Studio Code
-[![Install in VS Code](https://img.shields.io/badge/VS%20Code-Install-blue?style=for-the-badge&logo=visualstudiocode "Install in VS Code")](https://marketplace.visualstudio.com/items?itemName=sumneko.lua)
-
-The language server and Visual Studio Code client can be installed from [the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=sumneko.lua).
-
-### NeoVim
-[![Install for NeoVim](https://img.shields.io/badge/NeoVim-Install-blue?style=for-the-badge&logo=neovim "Install for NeoVim")](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#lua_ls)
-
-View the installation instructions for NeoVim in the [nvim-lspconfig repo](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#lua_ls).
-
-For a guide to getting started from scratch using Mason, read [Heiker's guide](https://dev.to/vonheikemen/getting-started-with-neovims-native-lsp-client-in-the-year-of-2022-the-easy-way-bp3).
+The language server can be installed for use in Visual Studio Code, NeoVim, and any [other clients](https://microsoft.github.io/language-server-protocol/implementors/tools/) that support the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/).
 
-### Command Line
-[![Install for command line](https://img.shields.io/badge/Command%20Line-Install-blue?style=for-the-badge&logo=windowsterminal "Install for command line")](https://github.com/LuaLS/lua-language-server/wiki/Getting-Started#command-line)
+See [installation instructions on our website](https://luals.github.io/#install).
 
-Check the [wiki for a guide](https://github.com/LuaLS/lua-language-server/wiki/Getting-Started#command-line) to install the language server for use on the command line. This allows the language server to be used with [other clients](https://microsoft.github.io/language-server-protocol/implementors/tools/) that follow the [language server protocol](https://microsoft.github.io/language-server-protocol/overviews/lsp/overview/).
+[![Install in VS Code](https://img.shields.io/badge/VS%20Code-Install-blue?style=for-the-badge&logo=visualstudiocode "Install in VS Code")](https://luals.github.io/#vscode-install)
+[![Install for NeoVim](https://img.shields.io/badge/NeoVim-Install-blue?style=for-the-badge&logo=neovim "Install for NeoVim")](https://luals.github.io/#neovim-install)
+[![Other](https://img.shields.io/badge/Other-Install-blue?style=for-the-badge&logo=windowsterminal "Install for command line")](https://luals.github.io/#other-install)
 
 ### Community Install Methods
 The install methods below are maintained by community members.
@@ -55,8 +46,8 @@ The install methods below are maintained by community members.
 
 ## Links
 - [Changelog](https://github.com/LuaLS/lua-language-server/blob/master/changelog.md)
-- [Wiki](https://github.com/LuaLS/lua-language-server/wiki)
-- [FAQ](https://github.com/LuaLS/lua-language-server/wiki/FAQ)
+- [Wiki](https://luals.github.io/wiki)
+- [FAQ](https://luals.github.io/wiki/faq)
 - [Report an issue][issues]
 - [Suggest a feature][issues]
 - [Discuss](https://github.com/LuaLS/lua-language-server/discussions)
@@ -79,13 +70,13 @@ The install methods below are maintained by community members.
 > **Note**
 > All translations are provided and collaborated on by the community. If you find an inappropriate or harmful translation, [please report it immediately](https://github.com/LuaLS/lua-language-server/issues).
 
-Are you able to [provide a translation](https://github.com/LuaLS/lua-language-server/wiki/Translations)? It would be greatly appreciated!
+Are you able to [provide a translation](https://luals.github.io/wiki/translations)? It would be greatly appreciated!
 
 Thank you to [all contributors of translations](https://github.com/LuaLS/lua-language-server/commits/master/locale)!
 
 
 ## Privacy
-The language server had **opt-in** telemetry that collected usage data and sent it to the development team to help improve the extension. Read our [privacy policy](https://github.com/LuaLS/lua-language-server/wiki/Home#privacy) to learn more. Telemetry was removed in `v3.6.5` and is no longer part of the language server.
+The language server had **opt-in** telemetry that collected usage data and sent it to the development team to help improve the extension. Read our [privacy policy](https://luals.github.io/privacy#language-server) to learn more. Telemetry was removed in `v3.6.5` and is no longer part of the language server.
 
 
 ## Contributors
diff --git a/changelog.md b/changelog.md
index f1cc488..c593b33 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,10 +1,54 @@
 # changelog
 
+## 3.7.0
+`2023-8-24`
+* `NEW` support `---@type` and `--[[@as]]` for return statement
+* `NEW` commandline parameter `--force-accept-workspace`: allowing the use of the root directory or home directory as the workspace
+* `NEW` diagnostic: `inject-field`
+* `NEW` `---@enum` supports attribute `key`
+  ```lua
+  ---@enum (key) AnimalType
+  local enum = {
+    Cat = 1,
+    Dog = 2,
+  }
+  
+  ---@param animal userdata
+  ---@param atp AnimalType
+  ---@return boolean
+  local function isAnimalType(animal, atp)
+    return API.isAnimalType(animal, enum[atp])
+  end
+
+  assert(isAnimalType(animal, 'Cat'))
+  ```
+* `NEW` `---@class` supports attribute `exact`
+  ```lua
+  ---@class (exact) Point
+  ---@field x number
+  ---@field y number
+  local m = {}
+  m.x = 1 -- OK
+  m.y = 2 -- OK
+  m.z = 3 -- Warning
+  ```
+
+* `FIX` wrong hover and signature for method with varargs and overloads
+* `FIX` [#2155]
+* `FIX` [#2224]
+* `FIX` [#2252]
+* `FIX` [#2267]
+
+[#2155]: https://github.com/LuaLS/lua-language-server/issues/2155
+[#2224]: https://github.com/LuaLS/lua-language-server/issues/2224
+[#2252]: https://github.com/LuaLS/lua-language-server/issues/2252
+[#2267]: https://github.com/LuaLS/lua-language-server/issues/2267
+
 ## 3.6.25
 `2023-7-26`
 * `FIX` [#2214]
 
-[#2214]: https://github.com/LuaLS/lua-language-server/issues/2145
+[#2214]: https://github.com/LuaLS/lua-language-server/issues/2214
 
 ## 3.6.24
 `2023-7-21`
@@ -870,7 +914,7 @@ server will generate `doc.json` and `doc.md` in `LOGPATH`.
 
 ## 2.6.7
 `2022-3-9`
-* `NEW` offline diagnostic, [read more](https://github.com/LuaLS/lua-language-server/wiki/Offline-Diagnostic)
+* `NEW` diagnosis report, [read more](https://luals.github.io/wiki/diagnosis-report/)
 * `CHG` `VSCode`: 1.65 has built in new `Lua` syntax files, so this extension no longer provides syntax files, which means you can install other syntax extensions in the marketplace. If you have any suggestions or issues, please [open issues here](https://github.com/LuaLS/lua.tmbundle).
 * `CHG` telemetry: the prompt will only appear in VSCode to avoid repeated prompts in other platforms due to the inability to automatically modify the settings.
 * `FIX` [#965](https://github.com/LuaLS/lua-language-server/issues/965)
@@ -924,7 +968,7 @@ server will generate `doc.json` and `doc.md` in `LOGPATH`.
 
 ## 2.6.0
 `2022-1-13`
-* `NEW` supports multi-workspace in server side, for developers of language clients, please [read here](https://github.com/LuaLS/lua-language-server/wiki/Multi-workspace-supports) to learn more.
+* `NEW` supports multi-workspace in server side, for developers of language clients, please [read here](https://luals.github.io/wiki/developing/#multiple-workspace-support) to learn more.
 * `NEW` setting:
   + `Lua.hint.arrayIndex`
   + `Lua.semantic.enable`
@@ -1291,7 +1335,7 @@ server will generate `doc.json` and `doc.md` in `LOGPATH`.
 
 ## 2.1.0
 `2021-7-2`
-* `NEW` supports local config file, using `--configpath="config.json"`, [learn more here](https://github.com/LuaLS/lua-language-server/wiki/Setting-without-VSCode)
+* `NEW` supports local config file, using `--configpath="config.json"`, [learn more here](https://luals.github.io/wiki/usage/#--configpath)
 * `NEW` goto `type definition`
 * `NEW` infer type by callback param:
     ```lua
@@ -1446,7 +1490,7 @@ server will generate `doc.json` and `doc.md` in `LOGPATH`.
 
 ## 1.20.0
 `2021-3-27`
-* `CHG` telemetry: change to opt-in, see [#462](https://github.com/LuaLS/lua-language-server/issues/462) and [Privacy-Policy](https://github.com/LuaLS/lua-language-server/wiki/Privacy-Policy)
+* `CHG` telemetry: change to opt-in, see [#462](https://github.com/LuaLS/lua-language-server/issues/462) and [Privacy-Policy](https://luals.github.io/privacy/#language-server)
 * `FIX` [#467](https://github.com/LuaLS/lua-language-server/issues/467)
 
 ## 1.19.1
diff --git a/package.json b/package.json
index ec36b64..3c45ede 100644
--- a/package.json
+++ b/package.json
@@ -185,6 +185,7 @@
 							"global-in-nil-env",
 							"incomplete-signature-doc",
 							"index-in-func-name",
+							"inject-field",
 							"invisible",
 							"jump-local-scope",
 							"keyword",
@@ -962,6 +963,19 @@
 							],
 							"type": "string"
 						},
+						"inject-field": {
+							"default": "Opened",
+							"description": "%config.diagnostics.inject-field%",
+							"enum": [
+								"Any",
+								"Opened",
+								"None",
+								"Any!",
+								"Opened!",
+								"None!"
+							],
+							"type": "string"
+						},
 						"invisible": {
 							"default": "Any",
 							"description": "%config.diagnostics.invisible%",
@@ -1810,6 +1824,21 @@
 							],
 							"type": "string"
 						},
+						"inject-field": {
+							"default": "Warning",
+							"description": "%config.diagnostics.inject-field%",
+							"enum": [
+								"Error",
+								"Warning",
+								"Information",
+								"Hint",
+								"Error!",
+								"Warning!",
+								"Information!",
+								"Hint!"
+							],
+							"type": "string"
+						},
 						"invisible": {
 							"default": "Warning",
 							"description": "%config.diagnostics.invisible%",
@@ -3312,5 +3341,5 @@
 	"sponsor": {
 		"url": "https://github.com/LuaLS/lua-language-server/issues/484"
 	},
-	"version": "3.6.26"
+	"version": "3.7.0"
 }
diff --git a/package.nls.json b/package.nls.json
index 4849e94..842b0ff 100644
--- a/package.nls.json
+++ b/package.nls.json
@@ -2,10 +2,6 @@
     "command.addon_manager.open": "Lua: Open Addon Manager ...",
     "command.exportDocument": "Lua: Export Document ...",
     "command.reloadFFIMeta": "Lua: Reload luajit ffi meta",
-    "config.IntelliSense.traceBeSetted": "Please read [wiki](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features) to learn more.",
-    "config.IntelliSense.traceFieldInject": "Please read [wiki](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features) to learn more.",
-    "config.IntelliSense.traceLocalSet": "Please read [wiki](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features) to learn more.",
-    "config.IntelliSense.traceReturn": "Please read [wiki](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features) to learn more.",
     "config.addonManager.enable": "Whether the addon manager is enabled or not.",
     "config.codeLens.enable": "Enable code lens.",
     "config.color.mode": "Color mode.",
@@ -74,6 +70,7 @@
     "config.diagnostics.ignoredFiles.Enable": "Always diagnose these files.",
     "config.diagnostics.ignoredFiles.Opened": "Only when these files are opened will it be diagnosed.",
     "config.diagnostics.incomplete-signature-doc": "Incomplete @param or @return annotations for functions.",
+    "config.diagnostics.inject-field": "",
     "config.diagnostics.invisible": "Enable diagnostics for accesses to fields which are invisible.",
     "config.diagnostics.libraryFiles": "How to diagnose files loaded via `Lua.workspace.library`.",
     "config.diagnostics.libraryFiles.Disable": "These files are not diagnosed.",
@@ -107,7 +104,7 @@
     "config.diagnostics.strict": "* close-non-object\n* deprecated\n* discard-returns\n* invisible",
     "config.diagnostics.strong": "* no-unknown",
     "config.diagnostics.trailing-space": "Enable trailing space diagnostics.",
-    "config.diagnostics.type-check": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
+    "config.diagnostics.type-check": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* inject-field\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
     "config.diagnostics.unbalanced": "* missing-fields\n* missing-parameter\n* missing-return\n* missing-return-value\n* redundant-parameter\n* redundant-return-value\n* redundant-value\n* unbalanced-assignments",
     "config.diagnostics.unbalanced-assignments": "Enable diagnostics on multiple assignments if not all variables obtain a value (e.g., `local x,y = 1`).",
     "config.diagnostics.undefined-doc-class": "Enable diagnostics for class annotations in which an undefined class is referenced.",
@@ -196,7 +193,7 @@
     "config.runtime.nonstandardSymbol": "Supports non-standard symbols. Make sure that your runtime environment supports these symbols.",
     "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/LuaLS/lua-language-server/wiki/Plugins) to learn more.",
+    "config.runtime.plugin": "Plugin path. Please read [wiki](https://luals.github.io/wiki/plugins) 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.",
@@ -212,7 +209,7 @@
     "config.semantic.variable": "Semantic coloring of variables/fields/parameters.",
     "config.signatureHelp.enable": "Enable signature help.",
     "config.spell.dict": "Custom words for spell checking.",
-    "config.telemetry.enable": "Enable telemetry to send your editor information and error logs over the network. Read our privacy policy [here](https://github.com/LuaLS/lua-language-server/wiki/Home#privacy).\n",
+    "config.telemetry.enable": "Enable telemetry to send your editor information and error logs over the network. Read our privacy policy [here](https://luals.github.io/privacy/#language-server).\n",
     "config.type.castNumberToInteger": "Allowed to assign the `number` type to the `integer` type.",
     "config.type.weakNilCheck": "When checking the type of union type, ignore the `nil` in it.\n\nWhen this setting is `false`, the `number|nil` type cannot be assigned to the `number` type. It can be with `true`.\n",
     "config.type.weakUnionCheck": "Once one subtype of a union type meets the condition, the union type also meets the condition.\n\nWhen this setting is `false`, the `number|boolean` type cannot be assigned to the `number` type. It can be with `true`.\n",
diff --git a/package.nls.pt-br.json b/package.nls.pt-br.json
index abd060b..cbb70a7 100644
--- a/package.nls.pt-br.json
+++ b/package.nls.pt-br.json
@@ -2,10 +2,6 @@
     "command.addon_manager.open": "Lua: Open Addon Manager ...",
     "command.exportDocument": "Lua: Export Document ...",
     "command.reloadFFIMeta": "Lua: Reload luajit ffi meta",
-    "config.IntelliSense.traceBeSetted": "Please read [wiki](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features) to learn more.",
-    "config.IntelliSense.traceFieldInject": "Please read [wiki](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features) to learn more.",
-    "config.IntelliSense.traceLocalSet": "Please read [wiki](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features) to learn more.",
-    "config.IntelliSense.traceReturn": "Please read [wiki](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features) to learn more.",
     "config.addonManager.enable": "Whether the addon manager is enabled or not.",
     "config.codeLens.enable": "Enable code lens.",
     "config.color.mode": "Color mode.",
@@ -74,6 +70,7 @@
     "config.diagnostics.ignoredFiles.Enable": "Always diagnose these files.",
     "config.diagnostics.ignoredFiles.Opened": "Only when these files are opened will it be diagnosed.",
     "config.diagnostics.incomplete-signature-doc": "Incomplete @param or @return annotations for functions.",
+    "config.diagnostics.inject-field": "",
     "config.diagnostics.invisible": "Enable diagnostics for accesses to fields which are invisible.",
     "config.diagnostics.libraryFiles": "How to diagnose files loaded via `Lua.workspace.library`.",
     "config.diagnostics.libraryFiles.Disable": "These files are not diagnosed.",
@@ -107,7 +104,7 @@
     "config.diagnostics.strict": "* close-non-object\n* deprecated\n* discard-returns\n* invisible",
     "config.diagnostics.strong": "* no-unknown",
     "config.diagnostics.trailing-space": "后置空格",
-    "config.diagnostics.type-check": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
+    "config.diagnostics.type-check": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* inject-field\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
     "config.diagnostics.unbalanced": "* missing-fields\n* missing-parameter\n* missing-return\n* missing-return-value\n* redundant-parameter\n* redundant-return-value\n* redundant-value\n* unbalanced-assignments",
     "config.diagnostics.unbalanced-assignments": "Enable diagnostics on multiple assignments if not all variables obtain a value (e.g., `local x,y = 1`).",
     "config.diagnostics.undefined-doc-class": "Enable diagnostics for class annotations in which an undefined class is referenced.",
@@ -196,7 +193,7 @@
     "config.runtime.nonstandardSymbol": "Supports non-standard symbols. Make sure that your runtime environment supports these symbols.",
     "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/LuaLS/lua-language-server/wiki/Plugins) to learn more.",
+    "config.runtime.plugin": "Plugin path. Please read [wiki](https://luals.github.io/wiki/plugins) 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.",
@@ -212,7 +209,7 @@
     "config.semantic.variable": "Semantic coloring of variables/fields/parameters.",
     "config.signatureHelp.enable": "Enable signature help.",
     "config.spell.dict": "Custom words for spell checking.",
-    "config.telemetry.enable": "Enable telemetry to send your editor information and error logs over the network. Read our privacy policy [here](https://github.com/LuaLS/lua-language-server/wiki/Home#privacy).\n",
+    "config.telemetry.enable": "Enable telemetry to send your editor information and error logs over the network. Read our privacy policy [here](https://luals.github.io/privacy/#language-server).\n",
     "config.type.castNumberToInteger": "Allowed to assign the `number` type to the `integer` type.",
     "config.type.weakNilCheck": "When checking the type of union type, ignore the `nil` in it.\n\nWhen this setting is `false`, the `number|nil` type cannot be assigned to the `number` type. It can be with `true`.\n",
     "config.type.weakUnionCheck": "Once one subtype of a union type meets the condition, the union type also meets the condition.\n\nWhen this setting is `false`, the `number|boolean` type cannot be assigned to the `number` type. It can be with `true`.\n",
diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json
index 853a2d8..7e561f1 100644
--- a/package.nls.zh-cn.json
+++ b/package.nls.zh-cn.json
@@ -2,10 +2,6 @@
     "command.addon_manager.open": "Lua: 打开插件管理器...",
     "command.exportDocument": "Lua: 导出文档...",
     "command.reloadFFIMeta": "Lua: 重新生成luajit的FFI模块C语言元数据",
-    "config.IntelliSense.traceBeSetted": "请查阅[文档](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features)了解用法。",
-    "config.IntelliSense.traceFieldInject": "请查阅[文档](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features)了解用法。",
-    "config.IntelliSense.traceLocalSet": "请查阅[文档](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features)了解用法。",
-    "config.IntelliSense.traceReturn": "请查阅[文档](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features)了解用法。",
     "config.addonManager.enable": "Whether the addon manager is enabled or not.",
     "config.codeLens.enable": "启用代码度量。",
     "config.color.mode": "着色模式。",
@@ -74,6 +70,7 @@
     "config.diagnostics.ignoredFiles.Enable": "总是诊断这些文件。",
     "config.diagnostics.ignoredFiles.Opened": "只有打开这些文件时才会诊断。",
     "config.diagnostics.incomplete-signature-doc": "Incomplete @param or @return annotations for functions.",
+    "config.diagnostics.inject-field": "",
     "config.diagnostics.invisible": "Enable diagnostics for accesses to fields which are invisible.",
     "config.diagnostics.libraryFiles": "如何诊断通过 `Lua.workspace.library` 加载的文件。",
     "config.diagnostics.libraryFiles.Disable": "不诊断这些文件。",
@@ -107,7 +104,7 @@
     "config.diagnostics.strict": "* close-non-object\n* deprecated\n* discard-returns\n* invisible",
     "config.diagnostics.strong": "* no-unknown",
     "config.diagnostics.trailing-space": "后置空格",
-    "config.diagnostics.type-check": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
+    "config.diagnostics.type-check": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* inject-field\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
     "config.diagnostics.unbalanced": "* missing-fields\n* missing-parameter\n* missing-return\n* missing-return-value\n* redundant-parameter\n* redundant-return-value\n* redundant-value\n* unbalanced-assignments",
     "config.diagnostics.unbalanced-assignments": "Enable diagnostics on multiple assignments if not all variables obtain a value (e.g., `local x,y = 1`).",
     "config.diagnostics.undefined-doc-class": "Enable diagnostics for class annotations in which an undefined class is referenced.",
@@ -164,7 +161,7 @@
     "config.intelliSense.fastGlobal": "在对全局变量进行补全,及查看 `_G` 的悬浮提示时进行优化。这会略微降低类型推测的准确度,但是对于大量使用全局变量的项目会有大幅的性能提升。",
     "config.intelliSense.searchDepth": "设置智能感知的搜索深度。增大该值可以增加准确度,但会降低性能。不同的项目对该设置的容忍度差异较大,请自己调整为合适的值。",
     "config.misc.executablePath": "VSCode中指定可执行文件路径。",
-    "config.misc.parameters": "VSCode中启动语言服务时的[命令行参数](https://github.com/LuaLS/lua-language-server/wiki/Getting-Started#arguments)。",
+    "config.misc.parameters": "VSCode中启动语言服务时的[命令行参数](https://luals.github.io/wiki/usage#arguments)。",
     "config.nameStyle.config": "设定命名风格检查的配置",
     "config.runtime.builtin": "调整内置库的启用状态,你可以根据实际运行环境禁用掉不存在的库(或重新定义)。\n\n* `default`: 表示库会根据运行版本启用或禁用\n* `enable`: 总是启用\n* `disable`: 总是禁用\n",
     "config.runtime.builtin.basic": "",
@@ -196,7 +193,7 @@
     "config.runtime.nonstandardSymbol": "支持非标准的符号。请务必确认你的运行环境支持这些符号。",
     "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/LuaLS/lua-language-server/wiki/Plugins)了解用法。",
+    "config.runtime.plugin": "插件路径,请查阅[文档](https://luals.github.io/wiki/plugins)了解用法。",
     "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 字符。",
@@ -212,7 +209,7 @@
     "config.semantic.variable": "对变量/字段/参数进行语义着色。",
     "config.signatureHelp.enable": "启用参数提示。",
     "config.spell.dict": "拼写检查的自定义单词。",
-    "config.telemetry.enable": "启用遥测,通过网络发送你的编辑器信息与错误日志。在[此处](https://github.com/LuaLS/lua-language-server/wiki/Home#privacy)阅读我们的隐私声明。\n",
+    "config.telemetry.enable": "启用遥测,通过网络发送你的编辑器信息与错误日志。在[此处](https://luals.github.io/privacy/#language-server)阅读我们的隐私声明。\n",
     "config.type.castNumberToInteger": "允许将 `number` 类型赋给 `integer` 类型。",
     "config.type.weakNilCheck": "对联合类型进行类型检查时,忽略其中的 `nil`。\n\n此设置为 `false` 时,`numer|nil` 类型无法赋给 `number` 类型;为 `true` 是则可以。\n",
     "config.type.weakUnionCheck": "联合类型中只要有一个子类型满足条件,则联合类型也满足条件。\n\n此设置为 `false` 时,`number|boolean` 类型无法赋给 `number` 类型;为 `true` 时则可以。\n",
diff --git a/package.nls.zh-tw.json b/package.nls.zh-tw.json
index 82d5f7e..9153ea8 100644
--- a/package.nls.zh-tw.json
+++ b/package.nls.zh-tw.json
@@ -2,10 +2,6 @@
     "command.addon_manager.open": "Lua: Open Addon Manager ...",
     "command.exportDocument": "Lua: Export Document ...",
     "command.reloadFFIMeta": "Lua: Reload luajit ffi meta",
-    "config.IntelliSense.traceBeSetted": "請查閱[文件](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features)瞭解用法。",
-    "config.IntelliSense.traceFieldInject": "請查閱[文件](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features)瞭解用法。",
-    "config.IntelliSense.traceLocalSet": "請查閱[文件](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features)瞭解用法。",
-    "config.IntelliSense.traceReturn": "請查閱[文件](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features)瞭解用法。",
     "config.addonManager.enable": "Whether the addon manager is enabled or not.",
     "config.codeLens.enable": "Enable code lens.",
     "config.color.mode": "著色模式。",
@@ -74,6 +70,7 @@
     "config.diagnostics.ignoredFiles.Enable": "總是診斷這些檔案。",
     "config.diagnostics.ignoredFiles.Opened": "只有打開這些檔案時才會診斷。",
     "config.diagnostics.incomplete-signature-doc": "Incomplete @param or @return annotations for functions.",
+    "config.diagnostics.inject-field": "",
     "config.diagnostics.invisible": "Enable diagnostics for accesses to fields which are invisible.",
     "config.diagnostics.libraryFiles": "如何診斷透過 `Lua.workspace.library` 載入的檔案。",
     "config.diagnostics.libraryFiles.Disable": "不診斷這些檔案。",
@@ -107,7 +104,7 @@
     "config.diagnostics.strict": "* close-non-object\n* deprecated\n* discard-returns\n* invisible",
     "config.diagnostics.strong": "* no-unknown",
     "config.diagnostics.trailing-space": "後置空格",
-    "config.diagnostics.type-check": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
+    "config.diagnostics.type-check": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* inject-field\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
     "config.diagnostics.unbalanced": "* missing-fields\n* missing-parameter\n* missing-return\n* missing-return-value\n* redundant-parameter\n* redundant-return-value\n* redundant-value\n* unbalanced-assignments",
     "config.diagnostics.unbalanced-assignments": "Enable diagnostics on multiple assignments if not all variables obtain a value (e.g., `local x,y = 1`).",
     "config.diagnostics.undefined-doc-class": "Enable diagnostics for class annotations in which an undefined class is referenced.",
@@ -164,7 +161,7 @@
     "config.intelliSense.fastGlobal": "在對全域變數進行補全,及檢視 `_G` 的懸浮提示時進行最佳化。這會略微降低類型推測的準確度,但是對於大量使用全域變數的專案會有大幅的效能提升。",
     "config.intelliSense.searchDepth": "設定智慧感知的搜尋深度。增大該值可以增加準確度,但會降低效能。不同的工作區對該設定的容忍度差異較大,請自己調整為合適的值。",
     "config.misc.executablePath": "Specify the executable path in VSCode.",
-    "config.misc.parameters": "VSCode中啟動語言伺服時的[命令列參數](https://github.com/LuaLS/lua-language-server/wiki/Getting-Started#arguments)。",
+    "config.misc.parameters": "VSCode中啟動語言伺服時的[命令列參數](https://luals.github.io/wiki/usage#arguments)。",
     "config.nameStyle.config": "Set name style config",
     "config.runtime.builtin": "調整內建庫的啟用狀態,你可以根據實際執行環境停用(或重新定義)不存在的庫。\n\n* `default`: 表示庫會根據執行版本啟用或停用\n* `enable`: 總是啟用\n* `disable`: 總是停用\n",
     "config.runtime.builtin.basic": "",
@@ -196,7 +193,7 @@
     "config.runtime.nonstandardSymbol": "支援非標準的符號。請務必確認你的執行環境支援這些符號。",
     "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/LuaLS/lua-language-server/wiki/Plugins)瞭解用法。",
+    "config.runtime.plugin": "延伸模組路徑,請查閱[文件](https://luals.github.io/wiki/plugins)瞭解用法。",
     "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 字元。",
@@ -212,7 +209,7 @@
     "config.semantic.variable": "對變數/欄位/參數進行語義著色。",
     "config.signatureHelp.enable": "啟用參數提示。",
     "config.spell.dict": "拼寫檢查的自訂單詞。",
-    "config.telemetry.enable": "啟用遙測,透過網路發送你的編輯器資訊與錯誤日誌。在[此處](https://github.com/LuaLS/lua-language-server/wiki/Home#privacy)閱讀我們的隱私聲明。\n",
+    "config.telemetry.enable": "啟用遙測,透過網路發送你的編輯器資訊與錯誤日誌。在[此處](https://luals.github.io/privacy/#language-server)閱讀我們的隱私聲明。\n",
     "config.type.castNumberToInteger": "允許將 `number` 類型賦值給 `integer` 類型。",
     "config.type.weakNilCheck": "When checking the type of union type, ignore the `nil` in it.\n\nWhen this setting is `false`, the `number|nil` type cannot be assigned to the `number` type. It can be with `true`.\n",
     "config.type.weakUnionCheck": "同位類型中只要有一個子類型滿足條件,則同位類型也滿足條件。\n\n此設定為 `false` 時,`number|boolean` 類型無法賦給 `number` 類型;為 `true` 時則可以。\n",
diff --git a/package/build.lua b/package/build.lua
index d6eeb9c..6f85006 100644
--- a/package/build.lua
+++ b/package/build.lua
@@ -1,6 +1,6 @@
 local json = require 'json-beautify'
 
-local VERSION = "3.6.26"
+local VERSION = "3.7.0"
 
 local package = require 'package.package'
 local fsu     = require 'fs-utility'
diff --git a/server b/server
index 666a23e..d912dfc 160000
--- a/server
+++ b/server
@@ -1 +1 @@
-Subproject commit 666a23e85707b73c22e02f620ad40607b18c4676
+Subproject commit d912dfc05636ca113eb074d637905f4b2514229d
diff --git a/setting/schema-pt-br.json b/setting/schema-pt-br.json
index 7cebe3a..57c28b7 100644
--- a/setting/schema-pt-br.json
+++ b/setting/schema-pt-br.json
@@ -239,6 +239,7 @@
                     "global-in-nil-env",
                     "incomplete-signature-doc",
                     "index-in-func-name",
+                    "inject-field",
                     "invisible",
                     "jump-local-scope",
                     "keyword",
@@ -480,7 +481,7 @@
                 },
                 "type-check": {
                     "default": "Fallback",
-                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
+                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* inject-field\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
                     "enum": [
                         "Any",
                         "Opened",
@@ -642,7 +643,7 @@
                 },
                 "type-check": {
                     "default": "Fallback",
-                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
+                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* inject-field\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
                     "enum": [
                         "Error",
                         "Warning",
@@ -1016,6 +1017,19 @@
                     ],
                     "type": "string"
                 },
+                "inject-field": {
+                    "default": "Opened",
+                    "description": "",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Any",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -1864,6 +1878,21 @@
                     ],
                     "type": "string"
                 },
+                "inject-field": {
+                    "default": "Warning",
+                    "description": "",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Warning",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -3078,7 +3107,7 @@
         },
         "runtime.plugin": {
             "default": "",
-            "markdownDescription": "Plugin path. Please read [wiki](https://github.com/LuaLS/lua-language-server/wiki/Plugins) to learn more.",
+            "markdownDescription": "Plugin path. Please read [wiki](https://luals.github.io/wiki/plugins) to learn more.",
             "scope": "resource",
             "type": "string"
         },
diff --git a/setting/schema-zh-cn.json b/setting/schema-zh-cn.json
index bfed12a..53bd9b8 100644
--- a/setting/schema-zh-cn.json
+++ b/setting/schema-zh-cn.json
@@ -239,6 +239,7 @@
                     "global-in-nil-env",
                     "incomplete-signature-doc",
                     "index-in-func-name",
+                    "inject-field",
                     "invisible",
                     "jump-local-scope",
                     "keyword",
@@ -480,7 +481,7 @@
                 },
                 "type-check": {
                     "default": "Fallback",
-                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
+                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* inject-field\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
                     "enum": [
                         "Any",
                         "Opened",
@@ -642,7 +643,7 @@
                 },
                 "type-check": {
                     "default": "Fallback",
-                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
+                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* inject-field\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
                     "enum": [
                         "Error",
                         "Warning",
@@ -1016,6 +1017,19 @@
                     ],
                     "type": "string"
                 },
+                "inject-field": {
+                    "default": "Opened",
+                    "description": "",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Any",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -1864,6 +1878,21 @@
                     ],
                     "type": "string"
                 },
+                "inject-field": {
+                    "default": "Warning",
+                    "description": "",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Warning",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -2731,7 +2760,7 @@
             "items": {
                 "type": "string"
             },
-            "markdownDescription": "VSCode中启动语言服务时的[命令行参数](https://github.com/LuaLS/lua-language-server/wiki/Getting-Started#arguments)。",
+            "markdownDescription": "VSCode中启动语言服务时的[命令行参数](https://luals.github.io/wiki/usage#arguments)。",
             "scope": "resource",
             "type": "array"
         },
@@ -3078,7 +3107,7 @@
         },
         "runtime.plugin": {
             "default": "",
-            "markdownDescription": "插件路径,请查阅[文档](https://github.com/LuaLS/lua-language-server/wiki/Plugins)了解用法。",
+            "markdownDescription": "插件路径,请查阅[文档](https://luals.github.io/wiki/plugins)了解用法。",
             "scope": "resource",
             "type": "string"
         },
diff --git a/setting/schema-zh-tw.json b/setting/schema-zh-tw.json
index 5a6faaf..e89d37a 100644
--- a/setting/schema-zh-tw.json
+++ b/setting/schema-zh-tw.json
@@ -239,6 +239,7 @@
                     "global-in-nil-env",
                     "incomplete-signature-doc",
                     "index-in-func-name",
+                    "inject-field",
                     "invisible",
                     "jump-local-scope",
                     "keyword",
@@ -480,7 +481,7 @@
                 },
                 "type-check": {
                     "default": "Fallback",
-                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
+                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* inject-field\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
                     "enum": [
                         "Any",
                         "Opened",
@@ -642,7 +643,7 @@
                 },
                 "type-check": {
                     "default": "Fallback",
-                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
+                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* inject-field\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
                     "enum": [
                         "Error",
                         "Warning",
@@ -1016,6 +1017,19 @@
                     ],
                     "type": "string"
                 },
+                "inject-field": {
+                    "default": "Opened",
+                    "description": "",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Any",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -1864,6 +1878,21 @@
                     ],
                     "type": "string"
                 },
+                "inject-field": {
+                    "default": "Warning",
+                    "description": "",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Warning",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -2731,7 +2760,7 @@
             "items": {
                 "type": "string"
             },
-            "markdownDescription": "VSCode中啟動語言伺服時的[命令列參數](https://github.com/LuaLS/lua-language-server/wiki/Getting-Started#arguments)。",
+            "markdownDescription": "VSCode中啟動語言伺服時的[命令列參數](https://luals.github.io/wiki/usage#arguments)。",
             "scope": "resource",
             "type": "array"
         },
@@ -3078,7 +3107,7 @@
         },
         "runtime.plugin": {
             "default": "",
-            "markdownDescription": "延伸模組路徑,請查閱[文件](https://github.com/LuaLS/lua-language-server/wiki/Plugins)瞭解用法。",
+            "markdownDescription": "延伸模組路徑,請查閱[文件](https://luals.github.io/wiki/plugins)瞭解用法。",
             "scope": "resource",
             "type": "string"
         },
diff --git a/setting/schema.json b/setting/schema.json
index b5a89a5..41cc054 100644
--- a/setting/schema.json
+++ b/setting/schema.json
@@ -239,6 +239,7 @@
                     "global-in-nil-env",
                     "incomplete-signature-doc",
                     "index-in-func-name",
+                    "inject-field",
                     "invisible",
                     "jump-local-scope",
                     "keyword",
@@ -480,7 +481,7 @@
                 },
                 "type-check": {
                     "default": "Fallback",
-                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
+                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* inject-field\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
                     "enum": [
                         "Any",
                         "Opened",
@@ -642,7 +643,7 @@
                 },
                 "type-check": {
                     "default": "Fallback",
-                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
+                    "description": "* assign-type-mismatch\n* cast-local-type\n* cast-type-mismatch\n* inject-field\n* need-check-nil\n* param-type-mismatch\n* return-type-mismatch\n* undefined-field",
                     "enum": [
                         "Error",
                         "Warning",
@@ -1016,6 +1017,19 @@
                     ],
                     "type": "string"
                 },
+                "inject-field": {
+                    "default": "Opened",
+                    "description": "",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Any",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -1864,6 +1878,21 @@
                     ],
                     "type": "string"
                 },
+                "inject-field": {
+                    "default": "Warning",
+                    "description": "",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Warning",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -3078,7 +3107,7 @@
         },
         "runtime.plugin": {
             "default": "",
-            "markdownDescription": "Plugin path. Please read [wiki](https://github.com/LuaLS/lua-language-server/wiki/Plugins) to learn more.",
+            "markdownDescription": "Plugin path. Please read [wiki](https://luals.github.io/wiki/plugins) to learn more.",
             "scope": "resource",
             "type": "string"
         },
-- 
GitLab