From 249fd6285792b5c11410b98aaaeca2fafaa8ecab 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: Wed, 26 Apr 2023 14:21:01 +0800
Subject: [PATCH] 3.6.19

---
 .vscode/settings.json     |   3 +-
 README.md                 |  37 +++++--------
 changelog.md              |  15 +++++
 package.json              | 112 ++++++++++++++++++++++++++++++++++++-
 package.nls.json          |   6 +-
 package.nls.pt-br.json    |   6 +-
 package.nls.zh-cn.json    |   6 +-
 package.nls.zh-tw.json    |   6 +-
 package/build.lua         |   2 +-
 server                    |   2 +-
 setting/schema-pt-br.json | 114 +++++++++++++++++++++++++++++++++++++-
 setting/schema-zh-cn.json | 114 +++++++++++++++++++++++++++++++++++++-
 setting/schema-zh-tw.json | 114 +++++++++++++++++++++++++++++++++++++-
 setting/schema.json       | 114 +++++++++++++++++++++++++++++++++++++-
 14 files changed, 611 insertions(+), 40 deletions(-)

diff --git a/.vscode/settings.json b/.vscode/settings.json
index d611641..d58da98 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -2,5 +2,6 @@
     "Lua.runtime.version": "Lua 5.4",
     "Lua.workspace.library": {
         "server/script-beta": true
-    }
+    },
+    "Lua.workspace.checkThirdParty": false
 }
