diff --git a/changelog.md b/changelog.md index 2202e28856eac92af377c0627eadd1ee972e5c03..6fb01e28261846f4a70f3b1e0ee9e7fdbdcf6526 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,79 @@ # changelog +## 3.5.0 +`2022-7-19` +* `NEW` `LuaDoc`: `---@operator`: + ```lua + ---@class fspath + ---@operator div(string|fspath): fspath + + ---@type fspath + local root + + local fileName = root / 'script' / 'main.lua' -- `fileName` is `fspath` here + ``` +* `NEW` `LuaDoc`: `---@source`: + ```lua + -- Also supports absolute path or relative path (based on current file path) + ---@source file:///xxx.c:50:20 + XXX = 1 -- when finding definitions of `XXX`, returns `file:///xxx.c:50:20` instead here. + ``` +* `NEW` `LuaDoc`: `---@enum`: + ```lua + ---@enum animal + Animal = { + Cat = 1, + Dog = 2, + } + + ---@param x animal + local function f(x) end + + f() -- suggests `Animal.Cat`, `Animal.Dog`, `1`, `2` as the first parameter + ``` +* `NEW` diagnostics: + * `unknown-operator` + * `unreachable-code` +* `NEW` settings: + * `diagnostics.unusedLocalExclude` +* `NEW` VSCode: add support for [EmmyLuaUnity](https://marketplace.visualstudio.com/items?itemName=CppCXY.emmylua-unity) +* `CHG` support multi-type: + ```lua + ---@type number, _, boolean + local a, b, c -- `a` is `number`, `b` is `unknown`, `c` is `boolean` + ``` +* `CHG` treat `_ENV = XXX` as `local _ENV = XXX` + * `_ENV = nil`: disable all globals + * `_ENV = {}`: allow all globals + * `_ENV = {} ---@type mathlib`: only allow globals in `mathlib` +* `CHG` hover: dose not show unknown `---@XXX` as description +* `CHG` contravariance is allowed at the class declaration + ```lua + ---@class BaseClass + local BaseClass + + ---@class MyClass: BaseClass + local MyClass = BaseClass -- OK! + ``` +* `CHG` hover: supports path in link + ```lua + -- --> will convert to `--` + local x + ``` +* `CHG` signature: only show signatures matching the entered parameters +* `FIX` [#880](https://github.com/sumneko/lua-language-server/issues/880) +* `FIX` [#1284](https://github.com/sumneko/lua-language-server/issues/1284) +* `FIX` [#1292](https://github.com/sumneko/lua-language-server/issues/1292) +* `FIX` [#1294](https://github.com/sumneko/lua-language-server/issues/1294) +* `FIX` [#1306](https://github.com/sumneko/lua-language-server/issues/1306) +* `FIX` [#1311](https://github.com/sumneko/lua-language-server/issues/1311) +* `FIX` [#1317](https://github.com/sumneko/lua-language-server/issues/1317) +* `FIX` [#1320](https://github.com/sumneko/lua-language-server/issues/1320) +* `FIX` [#1330](https://github.com/sumneko/lua-language-server/issues/1330) +* `FIX` [#1345](https://github.com/sumneko/lua-language-server/issues/1345) +* `FIX` [#1346](https://github.com/sumneko/lua-language-server/issues/1346) +* `FIX` [#1348](https://github.com/sumneko/lua-language-server/issues/1348) + ## 3.4.2 `2022-7-6` * `CHG` diagnostic: `type-check` ignores `nil` in `getfield` diff --git a/package.json b/package.json index 08e7d5946f27c1ea9ceb496918d747936a97c7f0..f380f08b6cfb22335f9f7f96a66779c39a37fc58 100644 --- a/package.json +++ b/package.json @@ -122,99 +122,101 @@ "default": [], "items": { "enum": [ - "not-yieldable", - "redundant-parameter", + "action-after-return", + "ambiguity-1", + "args-after-dots", + "assign-type-mismatch", + "await-in-sync", + "block-after-else", "break-outside", - "undefined-doc-class", - "unknown-symbol", - "miss-method", - "err-nonstandard-symbol", - "unknown-attribute", - "unexpect-efunc-name", + "cast-local-type", + "cast-type-mismatch", + "circle-doc-class", + "close-non-object", + "code-after-break", + "codestyle-check", + "count-down-loop", + "deprecated", "different-requires", - "miss-end", - "await-in-sync", - "args-after-dots", - "err-eq-as-assign", - "newfield-call", + "discard-returns", + "doc-field-no-class", + "duplicate-doc-alias", + "duplicate-doc-field", + "duplicate-doc-param", + "duplicate-index", + "duplicate-set-field", + "empty-block", "err-assign-as-eq", - "undefined-doc-param", - "param-type-mismatch", + "err-c-long-comment", + "err-comment-prefix", + "err-do-as-then", + "err-eq-as-assign", + "err-esc", + "err-nonstandard-symbol", + "err-then-as-do", + "exp-in-action", "global-in-nil-env", - "missing-parameter", - "miss-sep-in-table", - "unknown-cast-variable", - "miss-loop-min", + "index-in-func-name", + "jump-local-scope", + "keyword", + "local-limit", + "lowercase-global", "malformed-number", - "err-do-as-then", - "spell-check", - "undefined-env-child", - "missing-return-value", - "discard-returns", - "redundant-return", + "miss-end", "miss-esc-x", - "redundant-value", - "duplicate-doc-alias", - "doc-field-no-class", - "no-visible-label", "miss-exp", + "miss-exponent", + "miss-field", "miss-loop-max", + "miss-loop-min", + "miss-method", "miss-name", - "empty-block", - "unused-local", - "err-then-as-do", - "duplicate-doc-field", - "redefined-label", - "exp-in-action", - "set-const", - "circle-doc-class", - "unexpect-lfunc-name", - "unsupport-symbol", - "unused-label", - "action-after-return", - "unexpect-dots", + "miss-sep-in-table", + "miss-space-between", + "miss-symbol", + "missing-parameter", + "missing-return", + "missing-return-value", + "need-check-nil", + "newfield-call", "newline-call", - "jump-local-scope", - "close-non-object", - "miss-field", - "count-down-loop", - "cast-type-mismatch", - "duplicate-index", - "unexpect-symbol", - "block-after-else", - "unicode-name", - "miss-exponent", - "err-esc", + "no-unknown", + "no-visible-label", + "not-yieldable", + "param-type-mismatch", + "redefined-label", + "redefined-local", + "redundant-parameter", + "redundant-return", "redundant-return-value", + "redundant-value", + "return-type-mismatch", + "set-const", + "spell-check", + "trailing-space", "unbalanced-assignments", - "err-c-long-comment", + "undefined-doc-class", "undefined-doc-name", - "ambiguity-1", - "trailing-space", - "deprecated", - "codestyle-check", - "missing-return", + "undefined-doc-param", + "undefined-env-child", + "undefined-field", "undefined-global", - "unused-function", - "code-after-break", - "assign-type-mismatch", - "local-limit", - "cast-local-type", - "need-check-nil", - "keyword", + "unexpect-dots", + "unexpect-efunc-name", + "unexpect-lfunc-name", + "unexpect-symbol", + "unicode-name", + "unknown-attribute", + "unknown-cast-variable", "unknown-diag-code", - "unused-vararg", - "err-comment-prefix", - "lowercase-global", - "return-type-mismatch", - "duplicate-set-field", - "redefined-local", - "no-unknown", - "duplicate-doc-param", - "index-in-func-name", - "miss-symbol", - "undefined-field", - "miss-space-between" + "unknown-operator", + "unknown-symbol", + "unreachable-code", + "unsupport-symbol", + "unused-function", + "unused-label", + "unused-local", + "unused-vararg" ], "type": "string" }, @@ -1202,6 +1204,32 @@ ], "type": "string" }, + "unknown-operator": { + "default": "Any", + "description": "%config.diagnostics.unknown-operator%", + "enum": [ + "Any", + "Opened", + "None", + "Any!", + "Opened!", + "None!" + ], + "type": "string" + }, + "unreachable-code": { + "default": "Opened", + "description": "%config.diagnostics.unreachable-code%", + "enum": [ + "Any", + "Opened", + "None", + "Any!", + "Opened!", + "None!" + ], + "type": "string" + }, "unused-function": { "default": "Opened", "description": "%config.diagnostics.unused-function%", @@ -1983,6 +2011,36 @@ ], "type": "string" }, + "unknown-operator": { + "default": "Warning", + "description": "%config.diagnostics.unknown-operator%", + "enum": [ + "Error", + "Warning", + "Information", + "Hint", + "Error!", + "Warning!", + "Information!", + "Hint!" + ], + "type": "string" + }, + "unreachable-code": { + "default": "Hint", + "description": "%config.diagnostics.unreachable-code%", + "enum": [ + "Error", + "Warning", + "Information", + "Hint", + "Error!", + "Warning!", + "Information!", + "Hint!" + ], + "type": "string" + }, "unused-function": { "default": "Hint", "description": "%config.diagnostics.unused-function%", @@ -2048,6 +2106,15 @@ "title": "severity", "type": "object" }, + "Lua.diagnostics.unusedLocalExclude": { + "default": [], + "items": { + "type": "string" + }, + "markdownDescription": "%config.diagnostics.unusedLocalExclude%", + "scope": "resource", + "type": "array" + }, "Lua.diagnostics.workspaceDelay": { "default": 3000, "markdownDescription": "%config.diagnostics.workspaceDelay%", @@ -2347,6 +2414,26 @@ ], "type": "string" }, + "table.clear": { + "default": "default", + "description": "%config.runtime.builtin.table.clear%", + "enum": [ + "default", + "enable", + "disable" + ], + "type": "string" + }, + "table.new": { + "default": "default", + "description": "%config.runtime.builtin.table.new%", + "enum": [ + "default", + "enable", + "disable" + ], + "type": "string" + }, "utf8": { "default": "default", "description": "%config.runtime.builtin.utf8%", @@ -2809,5 +2896,5 @@ "sponsor": { "url": "https://github.com/sumneko/lua-language-server/issues/484" }, - "version": "3.4.2" + "version": "3.5.0" } diff --git a/package.nls.json b/package.nls.json index 4da06752a601ef952e9cecc725e6dc30b4d6d586..ed2d24506575875ff5e4eeb606a6c719e4855893 100644 --- a/package.nls.json +++ b/package.nls.json @@ -53,7 +53,7 @@ "config.diagnostics.libraryFiles.Enable": "Always diagnose these files.", "config.diagnostics.libraryFiles.Opened": "Only when these files are opened will it be diagnosed.", "config.diagnostics.lowercase-global": "Enable lowercase global variable definition diagnostics.", - "config.diagnostics.luadoc": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code", + "config.diagnostics.luadoc": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator", "config.diagnostics.neededFileStatus": "* Opened: only diagnose opened files\n* Any: diagnose all files\n* None: disable this diagnostic\n\nEnd with `!` means override the group setting `diagnostics.groupFileStatus`.\n", "config.diagnostics.newfield-call": "在字面量表中,2行代码之间缺少分隔符,在语法上被解析为了一次索引操作", "config.diagnostics.newline-call": "Enable newline call diagnostics. Is's raised when a line starting with `(` is encountered, which is syntactically parsed as a function call on the previous line.", @@ -69,11 +69,12 @@ "config.diagnostics.unbalanced": "* missing-parameter\n* missing-return\n* missing-return-value\n* redundant-parameter\n* redundant-return-value\n* redundant-value\n* unbalanced-assignments", "config.diagnostics.undefined-env-child": "Enable undefined environment variable diagnostics. It's raised when `_ENV` table is set to a new literal table, but the used global variable is no longer present in the global environment.", "config.diagnostics.undefined-global": "Enable undefined global variable diagnostics.", - "config.diagnostics.unused": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", + "config.diagnostics.unused": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unreachable-code\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", "config.diagnostics.unused-function": "Enable unused function diagnostics.", "config.diagnostics.unused-label": "Enable unused label diagnostics.", "config.diagnostics.unused-local": "Enable unused local variable diagnostics.", "config.diagnostics.unused-vararg": "Enable unused vararg diagnostics.", + "config.diagnostics.unusedLocalExclude": "Do not diagnose `unused-local` when the variable name matches the following pattern.", "config.diagnostics.workspaceDelay": "Latency (milliseconds) for workspace diagnostics. When you start the workspace, or edit any file, the entire workspace will be re-diagnosed in the background. Set to negative to disable workspace diagnostics.", "config.diagnostics.workspaceRate": "Workspace diagnostics run rate (%). Decreasing this value reduces CPU usage, but also reduces the speed of workspace diagnostics. The diagnosis of the file you are currently editing is always done at full speed and is not affected by this setting.", "config.format.defaultConfig": "The default format configuration. Has a lower priority than `.editorconfig` file in the workspace.\nRead [formatter docs](https://github.com/CppCXY/EmmyLuaCodeStyle/tree/master/docs) to learn usage.\n", diff --git a/package.nls.pt-br.json b/package.nls.pt-br.json index 1392720d355cc0fe1666c07112b863f5020b4c48..7d59e95912db5893dcf47b8b3ee19e08be764696 100644 --- a/package.nls.pt-br.json +++ b/package.nls.pt-br.json @@ -53,7 +53,7 @@ "config.diagnostics.libraryFiles.Enable": "Always diagnose these files.", "config.diagnostics.libraryFiles.Opened": "Only when these files are opened will it be diagnosed.", "config.diagnostics.lowercase-global": "首字母小写的全局变量定义", - "config.diagnostics.luadoc": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code", + "config.diagnostics.luadoc": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator", "config.diagnostics.neededFileStatus": "* Opened: only diagnose opened files\n* Any: diagnose all files\n* None: disable this diagnostic\n\nEnd with `!` means override the group setting `diagnostics.groupFileStatus`.\n", "config.diagnostics.newfield-call": "在字面量表中,2行代码之间缺少分隔符,在语法上被解析为了一次索引操作", "config.diagnostics.newline-call": "以 `(` 开始的新行,在语法上被解析为了上一行的函数调用", @@ -69,11 +69,12 @@ "config.diagnostics.unbalanced": "* missing-parameter\n* missing-return\n* missing-return-value\n* redundant-parameter\n* redundant-return-value\n* redundant-value\n* unbalanced-assignments", "config.diagnostics.undefined-env-child": "`_ENV` 被设置为了新的字面量表,但是试图获取的全局变量不再这张表中", "config.diagnostics.undefined-global": "未定义的全局变量", - "config.diagnostics.unused": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", + "config.diagnostics.unused": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unreachable-code\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", "config.diagnostics.unused-function": "未使用的函数", "config.diagnostics.unused-label": "未使用的标签", "config.diagnostics.unused-local": "未使用的局部变量", "config.diagnostics.unused-vararg": "未使用的不定参数", + "config.diagnostics.unusedLocalExclude": "Do not diagnose `unused-local` when the variable name matches the following pattern.", "config.diagnostics.workspaceDelay": "Latency (milliseconds) for workspace diagnostics. When you start the workspace, or edit any file, the entire workspace will be re-diagnosed in the background. Set to negative to disable workspace diagnostics.", "config.diagnostics.workspaceRate": "Workspace diagnostics run rate (%). Decreasing this value reduces CPU usage, but also reduces the speed of workspace diagnostics. The diagnosis of the file you are currently editing is always done at full speed and is not affected by this setting.", "config.format.defaultConfig": "The default format configuration. Has a lower priority than `.editorconfig` file in the workspace.\nRead [formatter docs](https://github.com/CppCXY/EmmyLuaCodeStyle/tree/master/docs) to learn usage.\n", diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json index 9b7694f4b0c05cb463559403dc9e63c11c29f511..3d0fcb3a1e2b9517c15dcfa0ed427b03ec967e69 100644 --- a/package.nls.zh-cn.json +++ b/package.nls.zh-cn.json @@ -53,7 +53,7 @@ "config.diagnostics.libraryFiles.Enable": "总是诊断这些文件。", "config.diagnostics.libraryFiles.Opened": "只有打开这些文件时才会诊断。", "config.diagnostics.lowercase-global": "首字母小写的全局变量定义", - "config.diagnostics.luadoc": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code", + "config.diagnostics.luadoc": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator", "config.diagnostics.neededFileStatus": "* Opened: 只诊断打开的文件\n* Any: 诊断任何文件\n* None: 禁用此诊断\n\n以 `!` 结尾的设置优先级高于组设置 `diagnostics.groupFileStatus`。\n", "config.diagnostics.newfield-call": "在字面量表中,2行代码之间缺少分隔符,在语法上被解析为了一次索引操作", "config.diagnostics.newline-call": "以 `(` 开始的新行,在语法上被解析为了上一行的函数调用", @@ -69,11 +69,12 @@ "config.diagnostics.unbalanced": "* missing-parameter\n* missing-return\n* missing-return-value\n* redundant-parameter\n* redundant-return-value\n* redundant-value\n* unbalanced-assignments", "config.diagnostics.undefined-env-child": "`_ENV` 被设置为了新的字面量表,但是试图获取的全局变量不再这张表中", "config.diagnostics.undefined-global": "未定义的全局变量", - "config.diagnostics.unused": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", + "config.diagnostics.unused": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unreachable-code\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", "config.diagnostics.unused-function": "未使用的函数", "config.diagnostics.unused-label": "未使用的标签", "config.diagnostics.unused-local": "未使用的局部变量", "config.diagnostics.unused-vararg": "未使用的不定参数", + "config.diagnostics.unusedLocalExclude": "如果变量名匹配以下规则,则不对其进行 `unused-local` 诊断。", "config.diagnostics.workspaceDelay": "进行工作区诊断的延迟(毫秒)。当你启动工作区,或编辑了任意文件后,将会在后台对整个工作区进行重新诊断。设置为负数可以禁用工作区诊断。", "config.diagnostics.workspaceRate": "工作区诊断的运行速率(百分比)。降低该值会减少CPU占用,但是也会降低工作区诊断的速度。你当前正在编辑的文件的诊断总是全速完成,不受该选项影响。", "config.format.defaultConfig": "默认的格式化配置,优先级低于工作区内的 `.editorconfig` 文件。\n请查阅[格式化文档](https://github.com/CppCXY/EmmyLuaCodeStyle/tree/master/docs)了解用法。\n", diff --git a/package.nls.zh-tw.json b/package.nls.zh-tw.json index 2568cd1029191a7b854c9bec42710d500da554b6..7ccc5016e562323bd8437467c46b083767b9ccd7 100644 --- a/package.nls.zh-tw.json +++ b/package.nls.zh-tw.json @@ -53,7 +53,7 @@ "config.diagnostics.libraryFiles.Enable": "總是診斷這些檔案。", "config.diagnostics.libraryFiles.Opened": "只有打開這些檔案時才會診斷。", "config.diagnostics.lowercase-global": "首字母小寫的全域變數定義", - "config.diagnostics.luadoc": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code", + "config.diagnostics.luadoc": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator", "config.diagnostics.neededFileStatus": "* Opened: 只診斷打開的檔案\n* Any: 診斷所有檔案\n* None: 停用此診斷\n\n以 `!` 結尾的設定優先順序高於組設定 `diagnostics.groupFileStatus`。\n", "config.diagnostics.newfield-call": "在字面常數表中,2行程式碼之間缺少分隔符,在語法上被解析為了一次索引操作", "config.diagnostics.newline-call": "以 `(` 開始的新行,在語法上被解析為了上一行的函式呼叫", @@ -69,11 +69,12 @@ "config.diagnostics.unbalanced": "* missing-parameter\n* missing-return\n* missing-return-value\n* redundant-parameter\n* redundant-return-value\n* redundant-value\n* unbalanced-assignments", "config.diagnostics.undefined-env-child": "`_ENV` 被設定為了新的字面常數表,但是試圖獲取的全域變數不在這張表中", "config.diagnostics.undefined-global": "未定義的全域變數", - "config.diagnostics.unused": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", + "config.diagnostics.unused": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unreachable-code\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", "config.diagnostics.unused-function": "未使用的函式", "config.diagnostics.unused-label": "未使用的標籤", "config.diagnostics.unused-local": "未使用的區域變數", "config.diagnostics.unused-vararg": "未使用的不定引數", + "config.diagnostics.unusedLocalExclude": "Do not diagnose `unused-local` when the variable name matches the following pattern.", "config.diagnostics.workspaceDelay": "進行工作區診斷的延遲(毫秒)。當你啟動工作區,或編輯了任何檔案後,將會在背景對整個工作區進行重新診斷。設定為負數可以停用工作區診斷。", "config.diagnostics.workspaceRate": "工作區診斷的執行速率(百分比)。降低該值會減少CPU使用率,但是也會降低工作區診斷的速度。你目前正在編輯的檔案的診斷總是全速完成,不受該選項影響。", "config.format.defaultConfig": "預設的格式化組態,優先順序低於工作區內的 `.editorconfig` 檔案。\n請查閱[格式化文件](https://github.com/CppCXY/EmmyLuaCodeStyle/tree/master/docs)了解用法。\n", diff --git a/package/build.lua b/package/build.lua index 842660f0aafabea57294868c0ec333aa2ec9b66b..daf97053d605a09afbbb0e70245962f2908ee000 100644 --- a/package/build.lua +++ b/package/build.lua @@ -1,6 +1,6 @@ local json = require 'json-beautify' -local VERSION = "3.4.2" +local VERSION = "3.5.0" local package = require 'package.package' local fsu = require 'fs-utility' diff --git a/server b/server index ffb9d5437ad78dbd392f72fd60b4c03f4cefb970..be85f2c855f9075cadae3219f4dc1f3ce1f920ca 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit ffb9d5437ad78dbd392f72fd60b4c03f4cefb970 +Subproject commit be85f2c855f9075cadae3219f4dc1f3ce1f920ca diff --git a/setting/schema-pt-br.json b/setting/schema-pt-br.json index 794f59e52c76515ef58b27b9e76e18c5f6b95362..149150b78c2763d766565d074372fd78d8ddcaf0 100644 --- a/setting/schema-pt-br.json +++ b/setting/schema-pt-br.json @@ -157,6 +157,9 @@ "severity": { "$ref": "#/properties/diagnostics.severity" }, + "unusedLocalExclude": { + "$ref": "#/properties/diagnostics.unusedLocalExclude" + }, "workspaceDelay": { "$ref": "#/properties/diagnostics.workspaceDelay" }, @@ -169,99 +172,101 @@ "default": [], "items": { "enum": [ - "not-yieldable", - "redundant-parameter", + "action-after-return", + "ambiguity-1", + "args-after-dots", + "assign-type-mismatch", + "await-in-sync", + "block-after-else", "break-outside", - "undefined-doc-class", - "unknown-symbol", - "miss-method", - "err-nonstandard-symbol", - "unknown-attribute", - "unexpect-efunc-name", + "cast-local-type", + "cast-type-mismatch", + "circle-doc-class", + "close-non-object", + "code-after-break", + "codestyle-check", + "count-down-loop", + "deprecated", "different-requires", - "miss-end", - "await-in-sync", - "args-after-dots", - "err-eq-as-assign", - "newfield-call", + "discard-returns", + "doc-field-no-class", + "duplicate-doc-alias", + "duplicate-doc-field", + "duplicate-doc-param", + "duplicate-index", + "duplicate-set-field", + "empty-block", "err-assign-as-eq", - "undefined-doc-param", - "param-type-mismatch", + "err-c-long-comment", + "err-comment-prefix", + "err-do-as-then", + "err-eq-as-assign", + "err-esc", + "err-nonstandard-symbol", + "err-then-as-do", + "exp-in-action", "global-in-nil-env", - "missing-parameter", - "miss-sep-in-table", - "unknown-cast-variable", - "miss-loop-min", + "index-in-func-name", + "jump-local-scope", + "keyword", + "local-limit", + "lowercase-global", "malformed-number", - "err-do-as-then", - "spell-check", - "undefined-env-child", - "missing-return-value", - "discard-returns", - "redundant-return", + "miss-end", "miss-esc-x", - "redundant-value", - "duplicate-doc-alias", - "doc-field-no-class", - "no-visible-label", "miss-exp", + "miss-exponent", + "miss-field", "miss-loop-max", + "miss-loop-min", + "miss-method", "miss-name", - "empty-block", - "unused-local", - "err-then-as-do", - "duplicate-doc-field", - "redefined-label", - "exp-in-action", - "set-const", - "circle-doc-class", - "unexpect-lfunc-name", - "unsupport-symbol", - "unused-label", - "action-after-return", - "unexpect-dots", + "miss-sep-in-table", + "miss-space-between", + "miss-symbol", + "missing-parameter", + "missing-return", + "missing-return-value", + "need-check-nil", + "newfield-call", "newline-call", - "jump-local-scope", - "close-non-object", - "miss-field", - "count-down-loop", - "cast-type-mismatch", - "duplicate-index", - "unexpect-symbol", - "block-after-else", - "unicode-name", - "miss-exponent", - "err-esc", + "no-unknown", + "no-visible-label", + "not-yieldable", + "param-type-mismatch", + "redefined-label", + "redefined-local", + "redundant-parameter", + "redundant-return", "redundant-return-value", + "redundant-value", + "return-type-mismatch", + "set-const", + "spell-check", + "trailing-space", "unbalanced-assignments", - "err-c-long-comment", + "undefined-doc-class", "undefined-doc-name", - "ambiguity-1", - "trailing-space", - "deprecated", - "codestyle-check", - "missing-return", + "undefined-doc-param", + "undefined-env-child", + "undefined-field", "undefined-global", - "unused-function", - "code-after-break", - "assign-type-mismatch", - "local-limit", - "cast-local-type", - "need-check-nil", - "keyword", + "unexpect-dots", + "unexpect-efunc-name", + "unexpect-lfunc-name", + "unexpect-symbol", + "unicode-name", + "unknown-attribute", + "unknown-cast-variable", "unknown-diag-code", - "unused-vararg", - "err-comment-prefix", - "lowercase-global", - "return-type-mismatch", - "duplicate-set-field", - "redefined-local", - "no-unknown", - "duplicate-doc-param", - "index-in-func-name", - "miss-symbol", - "undefined-field", - "miss-space-between" + "unknown-operator", + "unknown-symbol", + "unreachable-code", + "unsupport-symbol", + "unused-function", + "unused-label", + "unused-local", + "unused-vararg" ], "type": "string" }, @@ -356,7 +361,7 @@ }, "luadoc": { "default": "Fallback", - "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code", + "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator", "enum": [ "Any", "Opened", @@ -422,7 +427,7 @@ }, "unused": { "default": "Fallback", - "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", + "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unreachable-code\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", "enum": [ "Any", "Opened", @@ -502,7 +507,7 @@ }, "luadoc": { "default": "Fallback", - "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code", + "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator", "enum": [ "Error", "Warning", @@ -574,7 +579,7 @@ }, "unused": { "default": "Fallback", - "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", + "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unreachable-code\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", "enum": [ "Error", "Warning", @@ -1249,6 +1254,32 @@ ], "type": "string" }, + "unknown-operator": { + "default": "Any", + "description": "%config.diagnostics.unknown-operator%", + "enum": [ + "Any", + "Opened", + "None", + "Any!", + "Opened!", + "None!" + ], + "type": "string" + }, + "unreachable-code": { + "default": "Opened", + "description": "%config.diagnostics.unreachable-code%", + "enum": [ + "Any", + "Opened", + "None", + "Any!", + "Opened!", + "None!" + ], + "type": "string" + }, "unused-function": { "default": "Opened", "description": "未使用的函数", @@ -2030,6 +2061,36 @@ ], "type": "string" }, + "unknown-operator": { + "default": "Warning", + "description": "%config.diagnostics.unknown-operator%", + "enum": [ + "Error", + "Warning", + "Information", + "Hint", + "Error!", + "Warning!", + "Information!", + "Hint!" + ], + "type": "string" + }, + "unreachable-code": { + "default": "Hint", + "description": "%config.diagnostics.unreachable-code%", + "enum": [ + "Error", + "Warning", + "Information", + "Hint", + "Error!", + "Warning!", + "Information!", + "Hint!" + ], + "type": "string" + }, "unused-function": { "default": "Hint", "description": "未使用的函数", @@ -2095,6 +2156,15 @@ "title": "severity", "type": "object" }, + "diagnostics.unusedLocalExclude": { + "default": [], + "items": { + "type": "string" + }, + "markdownDescription": "Do not diagnose `unused-local` when the variable name matches the following pattern.", + "scope": "resource", + "type": "array" + }, "diagnostics.workspaceDelay": { "default": 3000, "markdownDescription": "Latency (milliseconds) for workspace diagnostics. When you start the workspace, or edit any file, the entire workspace will be re-diagnosed in the background. Set to negative to disable workspace diagnostics.", @@ -2495,6 +2565,26 @@ ], "type": "string" }, + "table.clear": { + "default": "default", + "description": "%config.runtime.builtin.table.clear%", + "enum": [ + "default", + "enable", + "disable" + ], + "type": "string" + }, + "table.new": { + "default": "default", + "description": "%config.runtime.builtin.table.new%", + "enum": [ + "default", + "enable", + "disable" + ], + "type": "string" + }, "utf8": { "default": "default", "description": "%config.runtime.builtin.utf8%", diff --git a/setting/schema-zh-cn.json b/setting/schema-zh-cn.json index be0a10c6e05a3effaf63a95d97e0004137b8ab35..705a2f28f15b7f7a8a4ce74f543ef5bee611a955 100644 --- a/setting/schema-zh-cn.json +++ b/setting/schema-zh-cn.json @@ -157,6 +157,9 @@ "severity": { "$ref": "#/properties/diagnostics.severity" }, + "unusedLocalExclude": { + "$ref": "#/properties/diagnostics.unusedLocalExclude" + }, "workspaceDelay": { "$ref": "#/properties/diagnostics.workspaceDelay" }, @@ -169,99 +172,101 @@ "default": [], "items": { "enum": [ - "not-yieldable", - "redundant-parameter", + "action-after-return", + "ambiguity-1", + "args-after-dots", + "assign-type-mismatch", + "await-in-sync", + "block-after-else", "break-outside", - "undefined-doc-class", - "unknown-symbol", - "miss-method", - "err-nonstandard-symbol", - "unknown-attribute", - "unexpect-efunc-name", + "cast-local-type", + "cast-type-mismatch", + "circle-doc-class", + "close-non-object", + "code-after-break", + "codestyle-check", + "count-down-loop", + "deprecated", "different-requires", - "miss-end", - "await-in-sync", - "args-after-dots", - "err-eq-as-assign", - "newfield-call", + "discard-returns", + "doc-field-no-class", + "duplicate-doc-alias", + "duplicate-doc-field", + "duplicate-doc-param", + "duplicate-index", + "duplicate-set-field", + "empty-block", "err-assign-as-eq", - "undefined-doc-param", - "param-type-mismatch", + "err-c-long-comment", + "err-comment-prefix", + "err-do-as-then", + "err-eq-as-assign", + "err-esc", + "err-nonstandard-symbol", + "err-then-as-do", + "exp-in-action", "global-in-nil-env", - "missing-parameter", - "miss-sep-in-table", - "unknown-cast-variable", - "miss-loop-min", + "index-in-func-name", + "jump-local-scope", + "keyword", + "local-limit", + "lowercase-global", "malformed-number", - "err-do-as-then", - "spell-check", - "undefined-env-child", - "missing-return-value", - "discard-returns", - "redundant-return", + "miss-end", "miss-esc-x", - "redundant-value", - "duplicate-doc-alias", - "doc-field-no-class", - "no-visible-label", "miss-exp", + "miss-exponent", + "miss-field", "miss-loop-max", + "miss-loop-min", + "miss-method", "miss-name", - "empty-block", - "unused-local", - "err-then-as-do", - "duplicate-doc-field", - "redefined-label", - "exp-in-action", - "set-const", - "circle-doc-class", - "unexpect-lfunc-name", - "unsupport-symbol", - "unused-label", - "action-after-return", - "unexpect-dots", + "miss-sep-in-table", + "miss-space-between", + "miss-symbol", + "missing-parameter", + "missing-return", + "missing-return-value", + "need-check-nil", + "newfield-call", "newline-call", - "jump-local-scope", - "close-non-object", - "miss-field", - "count-down-loop", - "cast-type-mismatch", - "duplicate-index", - "unexpect-symbol", - "block-after-else", - "unicode-name", - "miss-exponent", - "err-esc", + "no-unknown", + "no-visible-label", + "not-yieldable", + "param-type-mismatch", + "redefined-label", + "redefined-local", + "redundant-parameter", + "redundant-return", "redundant-return-value", + "redundant-value", + "return-type-mismatch", + "set-const", + "spell-check", + "trailing-space", "unbalanced-assignments", - "err-c-long-comment", + "undefined-doc-class", "undefined-doc-name", - "ambiguity-1", - "trailing-space", - "deprecated", - "codestyle-check", - "missing-return", + "undefined-doc-param", + "undefined-env-child", + "undefined-field", "undefined-global", - "unused-function", - "code-after-break", - "assign-type-mismatch", - "local-limit", - "cast-local-type", - "need-check-nil", - "keyword", + "unexpect-dots", + "unexpect-efunc-name", + "unexpect-lfunc-name", + "unexpect-symbol", + "unicode-name", + "unknown-attribute", + "unknown-cast-variable", "unknown-diag-code", - "unused-vararg", - "err-comment-prefix", - "lowercase-global", - "return-type-mismatch", - "duplicate-set-field", - "redefined-local", - "no-unknown", - "duplicate-doc-param", - "index-in-func-name", - "miss-symbol", - "undefined-field", - "miss-space-between" + "unknown-operator", + "unknown-symbol", + "unreachable-code", + "unsupport-symbol", + "unused-function", + "unused-label", + "unused-local", + "unused-vararg" ], "type": "string" }, @@ -356,7 +361,7 @@ }, "luadoc": { "default": "Fallback", - "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code", + "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator", "enum": [ "Any", "Opened", @@ -422,7 +427,7 @@ }, "unused": { "default": "Fallback", - "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", + "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unreachable-code\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", "enum": [ "Any", "Opened", @@ -502,7 +507,7 @@ }, "luadoc": { "default": "Fallback", - "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code", + "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator", "enum": [ "Error", "Warning", @@ -574,7 +579,7 @@ }, "unused": { "default": "Fallback", - "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", + "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unreachable-code\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", "enum": [ "Error", "Warning", @@ -1249,6 +1254,32 @@ ], "type": "string" }, + "unknown-operator": { + "default": "Any", + "description": "%config.diagnostics.unknown-operator%", + "enum": [ + "Any", + "Opened", + "None", + "Any!", + "Opened!", + "None!" + ], + "type": "string" + }, + "unreachable-code": { + "default": "Opened", + "description": "%config.diagnostics.unreachable-code%", + "enum": [ + "Any", + "Opened", + "None", + "Any!", + "Opened!", + "None!" + ], + "type": "string" + }, "unused-function": { "default": "Opened", "description": "未使用的函数", @@ -2030,6 +2061,36 @@ ], "type": "string" }, + "unknown-operator": { + "default": "Warning", + "description": "%config.diagnostics.unknown-operator%", + "enum": [ + "Error", + "Warning", + "Information", + "Hint", + "Error!", + "Warning!", + "Information!", + "Hint!" + ], + "type": "string" + }, + "unreachable-code": { + "default": "Hint", + "description": "%config.diagnostics.unreachable-code%", + "enum": [ + "Error", + "Warning", + "Information", + "Hint", + "Error!", + "Warning!", + "Information!", + "Hint!" + ], + "type": "string" + }, "unused-function": { "default": "Hint", "description": "未使用的函数", @@ -2095,6 +2156,15 @@ "title": "severity", "type": "object" }, + "diagnostics.unusedLocalExclude": { + "default": [], + "items": { + "type": "string" + }, + "markdownDescription": "如果变量名匹配以下规则,则不对其进行 `unused-local` 诊断。", + "scope": "resource", + "type": "array" + }, "diagnostics.workspaceDelay": { "default": 3000, "markdownDescription": "进行工作区诊断的延迟(毫秒)。当你启动工作区,或编辑了任意文件后,将会在后台对整个工作区进行重新诊断。设置为负数可以禁用工作区诊断。", @@ -2495,6 +2565,26 @@ ], "type": "string" }, + "table.clear": { + "default": "default", + "description": "%config.runtime.builtin.table.clear%", + "enum": [ + "default", + "enable", + "disable" + ], + "type": "string" + }, + "table.new": { + "default": "default", + "description": "%config.runtime.builtin.table.new%", + "enum": [ + "default", + "enable", + "disable" + ], + "type": "string" + }, "utf8": { "default": "default", "description": "%config.runtime.builtin.utf8%", diff --git a/setting/schema-zh-tw.json b/setting/schema-zh-tw.json index fc21e9f0daf2425414b1945fd9f7e959250c7149..3a8192a22e42b34c1a13ee100f44c06d147f8ce8 100644 --- a/setting/schema-zh-tw.json +++ b/setting/schema-zh-tw.json @@ -157,6 +157,9 @@ "severity": { "$ref": "#/properties/diagnostics.severity" }, + "unusedLocalExclude": { + "$ref": "#/properties/diagnostics.unusedLocalExclude" + }, "workspaceDelay": { "$ref": "#/properties/diagnostics.workspaceDelay" }, @@ -169,99 +172,101 @@ "default": [], "items": { "enum": [ - "not-yieldable", - "redundant-parameter", + "action-after-return", + "ambiguity-1", + "args-after-dots", + "assign-type-mismatch", + "await-in-sync", + "block-after-else", "break-outside", - "undefined-doc-class", - "unknown-symbol", - "miss-method", - "err-nonstandard-symbol", - "unknown-attribute", - "unexpect-efunc-name", + "cast-local-type", + "cast-type-mismatch", + "circle-doc-class", + "close-non-object", + "code-after-break", + "codestyle-check", + "count-down-loop", + "deprecated", "different-requires", - "miss-end", - "await-in-sync", - "args-after-dots", - "err-eq-as-assign", - "newfield-call", + "discard-returns", + "doc-field-no-class", + "duplicate-doc-alias", + "duplicate-doc-field", + "duplicate-doc-param", + "duplicate-index", + "duplicate-set-field", + "empty-block", "err-assign-as-eq", - "undefined-doc-param", - "param-type-mismatch", + "err-c-long-comment", + "err-comment-prefix", + "err-do-as-then", + "err-eq-as-assign", + "err-esc", + "err-nonstandard-symbol", + "err-then-as-do", + "exp-in-action", "global-in-nil-env", - "missing-parameter", - "miss-sep-in-table", - "unknown-cast-variable", - "miss-loop-min", + "index-in-func-name", + "jump-local-scope", + "keyword", + "local-limit", + "lowercase-global", "malformed-number", - "err-do-as-then", - "spell-check", - "undefined-env-child", - "missing-return-value", - "discard-returns", - "redundant-return", + "miss-end", "miss-esc-x", - "redundant-value", - "duplicate-doc-alias", - "doc-field-no-class", - "no-visible-label", "miss-exp", + "miss-exponent", + "miss-field", "miss-loop-max", + "miss-loop-min", + "miss-method", "miss-name", - "empty-block", - "unused-local", - "err-then-as-do", - "duplicate-doc-field", - "redefined-label", - "exp-in-action", - "set-const", - "circle-doc-class", - "unexpect-lfunc-name", - "unsupport-symbol", - "unused-label", - "action-after-return", - "unexpect-dots", + "miss-sep-in-table", + "miss-space-between", + "miss-symbol", + "missing-parameter", + "missing-return", + "missing-return-value", + "need-check-nil", + "newfield-call", "newline-call", - "jump-local-scope", - "close-non-object", - "miss-field", - "count-down-loop", - "cast-type-mismatch", - "duplicate-index", - "unexpect-symbol", - "block-after-else", - "unicode-name", - "miss-exponent", - "err-esc", + "no-unknown", + "no-visible-label", + "not-yieldable", + "param-type-mismatch", + "redefined-label", + "redefined-local", + "redundant-parameter", + "redundant-return", "redundant-return-value", + "redundant-value", + "return-type-mismatch", + "set-const", + "spell-check", + "trailing-space", "unbalanced-assignments", - "err-c-long-comment", + "undefined-doc-class", "undefined-doc-name", - "ambiguity-1", - "trailing-space", - "deprecated", - "codestyle-check", - "missing-return", + "undefined-doc-param", + "undefined-env-child", + "undefined-field", "undefined-global", - "unused-function", - "code-after-break", - "assign-type-mismatch", - "local-limit", - "cast-local-type", - "need-check-nil", - "keyword", + "unexpect-dots", + "unexpect-efunc-name", + "unexpect-lfunc-name", + "unexpect-symbol", + "unicode-name", + "unknown-attribute", + "unknown-cast-variable", "unknown-diag-code", - "unused-vararg", - "err-comment-prefix", - "lowercase-global", - "return-type-mismatch", - "duplicate-set-field", - "redefined-local", - "no-unknown", - "duplicate-doc-param", - "index-in-func-name", - "miss-symbol", - "undefined-field", - "miss-space-between" + "unknown-operator", + "unknown-symbol", + "unreachable-code", + "unsupport-symbol", + "unused-function", + "unused-label", + "unused-local", + "unused-vararg" ], "type": "string" }, @@ -356,7 +361,7 @@ }, "luadoc": { "default": "Fallback", - "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code", + "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator", "enum": [ "Any", "Opened", @@ -422,7 +427,7 @@ }, "unused": { "default": "Fallback", - "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", + "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unreachable-code\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", "enum": [ "Any", "Opened", @@ -502,7 +507,7 @@ }, "luadoc": { "default": "Fallback", - "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code", + "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator", "enum": [ "Error", "Warning", @@ -574,7 +579,7 @@ }, "unused": { "default": "Fallback", - "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", + "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unreachable-code\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", "enum": [ "Error", "Warning", @@ -1249,6 +1254,32 @@ ], "type": "string" }, + "unknown-operator": { + "default": "Any", + "description": "%config.diagnostics.unknown-operator%", + "enum": [ + "Any", + "Opened", + "None", + "Any!", + "Opened!", + "None!" + ], + "type": "string" + }, + "unreachable-code": { + "default": "Opened", + "description": "%config.diagnostics.unreachable-code%", + "enum": [ + "Any", + "Opened", + "None", + "Any!", + "Opened!", + "None!" + ], + "type": "string" + }, "unused-function": { "default": "Opened", "description": "未使用的函式", @@ -2030,6 +2061,36 @@ ], "type": "string" }, + "unknown-operator": { + "default": "Warning", + "description": "%config.diagnostics.unknown-operator%", + "enum": [ + "Error", + "Warning", + "Information", + "Hint", + "Error!", + "Warning!", + "Information!", + "Hint!" + ], + "type": "string" + }, + "unreachable-code": { + "default": "Hint", + "description": "%config.diagnostics.unreachable-code%", + "enum": [ + "Error", + "Warning", + "Information", + "Hint", + "Error!", + "Warning!", + "Information!", + "Hint!" + ], + "type": "string" + }, "unused-function": { "default": "Hint", "description": "未使用的函式", @@ -2095,6 +2156,15 @@ "title": "severity", "type": "object" }, + "diagnostics.unusedLocalExclude": { + "default": [], + "items": { + "type": "string" + }, + "markdownDescription": "Do not diagnose `unused-local` when the variable name matches the following pattern.", + "scope": "resource", + "type": "array" + }, "diagnostics.workspaceDelay": { "default": 3000, "markdownDescription": "進行工作區診斷的延遲(毫秒)。當你啟動工作區,或編輯了任何檔案後,將會在背景對整個工作區進行重新診斷。設定為負數可以停用工作區診斷。", @@ -2495,6 +2565,26 @@ ], "type": "string" }, + "table.clear": { + "default": "default", + "description": "%config.runtime.builtin.table.clear%", + "enum": [ + "default", + "enable", + "disable" + ], + "type": "string" + }, + "table.new": { + "default": "default", + "description": "%config.runtime.builtin.table.new%", + "enum": [ + "default", + "enable", + "disable" + ], + "type": "string" + }, "utf8": { "default": "default", "description": "%config.runtime.builtin.utf8%", diff --git a/setting/schema.json b/setting/schema.json index c2799a8309f6a0bc0f5aee14a086ece7de2f2825..2f160b04ebe3ab86569a2369980a7f3e78e50987 100644 --- a/setting/schema.json +++ b/setting/schema.json @@ -157,6 +157,9 @@ "severity": { "$ref": "#/properties/diagnostics.severity" }, + "unusedLocalExclude": { + "$ref": "#/properties/diagnostics.unusedLocalExclude" + }, "workspaceDelay": { "$ref": "#/properties/diagnostics.workspaceDelay" }, @@ -169,99 +172,101 @@ "default": [], "items": { "enum": [ - "not-yieldable", - "redundant-parameter", + "action-after-return", + "ambiguity-1", + "args-after-dots", + "assign-type-mismatch", + "await-in-sync", + "block-after-else", "break-outside", - "undefined-doc-class", - "unknown-symbol", - "miss-method", - "err-nonstandard-symbol", - "unknown-attribute", - "unexpect-efunc-name", + "cast-local-type", + "cast-type-mismatch", + "circle-doc-class", + "close-non-object", + "code-after-break", + "codestyle-check", + "count-down-loop", + "deprecated", "different-requires", - "miss-end", - "await-in-sync", - "args-after-dots", - "err-eq-as-assign", - "newfield-call", + "discard-returns", + "doc-field-no-class", + "duplicate-doc-alias", + "duplicate-doc-field", + "duplicate-doc-param", + "duplicate-index", + "duplicate-set-field", + "empty-block", "err-assign-as-eq", - "undefined-doc-param", - "param-type-mismatch", + "err-c-long-comment", + "err-comment-prefix", + "err-do-as-then", + "err-eq-as-assign", + "err-esc", + "err-nonstandard-symbol", + "err-then-as-do", + "exp-in-action", "global-in-nil-env", - "missing-parameter", - "miss-sep-in-table", - "unknown-cast-variable", - "miss-loop-min", + "index-in-func-name", + "jump-local-scope", + "keyword", + "local-limit", + "lowercase-global", "malformed-number", - "err-do-as-then", - "spell-check", - "undefined-env-child", - "missing-return-value", - "discard-returns", - "redundant-return", + "miss-end", "miss-esc-x", - "redundant-value", - "duplicate-doc-alias", - "doc-field-no-class", - "no-visible-label", "miss-exp", + "miss-exponent", + "miss-field", "miss-loop-max", + "miss-loop-min", + "miss-method", "miss-name", - "empty-block", - "unused-local", - "err-then-as-do", - "duplicate-doc-field", - "redefined-label", - "exp-in-action", - "set-const", - "circle-doc-class", - "unexpect-lfunc-name", - "unsupport-symbol", - "unused-label", - "action-after-return", - "unexpect-dots", + "miss-sep-in-table", + "miss-space-between", + "miss-symbol", + "missing-parameter", + "missing-return", + "missing-return-value", + "need-check-nil", + "newfield-call", "newline-call", - "jump-local-scope", - "close-non-object", - "miss-field", - "count-down-loop", - "cast-type-mismatch", - "duplicate-index", - "unexpect-symbol", - "block-after-else", - "unicode-name", - "miss-exponent", - "err-esc", + "no-unknown", + "no-visible-label", + "not-yieldable", + "param-type-mismatch", + "redefined-label", + "redefined-local", + "redundant-parameter", + "redundant-return", "redundant-return-value", + "redundant-value", + "return-type-mismatch", + "set-const", + "spell-check", + "trailing-space", "unbalanced-assignments", - "err-c-long-comment", + "undefined-doc-class", "undefined-doc-name", - "ambiguity-1", - "trailing-space", - "deprecated", - "codestyle-check", - "missing-return", + "undefined-doc-param", + "undefined-env-child", + "undefined-field", "undefined-global", - "unused-function", - "code-after-break", - "assign-type-mismatch", - "local-limit", - "cast-local-type", - "need-check-nil", - "keyword", + "unexpect-dots", + "unexpect-efunc-name", + "unexpect-lfunc-name", + "unexpect-symbol", + "unicode-name", + "unknown-attribute", + "unknown-cast-variable", "unknown-diag-code", - "unused-vararg", - "err-comment-prefix", - "lowercase-global", - "return-type-mismatch", - "duplicate-set-field", - "redefined-local", - "no-unknown", - "duplicate-doc-param", - "index-in-func-name", - "miss-symbol", - "undefined-field", - "miss-space-between" + "unknown-operator", + "unknown-symbol", + "unreachable-code", + "unsupport-symbol", + "unused-function", + "unused-label", + "unused-local", + "unused-vararg" ], "type": "string" }, @@ -356,7 +361,7 @@ }, "luadoc": { "default": "Fallback", - "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code", + "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator", "enum": [ "Any", "Opened", @@ -422,7 +427,7 @@ }, "unused": { "default": "Fallback", - "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", + "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unreachable-code\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", "enum": [ "Any", "Opened", @@ -502,7 +507,7 @@ }, "luadoc": { "default": "Fallback", - "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code", + "description": "* cast-type-mismatch\n* circle-doc-class\n* doc-field-no-class\n* duplicate-doc-alias\n* duplicate-doc-field\n* duplicate-doc-param\n* undefined-doc-class\n* undefined-doc-name\n* undefined-doc-param\n* unknown-cast-variable\n* unknown-diag-code\n* unknown-operator", "enum": [ "Error", "Warning", @@ -574,7 +579,7 @@ }, "unused": { "default": "Fallback", - "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", + "description": "* code-after-break\n* empty-block\n* redundant-return\n* trailing-space\n* unreachable-code\n* unused-function\n* unused-label\n* unused-local\n* unused-vararg", "enum": [ "Error", "Warning", @@ -1249,6 +1254,32 @@ ], "type": "string" }, + "unknown-operator": { + "default": "Any", + "description": "%config.diagnostics.unknown-operator%", + "enum": [ + "Any", + "Opened", + "None", + "Any!", + "Opened!", + "None!" + ], + "type": "string" + }, + "unreachable-code": { + "default": "Opened", + "description": "%config.diagnostics.unreachable-code%", + "enum": [ + "Any", + "Opened", + "None", + "Any!", + "Opened!", + "None!" + ], + "type": "string" + }, "unused-function": { "default": "Opened", "description": "Enable unused function diagnostics.", @@ -2030,6 +2061,36 @@ ], "type": "string" }, + "unknown-operator": { + "default": "Warning", + "description": "%config.diagnostics.unknown-operator%", + "enum": [ + "Error", + "Warning", + "Information", + "Hint", + "Error!", + "Warning!", + "Information!", + "Hint!" + ], + "type": "string" + }, + "unreachable-code": { + "default": "Hint", + "description": "%config.diagnostics.unreachable-code%", + "enum": [ + "Error", + "Warning", + "Information", + "Hint", + "Error!", + "Warning!", + "Information!", + "Hint!" + ], + "type": "string" + }, "unused-function": { "default": "Hint", "description": "Enable unused function diagnostics.", @@ -2095,6 +2156,15 @@ "title": "severity", "type": "object" }, + "diagnostics.unusedLocalExclude": { + "default": [], + "items": { + "type": "string" + }, + "markdownDescription": "Do not diagnose `unused-local` when the variable name matches the following pattern.", + "scope": "resource", + "type": "array" + }, "diagnostics.workspaceDelay": { "default": 3000, "markdownDescription": "Latency (milliseconds) for workspace diagnostics. When you start the workspace, or edit any file, the entire workspace will be re-diagnosed in the background. Set to negative to disable workspace diagnostics.", @@ -2495,6 +2565,26 @@ ], "type": "string" }, + "table.clear": { + "default": "default", + "description": "%config.runtime.builtin.table.clear%", + "enum": [ + "default", + "enable", + "disable" + ], + "type": "string" + }, + "table.new": { + "default": "default", + "description": "%config.runtime.builtin.table.new%", + "enum": [ + "default", + "enable", + "disable" + ], + "type": "string" + }, "utf8": { "default": "default", "description": "%config.runtime.builtin.utf8%",