diff --git a/README.md b/README.md
index db6c8d3..14ef9e8 100644
--- a/README.md
+++ b/README.md
@@ -12,6 +12,7 @@ The Lua language server provides various language features for Lua to make devel
 
 ## 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
 - ↪ Go to definition
 - 🦺 Dynamic [type checking](https://github.com/LuaLS/lua-language-server/wiki/Type-Checking)
@@ -28,29 +29,29 @@ The Lua language server provides various language features for Lua to make devel
 - 📖 [Documentation Generation](https://github.com/LuaLS/lua-language-server/wiki/Export-Documentation)
 
 ## Install
-
-The language server can easily be installed for use in VS Code, but it can also be used by other clients using the command line.
+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).
 
-![](https://github.com/LuaLS/vscode-lua/raw/master/images//Install%20In%20VSCode.gif)
+### 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).
 
 ### 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)
 
-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 NeoVim and [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/).
+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/).
 
-## Supported Lua Versions
-| Version |   Supported    |
-| :-----: | :------------: |
-| Lua 5.1 | ![✅][checkmark] |
-| Lua 5.2 | ![✅][checkmark] |
-| Lua 5.3 | ![✅][checkmark] |
-| Lua 5.4 | ![✅][checkmark] |
-| LuaJIT  | ![✅][checkmark] |
+### Community Install Methods
+The install methods below are maintained by community members.
+
+[asdf plugin](https://github.com/bellini666/asdf-lua-language-server)
 
 ## Links
 - [Changelog](https://github.com/LuaLS/lua-language-server/blob/master/changelog.md)
@@ -82,15 +83,6 @@ Are you able to [provide a translation](https://github.com/LuaLS/lua-language-se
 
 Thank you to [all contributors of translations](https://github.com/LuaLS/lua-language-server/commits/master/locale)!
 
-## Configuration
-Configuration of the server can be done in a number of ways, which are explained more in-depth in the [wiki](https://github.com/LuaLS/lua-language-server/wiki/Configuration-File).
-
-### Visual Studio Code
-You can use the [settings editor](https://code.visualstudio.com/docs/getstarted/settings#_settings-editor) or edit the [raw JSON file](https://code.visualstudio.com/docs/getstarted/settings#_settingsjson).
-
-### Other
-See the [configuration file wiki page](https://github.com/LuaLS/lua-language-server/wiki/Configuration-File).
-
 
 ## 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.
@@ -116,6 +108,3 @@ Software that the language server (or the development of it) uses:
 * [json.lua](https://github.com/actboy168/json.lua)
 * [EmmyLuaCodeStyle](https://github.com/CppCXY/EmmyLuaCodeStyle)
 * [inspect.lua](https://github.com/kikito/inspect.lua)
-
-
-[checkmark]: https://user-images.githubusercontent.com/61925890/183228083-d3aa4eca-30c7-4b9f-aaab-26ce3d8a14fb.png
diff --git a/changelog.md b/changelog.md
index 84815b7..0a01507 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,20 @@
 # changelog
 
+## 3.6.19
+`2023-4-26`
+* `FIX` commandline parameter `checklevel` may not work
+* `FIX` [#2036]
+* `FIX` [#2037]
+* `FIX` [#2056]
+* `FIX` [#2077]
+* `FIX` [#2081]
+
+[#2036]: https://github.com/LuaLS/lua-language-server/issues/2036
+[#2037]: https://github.com/LuaLS/lua-language-server/issues/2037
+[#2056]: https://github.com/LuaLS/lua-language-server/issues/2056
+[#2077]: https://github.com/LuaLS/lua-language-server/issues/2077
+[#2081]: https://github.com/LuaLS/lua-language-server/issues/2081
+
 ## 3.6.18
 `2023-3-23`
 * `FIX` [#1943]
diff --git a/package.json b/package.json
index 081be7e..920598e 100644
--- a/package.json
+++ b/package.json
@@ -177,7 +177,9 @@
 							"err-nonstandard-symbol",
 							"err-then-as-do",
 							"exp-in-action",
+							"global-element",
 							"global-in-nil-env",
+							"incomplete-signature-doc",
 							"index-in-func-name",
 							"invisible",
 							"jump-local-scope",
@@ -222,6 +224,7 @@
 							"miss-sep-in-table",
 							"miss-space-between",
 							"miss-symbol",
+							"missing-global-doc",
 							"missing-parameter",
 							"missing-return",
 							"missing-return-value",
@@ -337,6 +340,17 @@
 							],
 							"type": "string"
 						},
+						"conventions": {
+							"default": "Fallback",
+							"description": "%config.diagnostics.conventions%",
+							"enum": [
+								"Any",
+								"Opened",
+								"None",
+								"Fallback"
+							],
+							"type": "string"
+						},
 						"duplicate": {
 							"default": "Fallback",
 							"description": "%config.diagnostics.duplicate%",
@@ -481,6 +495,18 @@
 							],
 							"type": "string"
 						},
+						"conventions": {
+							"default": "Fallback",
+							"description": "%config.diagnostics.conventions%",
+							"enum": [
+								"Error",
+								"Warning",
+								"Information",
+								"Hint",
+								"Fallback"
+							],
+							"type": "string"
+						},
 						"duplicate": {
 							"default": "Fallback",
 							"description": "%config.diagnostics.duplicate%",
@@ -890,6 +916,19 @@
 							],
 							"type": "string"
 						},
+						"global-element": {
+							"default": "None",
+							"description": "%config.diagnostics.global-element%",
+							"enum": [
+								"Any",
+								"Opened",
+								"None",
+								"Any!",
+								"Opened!",
+								"None!"
+							],
+							"type": "string"
+						},
 						"global-in-nil-env": {
 							"default": "Any",
 							"description": "%config.diagnostics.global-in-nil-env%",
@@ -903,6 +942,19 @@
 							],
 							"type": "string"
 						},
+						"incomplete-signature-doc": {
+							"default": "None",
+							"description": "%config.diagnostics.incomplete-signature-doc%",
+							"enum": [
+								"Any",
+								"Opened",
+								"None",
+								"Any!",
+								"Opened!",
+								"None!"
+							],
+							"type": "string"
+						},
 						"invisible": {
 							"default": "Any",
 							"description": "%config.diagnostics.invisible%",
@@ -929,6 +981,19 @@
 							],
 							"type": "string"
 						},
+						"missing-global-doc": {
+							"default": "None",
+							"description": "%config.diagnostics.missing-global-doc%",
+							"enum": [
+								"Any",
+								"Opened",
+								"None",
+								"Any!",
+								"Opened!",
+								"None!"
+							],
+							"type": "string"
+						},
 						"missing-parameter": {
 							"default": "Any",
 							"description": "%config.diagnostics.missing-parameter%",
@@ -1654,6 +1719,21 @@
 							],
 							"type": "string"
 						},
+						"global-element": {
+							"default": "Warning",
+							"description": "%config.diagnostics.global-element%",
+							"enum": [
+								"Error",
+								"Warning",
+								"Information",
+								"Hint",
+								"Error!",
+								"Warning!",
+								"Information!",
+								"Hint!"
+							],
+							"type": "string"
+						},
 						"global-in-nil-env": {
 							"default": "Warning",
 							"description": "%config.diagnostics.global-in-nil-env%",
@@ -1669,6 +1749,21 @@
 							],
 							"type": "string"
 						},
+						"incomplete-signature-doc": {
+							"default": "Warning",
+							"description": "%config.diagnostics.incomplete-signature-doc%",
+							"enum": [
+								"Error",
+								"Warning",
+								"Information",
+								"Hint",
+								"Error!",
+								"Warning!",
+								"Information!",
+								"Hint!"
+							],
+							"type": "string"
+						},
 						"invisible": {
 							"default": "Warning",
 							"description": "%config.diagnostics.invisible%",
@@ -1699,6 +1794,21 @@
 							],
 							"type": "string"
 						},
+						"missing-global-doc": {
+							"default": "Warning",
+							"description": "%config.diagnostics.missing-global-doc%",
+							"enum": [
+								"Error",
+								"Warning",
+								"Information",
+								"Hint",
+								"Error!",
+								"Warning!",
+								"Information!",
+								"Hint!"
+							],
+							"type": "string"
+						},
 						"missing-parameter": {
 							"default": "Warning",
 							"description": "%config.diagnostics.missing-parameter%",
@@ -3070,5 +3180,5 @@
 	"sponsor": {
 		"url": "https://github.com/LuaLS/lua-language-server/issues/484"
 	},
-	"version": "3.6.18"
+	"version": "3.6.19"
 }
diff --git a/package.nls.json b/package.nls.json
index d91ebd5..b17d8bb 100644
--- a/package.nls.json
+++ b/package.nls.json
@@ -46,6 +46,7 @@
     "config.diagnostics.code-after-break": "Enable diagnostics for code placed after a break statement in a loop.",
     "config.diagnostics.codestyle": "* codestyle-check\n* spell-check",
     "config.diagnostics.codestyle-check": "Enable diagnostics for incorrectly styled lines.",
+    "config.diagnostics.conventions": "* global-element",
     "config.diagnostics.count-down-loop": "Enable diagnostics for `for` loops which will never reach their max/limit because the loop is incrementing instead of decrementing.",
     "config.diagnostics.deprecated": "Enable diagnostics to highlight deprecated API.",
     "config.diagnostics.different-requires": "Enable diagnostics for files which are required by two different paths.",
@@ -62,6 +63,7 @@
     "config.diagnostics.empty-block": "Enable empty code block diagnostics.",
     "config.diagnostics.enable": "Enable diagnostics.",
     "config.diagnostics.global": "* global-in-nil-env\n* lowercase-global\n* undefined-env-child\n* undefined-global",
+    "config.diagnostics.global-element": "Enable diagnostics to warn about global elements.",
     "config.diagnostics.global-in-nil-env": "Enable cannot use global variables ( `_ENV` is set to `nil`) diagnostics.",
     "config.diagnostics.globals": "Defined global variables.",
     "config.diagnostics.groupFileStatus": "Modify the diagnostic needed file status in a group.\n\n* Opened:  only diagnose opened files\n* Any:     diagnose all files\n* None:    disable this diagnostic\n\n`Fallback` means that diagnostics in this group are controlled by `diagnostics.neededFileStatus` separately.\nOther settings will override individual settings without end of `!`.\n",
@@ -70,13 +72,15 @@
     "config.diagnostics.ignoredFiles.Disable": "These files are not diagnosed.",
     "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.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.",
     "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": "* 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* incomplete-signature-doc\n* missing-global-doc\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.missing-global-doc": "Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.",
     "config.diagnostics.missing-parameter": "Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.",
     "config.diagnostics.missing-return": "Enable diagnostics for functions with return annotations which have no return statement.",
     "config.diagnostics.missing-return-value": "Enable diagnostics for return statements without values although the containing function declares returns.",
diff --git a/package.nls.pt-br.json b/package.nls.pt-br.json
index 9613e1a..cbbb5dd 100644
--- a/package.nls.pt-br.json
+++ b/package.nls.pt-br.json
@@ -46,6 +46,7 @@
     "config.diagnostics.code-after-break": "Enable diagnostics for code placed after a break statement in a loop.",
     "config.diagnostics.codestyle": "* codestyle-check\n* spell-check",
     "config.diagnostics.codestyle-check": "Enable diagnostics for incorrectly styled lines.",
+    "config.diagnostics.conventions": "* global-element",
     "config.diagnostics.count-down-loop": "Enable diagnostics for `for` loops which will never reach their max/limit because the loop is incrementing instead of decrementing.",
     "config.diagnostics.deprecated": "Enable diagnostics to highlight deprecated API.",
     "config.diagnostics.different-requires": "Enable diagnostics for files which are required by two different paths.",
@@ -62,6 +63,7 @@
     "config.diagnostics.empty-block": "空代码块",
     "config.diagnostics.enable": "Enable diagnostics.",
     "config.diagnostics.global": "* global-in-nil-env\n* lowercase-global\n* undefined-env-child\n* undefined-global",
+    "config.diagnostics.global-element": "Enable diagnostics to warn about global elements.",
     "config.diagnostics.global-in-nil-env": "不能使用全局变量( `_ENV` 被设置为了 `nil`)",
     "config.diagnostics.globals": "Defined global variables.",
     "config.diagnostics.groupFileStatus": "Modify the diagnostic needed file status in a group.\n\n* Opened:  only diagnose opened files\n* Any:     diagnose all files\n* None:    disable this diagnostic\n\n`Fallback` means that diagnostics in this group are controlled by `diagnostics.neededFileStatus` separately.\nOther settings will override individual settings without end of `!`.\n",
@@ -70,13 +72,15 @@
     "config.diagnostics.ignoredFiles.Disable": "These files are not diagnosed.",
     "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.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.",
     "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": "* 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* incomplete-signature-doc\n* missing-global-doc\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.missing-global-doc": "Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.",
     "config.diagnostics.missing-parameter": "Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.",
     "config.diagnostics.missing-return": "Enable diagnostics for functions with return annotations which have no return statement.",
     "config.diagnostics.missing-return-value": "Enable diagnostics for return statements without values although the containing function declares returns.",
diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json
index dc97eea..7f2ce38 100644
--- a/package.nls.zh-cn.json
+++ b/package.nls.zh-cn.json
@@ -46,6 +46,7 @@
     "config.diagnostics.code-after-break": "Enable diagnostics for code placed after a break statement in a loop.",
     "config.diagnostics.codestyle": "* codestyle-check\n* spell-check",
     "config.diagnostics.codestyle-check": "Enable diagnostics for incorrectly styled lines.",
+    "config.diagnostics.conventions": "* global-element",
     "config.diagnostics.count-down-loop": "Enable diagnostics for `for` loops which will never reach their max/limit because the loop is incrementing instead of decrementing.",
     "config.diagnostics.deprecated": "Enable diagnostics to highlight deprecated API.",
     "config.diagnostics.different-requires": "Enable diagnostics for files which are required by two different paths.",
@@ -62,6 +63,7 @@
     "config.diagnostics.empty-block": "空代码块",
     "config.diagnostics.enable": "启用诊断。",
     "config.diagnostics.global": "* global-in-nil-env\n* lowercase-global\n* undefined-env-child\n* undefined-global",
+    "config.diagnostics.global-element": "Enable diagnostics to warn about global elements.",
     "config.diagnostics.global-in-nil-env": "不能使用全局变量( `_ENV` 被设置为了 `nil`)",
     "config.diagnostics.globals": "已定义的全局变量。",
     "config.diagnostics.groupFileStatus": "批量修改一个组中的文件状态。\n\n* Opened:  只诊断打开的文件\n* Any:     诊断任何文件\n* None:    禁用此诊断\n\n设置为 `Fallback` 意味着组中的诊断由 `diagnostics.neededFileStatus` 单独设置。\n其他设置将覆盖单独设置,但是不会覆盖以 `!` 结尾的设置。\n",
@@ -70,13 +72,15 @@
     "config.diagnostics.ignoredFiles.Disable": "不诊断这些文件。",
     "config.diagnostics.ignoredFiles.Enable": "总是诊断这些文件。",
     "config.diagnostics.ignoredFiles.Opened": "只有打开这些文件时才会诊断。",
+    "config.diagnostics.incomplete-signature-doc": "Incomplete @param or @return annotations for functions.",
     "config.diagnostics.invisible": "Enable diagnostics for accesses to fields which are invisible.",
     "config.diagnostics.libraryFiles": "如何诊断通过 `Lua.workspace.library` 加载的文件。",
     "config.diagnostics.libraryFiles.Disable": "不诊断这些文件。",
     "config.diagnostics.libraryFiles.Enable": "总是诊断这些文件。",
     "config.diagnostics.libraryFiles.Opened": "只有打开这些文件时才会诊断。",
     "config.diagnostics.lowercase-global": "首字母小写的全局变量定义",
-    "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.luadoc": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* incomplete-signature-doc\n* missing-global-doc\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.missing-global-doc": "Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.",
     "config.diagnostics.missing-parameter": "Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.",
     "config.diagnostics.missing-return": "Enable diagnostics for functions with return annotations which have no return statement.",
     "config.diagnostics.missing-return-value": "Enable diagnostics for return statements without values although the containing function declares returns.",
diff --git a/package.nls.zh-tw.json b/package.nls.zh-tw.json
index 762e661..6af689b 100644
--- a/package.nls.zh-tw.json
+++ b/package.nls.zh-tw.json
@@ -46,6 +46,7 @@
     "config.diagnostics.code-after-break": "Enable diagnostics for code placed after a break statement in a loop.",
     "config.diagnostics.codestyle": "* codestyle-check\n* spell-check",
     "config.diagnostics.codestyle-check": "Enable diagnostics for incorrectly styled lines.",
+    "config.diagnostics.conventions": "* global-element",
     "config.diagnostics.count-down-loop": "Enable diagnostics for `for` loops which will never reach their max/limit because the loop is incrementing instead of decrementing.",
     "config.diagnostics.deprecated": "Enable diagnostics to highlight deprecated API.",
     "config.diagnostics.different-requires": "Enable diagnostics for files which are required by two different paths.",
@@ -62,6 +63,7 @@
     "config.diagnostics.empty-block": "空程式碼區塊",
     "config.diagnostics.enable": "啟用診斷。",
     "config.diagnostics.global": "* global-in-nil-env\n* lowercase-global\n* undefined-env-child\n* undefined-global",
+    "config.diagnostics.global-element": "Enable diagnostics to warn about global elements.",
     "config.diagnostics.global-in-nil-env": "不能使用全域變數( `_ENV` 被設定為 `nil`)",
     "config.diagnostics.globals": "已定義的全域變數。",
     "config.diagnostics.groupFileStatus": "批量修改一個組中的檔案狀態。\n\n* Opened:  只診斷打開的檔案\n* Any:     診斷所有檔案\n* None:    停用此診斷\n\n設定為 `Fallback` 意味著組中的診斷由 `diagnostics.neededFileStatus` 單獨設定。\n其他設定將覆蓋單獨設定,但是不會覆蓋以 `!` 結尾的設定。\n",
@@ -70,13 +72,15 @@
     "config.diagnostics.ignoredFiles.Disable": "不診斷這些檔案。",
     "config.diagnostics.ignoredFiles.Enable": "總是診斷這些檔案。",
     "config.diagnostics.ignoredFiles.Opened": "只有打開這些檔案時才會診斷。",
+    "config.diagnostics.incomplete-signature-doc": "Incomplete @param or @return annotations for functions.",
     "config.diagnostics.invisible": "Enable diagnostics for accesses to fields which are invisible.",
     "config.diagnostics.libraryFiles": "如何診斷透過 `Lua.workspace.library` 載入的檔案。",
     "config.diagnostics.libraryFiles.Disable": "不診斷這些檔案。",
     "config.diagnostics.libraryFiles.Enable": "總是診斷這些檔案。",
     "config.diagnostics.libraryFiles.Opened": "只有打開這些檔案時才會診斷。",
     "config.diagnostics.lowercase-global": "首字母小寫的全域變數定義",
-    "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.luadoc": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* incomplete-signature-doc\n* missing-global-doc\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.missing-global-doc": "Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.",
     "config.diagnostics.missing-parameter": "Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.",
     "config.diagnostics.missing-return": "Enable diagnostics for functions with return annotations which have no return statement.",
     "config.diagnostics.missing-return-value": "Enable diagnostics for return statements without values although the containing function declares returns.",
diff --git a/package/build.lua b/package/build.lua
index 1a227e8..de4a508 100644
--- a/package/build.lua
+++ b/package/build.lua
@@ -1,6 +1,6 @@
 local json = require 'json-beautify'
 
-local VERSION = "3.6.18"
+local VERSION = "3.6.19"
 
 local package = require 'package.package'
 local fsu     = require 'fs-utility'
diff --git a/server b/server
index f3ef989..19906a9 160000
--- a/server
+++ b/server
@@ -1 +1 @@
-Subproject commit f3ef9893f2a16e8ddcd2efe15190c793d0448ae5
+Subproject commit 19906a977c517b1e6edfd3ada60e20b2f9179e43
diff --git a/setting/schema-pt-br.json b/setting/schema-pt-br.json
index 7b9d9f2..5d82f03 100644
--- a/setting/schema-pt-br.json
+++ b/setting/schema-pt-br.json
@@ -235,7 +235,9 @@
                     "err-nonstandard-symbol",
                     "err-then-as-do",
                     "exp-in-action",
+                    "global-element",
                     "global-in-nil-env",
+                    "incomplete-signature-doc",
                     "index-in-func-name",
                     "invisible",
                     "jump-local-scope",
@@ -280,6 +282,7 @@
                     "miss-sep-in-table",
                     "miss-space-between",
                     "miss-symbol",
+                    "missing-global-doc",
                     "missing-parameter",
                     "missing-return",
                     "missing-return-value",
@@ -395,6 +398,17 @@
                     ],
                     "type": "string"
                 },
+                "conventions": {
+                    "default": "Fallback",
+                    "description": "* global-element",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Fallback"
+                    ],
+                    "type": "string"
+                },
                 "duplicate": {
                     "default": "Fallback",
                     "description": "* duplicate-index\n* duplicate-set-field",
@@ -419,7 +433,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "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",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* incomplete-signature-doc\n* missing-global-doc\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",
@@ -539,6 +553,18 @@
                     ],
                     "type": "string"
                 },
+                "conventions": {
+                    "default": "Fallback",
+                    "description": "* global-element",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Fallback"
+                    ],
+                    "type": "string"
+                },
                 "duplicate": {
                     "default": "Fallback",
                     "description": "* duplicate-index\n* duplicate-set-field",
@@ -565,7 +591,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "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",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* incomplete-signature-doc\n* missing-global-doc\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",
@@ -948,6 +974,19 @@
                     ],
                     "type": "string"
                 },
+                "global-element": {
+                    "default": "None",
+                    "description": "Enable diagnostics to warn about global elements.",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "global-in-nil-env": {
                     "default": "Any",
                     "description": "不能使用全局变量( `_ENV` 被设置为了 `nil`)",
@@ -961,6 +1000,19 @@
                     ],
                     "type": "string"
                 },
+                "incomplete-signature-doc": {
+                    "default": "None",
+                    "description": "Incomplete @param or @return annotations for functions.",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Any",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -987,6 +1039,19 @@
                     ],
                     "type": "string"
                 },
+                "missing-global-doc": {
+                    "default": "None",
+                    "description": "Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "missing-parameter": {
                     "default": "Any",
                     "description": "Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.",
@@ -1712,6 +1777,21 @@
                     ],
                     "type": "string"
                 },
+                "global-element": {
+                    "default": "Warning",
+                    "description": "Enable diagnostics to warn about global elements.",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "global-in-nil-env": {
                     "default": "Warning",
                     "description": "不能使用全局变量( `_ENV` 被设置为了 `nil`)",
@@ -1727,6 +1807,21 @@
                     ],
                     "type": "string"
                 },
+                "incomplete-signature-doc": {
+                    "default": "Warning",
+                    "description": "Incomplete @param or @return annotations for functions.",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Warning",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -1757,6 +1852,21 @@
                     ],
                     "type": "string"
                 },
+                "missing-global-doc": {
+                    "default": "Warning",
+                    "description": "Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "missing-parameter": {
                     "default": "Warning",
                     "description": "Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.",
diff --git a/setting/schema-zh-cn.json b/setting/schema-zh-cn.json
index 4c5f4ba..e6707d7 100644
--- a/setting/schema-zh-cn.json
+++ b/setting/schema-zh-cn.json
@@ -235,7 +235,9 @@
                     "err-nonstandard-symbol",
                     "err-then-as-do",
                     "exp-in-action",
+                    "global-element",
                     "global-in-nil-env",
+                    "incomplete-signature-doc",
                     "index-in-func-name",
                     "invisible",
                     "jump-local-scope",
@@ -280,6 +282,7 @@
                     "miss-sep-in-table",
                     "miss-space-between",
                     "miss-symbol",
+                    "missing-global-doc",
                     "missing-parameter",
                     "missing-return",
                     "missing-return-value",
@@ -395,6 +398,17 @@
                     ],
                     "type": "string"
                 },
+                "conventions": {
+                    "default": "Fallback",
+                    "description": "* global-element",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Fallback"
+                    ],
+                    "type": "string"
+                },
                 "duplicate": {
                     "default": "Fallback",
                     "description": "* duplicate-index\n* duplicate-set-field",
@@ -419,7 +433,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "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",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* incomplete-signature-doc\n* missing-global-doc\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",
@@ -539,6 +553,18 @@
                     ],
                     "type": "string"
                 },
+                "conventions": {
+                    "default": "Fallback",
+                    "description": "* global-element",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Fallback"
+                    ],
+                    "type": "string"
+                },
                 "duplicate": {
                     "default": "Fallback",
                     "description": "* duplicate-index\n* duplicate-set-field",
@@ -565,7 +591,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "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",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* incomplete-signature-doc\n* missing-global-doc\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",
@@ -948,6 +974,19 @@
                     ],
                     "type": "string"
                 },
+                "global-element": {
+                    "default": "None",
+                    "description": "Enable diagnostics to warn about global elements.",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "global-in-nil-env": {
                     "default": "Any",
                     "description": "不能使用全局变量( `_ENV` 被设置为了 `nil`)",
@@ -961,6 +1000,19 @@
                     ],
                     "type": "string"
                 },
+                "incomplete-signature-doc": {
+                    "default": "None",
+                    "description": "Incomplete @param or @return annotations for functions.",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Any",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -987,6 +1039,19 @@
                     ],
                     "type": "string"
                 },
+                "missing-global-doc": {
+                    "default": "None",
+                    "description": "Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "missing-parameter": {
                     "default": "Any",
                     "description": "Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.",
@@ -1712,6 +1777,21 @@
                     ],
                     "type": "string"
                 },
+                "global-element": {
+                    "default": "Warning",
+                    "description": "Enable diagnostics to warn about global elements.",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "global-in-nil-env": {
                     "default": "Warning",
                     "description": "不能使用全局变量( `_ENV` 被设置为了 `nil`)",
@@ -1727,6 +1807,21 @@
                     ],
                     "type": "string"
                 },
+                "incomplete-signature-doc": {
+                    "default": "Warning",
+                    "description": "Incomplete @param or @return annotations for functions.",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Warning",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -1757,6 +1852,21 @@
                     ],
                     "type": "string"
                 },
+                "missing-global-doc": {
+                    "default": "Warning",
+                    "description": "Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "missing-parameter": {
                     "default": "Warning",
                     "description": "Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.",
diff --git a/setting/schema-zh-tw.json b/setting/schema-zh-tw.json
index 278214d..26e85f6 100644
--- a/setting/schema-zh-tw.json
+++ b/setting/schema-zh-tw.json
@@ -235,7 +235,9 @@
                     "err-nonstandard-symbol",
                     "err-then-as-do",
                     "exp-in-action",
+                    "global-element",
                     "global-in-nil-env",
+                    "incomplete-signature-doc",
                     "index-in-func-name",
                     "invisible",
                     "jump-local-scope",
@@ -280,6 +282,7 @@
                     "miss-sep-in-table",
                     "miss-space-between",
                     "miss-symbol",
+                    "missing-global-doc",
                     "missing-parameter",
                     "missing-return",
                     "missing-return-value",
@@ -395,6 +398,17 @@
                     ],
                     "type": "string"
                 },
+                "conventions": {
+                    "default": "Fallback",
+                    "description": "* global-element",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Fallback"
+                    ],
+                    "type": "string"
+                },
                 "duplicate": {
                     "default": "Fallback",
                     "description": "* duplicate-index\n* duplicate-set-field",
@@ -419,7 +433,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "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",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* incomplete-signature-doc\n* missing-global-doc\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",
@@ -539,6 +553,18 @@
                     ],
                     "type": "string"
                 },
+                "conventions": {
+                    "default": "Fallback",
+                    "description": "* global-element",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Fallback"
+                    ],
+                    "type": "string"
+                },
                 "duplicate": {
                     "default": "Fallback",
                     "description": "* duplicate-index\n* duplicate-set-field",
@@ -565,7 +591,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "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",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* incomplete-signature-doc\n* missing-global-doc\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",
@@ -948,6 +974,19 @@
                     ],
                     "type": "string"
                 },
+                "global-element": {
+                    "default": "None",
+                    "description": "Enable diagnostics to warn about global elements.",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "global-in-nil-env": {
                     "default": "Any",
                     "description": "不能使用全域變數( `_ENV` 被設定為 `nil`)",
@@ -961,6 +1000,19 @@
                     ],
                     "type": "string"
                 },
+                "incomplete-signature-doc": {
+                    "default": "None",
+                    "description": "Incomplete @param or @return annotations for functions.",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Any",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -987,6 +1039,19 @@
                     ],
                     "type": "string"
                 },
+                "missing-global-doc": {
+                    "default": "None",
+                    "description": "Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "missing-parameter": {
                     "default": "Any",
                     "description": "Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.",
@@ -1712,6 +1777,21 @@
                     ],
                     "type": "string"
                 },
+                "global-element": {
+                    "default": "Warning",
+                    "description": "Enable diagnostics to warn about global elements.",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "global-in-nil-env": {
                     "default": "Warning",
                     "description": "不能使用全域變數( `_ENV` 被設定為 `nil`)",
@@ -1727,6 +1807,21 @@
                     ],
                     "type": "string"
                 },
+                "incomplete-signature-doc": {
+                    "default": "Warning",
+                    "description": "Incomplete @param or @return annotations for functions.",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Warning",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -1757,6 +1852,21 @@
                     ],
                     "type": "string"
                 },
+                "missing-global-doc": {
+                    "default": "Warning",
+                    "description": "Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "missing-parameter": {
                     "default": "Warning",
                     "description": "Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.",
diff --git a/setting/schema.json b/setting/schema.json
index 75ca47f..bd0f953 100644
--- a/setting/schema.json
+++ b/setting/schema.json
@@ -235,7 +235,9 @@
                     "err-nonstandard-symbol",
                     "err-then-as-do",
                     "exp-in-action",
+                    "global-element",
                     "global-in-nil-env",
+                    "incomplete-signature-doc",
                     "index-in-func-name",
                     "invisible",
                     "jump-local-scope",
@@ -280,6 +282,7 @@
                     "miss-sep-in-table",
                     "miss-space-between",
                     "miss-symbol",
+                    "missing-global-doc",
                     "missing-parameter",
                     "missing-return",
                     "missing-return-value",
@@ -395,6 +398,17 @@
                     ],
                     "type": "string"
                 },
+                "conventions": {
+                    "default": "Fallback",
+                    "description": "* global-element",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Fallback"
+                    ],
+                    "type": "string"
+                },
                 "duplicate": {
                     "default": "Fallback",
                     "description": "* duplicate-index\n* duplicate-set-field",
@@ -419,7 +433,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "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",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* incomplete-signature-doc\n* missing-global-doc\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",
@@ -539,6 +553,18 @@
                     ],
                     "type": "string"
                 },
+                "conventions": {
+                    "default": "Fallback",
+                    "description": "* global-element",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Fallback"
+                    ],
+                    "type": "string"
+                },
                 "duplicate": {
                     "default": "Fallback",
                     "description": "* duplicate-index\n* duplicate-set-field",
@@ -565,7 +591,7 @@
                 },
                 "luadoc": {
                     "default": "Fallback",
-                    "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",
+                    "description": "* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* incomplete-signature-doc\n* missing-global-doc\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",
@@ -948,6 +974,19 @@
                     ],
                     "type": "string"
                 },
+                "global-element": {
+                    "default": "None",
+                    "description": "Enable diagnostics to warn about global elements.",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "global-in-nil-env": {
                     "default": "Any",
                     "description": "Enable cannot use global variables ( `_ENV` is set to `nil`) diagnostics.",
@@ -961,6 +1000,19 @@
                     ],
                     "type": "string"
                 },
+                "incomplete-signature-doc": {
+                    "default": "None",
+                    "description": "Incomplete @param or @return annotations for functions.",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Any",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -987,6 +1039,19 @@
                     ],
                     "type": "string"
                 },
+                "missing-global-doc": {
+                    "default": "None",
+                    "description": "Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.",
+                    "enum": [
+                        "Any",
+                        "Opened",
+                        "None",
+                        "Any!",
+                        "Opened!",
+                        "None!"
+                    ],
+                    "type": "string"
+                },
                 "missing-parameter": {
                     "default": "Any",
                     "description": "Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.",
@@ -1712,6 +1777,21 @@
                     ],
                     "type": "string"
                 },
+                "global-element": {
+                    "default": "Warning",
+                    "description": "Enable diagnostics to warn about global elements.",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "global-in-nil-env": {
                     "default": "Warning",
                     "description": "Enable cannot use global variables ( `_ENV` is set to `nil`) diagnostics.",
@@ -1727,6 +1807,21 @@
                     ],
                     "type": "string"
                 },
+                "incomplete-signature-doc": {
+                    "default": "Warning",
+                    "description": "Incomplete @param or @return annotations for functions.",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "invisible": {
                     "default": "Warning",
                     "description": "Enable diagnostics for accesses to fields which are invisible.",
@@ -1757,6 +1852,21 @@
                     ],
                     "type": "string"
                 },
+                "missing-global-doc": {
+                    "default": "Warning",
+                    "description": "Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.",
+                    "enum": [
+                        "Error",
+                        "Warning",
+                        "Information",
+                        "Hint",
+                        "Error!",
+                        "Warning!",
+                        "Information!",
+                        "Hint!"
+                    ],
+                    "type": "string"
+                },
                 "missing-parameter": {
                     "default": "Warning",
                     "description": "Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.",
-- 
GitLab