@codingame/monaco-editor-wrapper 20.1.0 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/dist/_virtual/_.vsix.js +14 -14
  2. package/dist/assets/{Angular.ng-template-20.1.1.vsix/CHANGELOG.md → Angular.ng-template-20.3.3.vsix/changelog.md} +50 -5
  3. package/dist/assets/{Angular.ng-template-20.1.1.vsix → Angular.ng-template-20.3.3.vsix}/package.json +34 -53
  4. package/dist/assets/{Angular.ng-template-20.1.1.vsix → Angular.ng-template-20.3.3.vsix}/template.json +1 -1
  5. package/dist/assets/{Dart-Code.dart-code-3.117.20250731.vsix → Dart-Code.dart-code-3.123.20251113.vsix}/dart-language-configuration.json +2 -0
  6. package/dist/assets/{Dart-Code.dart-code-3.117.20250731.vsix → Dart-Code.dart-code-3.123.20251113.vsix}/package.json +289 -50
  7. package/dist/assets/{Dart-Code.dart-code-3.117.20250731.vsix → Dart-Code.dart-code-3.123.20251113.vsix}/readme.md +1 -1
  8. package/dist/assets/{HashiCorp.terraform-2.34.2025012311.vsix → HashiCorp.terraform-2.37.2025092217.vsix}/changelog.md +86 -0
  9. package/dist/assets/{HashiCorp.terraform-2.34.2025012311.vsix → HashiCorp.terraform-2.37.2025092217.vsix}/package.json +69 -20
  10. package/dist/assets/{HashiCorp.terraform-2.34.2025012311.vsix → HashiCorp.terraform-2.37.2025092217.vsix}/readme.md +18 -1
  11. package/dist/assets/{JakeBecker.elixir-ls-0.28.0.vsix → JakeBecker.elixir-ls-0.29.3.vsix}/changelog.md +48 -0
  12. package/dist/assets/{JakeBecker.elixir-ls-0.28.0.vsix → JakeBecker.elixir-ls-0.29.3.vsix}/package.json +142 -5
  13. package/dist/assets/{JakeBecker.elixir-ls-0.28.0.vsix → JakeBecker.elixir-ls-0.29.3.vsix}/readme.md +7 -3
  14. package/dist/assets/{JuanBlanco.solidity-0.0.185.vsix → JuanBlanco.solidity-0.0.187.vsix}/README.md +3 -1
  15. package/dist/assets/{JuanBlanco.solidity-0.0.185.vsix → JuanBlanco.solidity-0.0.187.vsix}/package.json +22 -21
  16. package/dist/assets/{JuanBlanco.solidity-0.0.185.vsix → JuanBlanco.solidity-0.0.187.vsix}/solidity.json +2 -18
  17. package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/package.json +23 -27
  18. package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/package.nls.ja.json +4 -0
  19. package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/package.nls.json +5 -1
  20. package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/package.nls.ru.json +4 -0
  21. package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/package.nls.zh-CN.json +4 -0
  22. package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/package.nls.zh-TW.json +4 -0
  23. package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/vue.tmLanguage.json +3 -9
  24. package/dist/assets/{golang.Go-0.49.0.vsix → golang.Go-0.51.1.vsix}/README.md +4 -4
  25. package/dist/assets/{golang.Go-0.49.0.vsix → golang.Go-0.51.1.vsix}/package.json +94 -17
  26. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/CHANGELOG.md +354 -116
  27. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/README.md +0 -6
  28. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.json +158 -154
  29. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.cs.json +4 -3
  30. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.de.json +4 -3
  31. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.es.json +4 -3
  32. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.fr.json +4 -3
  33. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.it.json +4 -3
  34. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.ja.json +4 -3
  35. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.json +3 -2
  36. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.ko.json +4 -3
  37. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.pl.json +4 -3
  38. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.pt-br.json +4 -3
  39. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.ru.json +4 -3
  40. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.tr.json +4 -3
  41. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.zh-cn.json +4 -3
  42. package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/package.nls.zh-tw.json +4 -3
  43. package/dist/assets/ms-python.python-2025.19.2025111701.vsix/package.json +1 -0
  44. package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/readme.md +20 -10
  45. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/CHANGELOG.md +94 -6
  46. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.json +196 -15
  47. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.cs.json +5 -1
  48. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.de.json +6 -2
  49. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.es.json +5 -1
  50. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.fr.json +5 -1
  51. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.it.json +6 -2
  52. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.ja.json +5 -1
  53. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.json +18 -9
  54. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.ko.json +6 -2
  55. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.pl.json +5 -1
  56. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.pt-br.json +6 -2
  57. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.ru.json +5 -1
  58. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.tr.json +5 -1
  59. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.zh-cn.json +5 -1
  60. package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/package.nls.zh-tw.json +6 -2
  61. package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/dune-project.json +70 -0
  62. package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/dune-workspace.json +204 -0
  63. package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/dune.json +141 -4
  64. package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/menhir.json +1 -1
  65. package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocamlformat.json +7 -3
  66. package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/package.json +162 -48
  67. package/dist/assets/{redhat.java-1.44.2025073008.vsix/CHANGELOG.md → redhat.java-1.48.2025111408.vsix/changelog.md} +52 -0
  68. package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/package.json +89 -26
  69. package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/package.nls.json +2 -1
  70. package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/package.nls.ko.json +12 -7
  71. package/dist/assets/{redhat.java-1.44.2025073008.vsix/README.md → redhat.java-1.48.2025111408.vsix/readme.md} +5 -5
  72. package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/README.md +33 -61
  73. package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/package.json +41 -5
  74. package/dist/assets/sumneko.lua-3.15.0.vsix/changelog.md +2314 -2314
  75. package/dist/assets/sumneko.lua-3.15.0.vsix/package.json +3455 -3455
  76. package/dist/assets/sumneko.lua-3.15.0.vsix/package.nls.es-419.json +247 -247
  77. package/dist/assets/sumneko.lua-3.15.0.vsix/package.nls.ja-jp.json +248 -248
  78. package/dist/assets/sumneko.lua-3.15.0.vsix/package.nls.json +248 -248
  79. package/dist/assets/sumneko.lua-3.15.0.vsix/package.nls.pt-br.json +248 -248
  80. package/dist/assets/sumneko.lua-3.15.0.vsix/package.nls.zh-cn.json +248 -248
  81. package/dist/assets/sumneko.lua-3.15.0.vsix/package.nls.zh-tw.json +248 -248
  82. package/dist/assets/sumneko.lua-3.15.0.vsix/readme.md +101 -101
  83. package/dist/assets/sumneko.lua-3.15.0.vsix/schema.json +3549 -3549
  84. package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/package.json +5 -2
  85. package/dist/extensions/Angular.ng-template-20.3.3.vsix.js +32 -0
  86. package/dist/extensions/Dart-Code.dart-code-3.123.20251113.vsix.js +20 -0
  87. package/dist/extensions/HashiCorp.terraform-2.37.2025092217.vsix.js +28 -0
  88. package/dist/extensions/JakeBecker.elixir-ls-0.29.3.vsix.js +26 -0
  89. package/dist/extensions/JuanBlanco.solidity-0.0.187.vsix.js +22 -0
  90. package/dist/extensions/{Vue.volar-3.0.4.vsix.js → Vue.volar-3.1.4.vsix.js} +20 -20
  91. package/dist/extensions/golang.Go-0.51.1.vsix.js +24 -0
  92. package/dist/extensions/ms-dotnettools.csharp-2.101.21.vsix.js +58 -0
  93. package/dist/extensions/{ms-python.python-2025.11.2025072901.vsix.js → ms-python.python-2025.19.2025111701.vsix.js} +25 -25
  94. package/dist/extensions/ms-vscode.cpptools-1.29.0.vsix.js +44 -0
  95. package/dist/extensions/ocamllabs.ocaml-platform-2.0.1.vsix.js +88 -0
  96. package/dist/extensions/redhat.java-1.48.2025111408.vsix.js +48 -0
  97. package/dist/extensions/scalameta.metals-1.59.2.vsix.js +36 -0
  98. package/dist/extensions/sumneko.lua-3.15.0.vsix.js +10 -10
  99. package/dist/extensions/svelte.svelte-vscode-109.12.0.vsix.js +44 -0
  100. package/dist/node_modules/monaco-emacs/lib/emacs/actions.js +50 -50
  101. package/dist/node_modules/monaco-emacs/lib/emacs/commands.js +14 -14
  102. package/dist/node_modules/monaco-emacs/lib/emacs/state.js +8 -8
  103. package/dist/node_modules/monaco-emacs/lib/emacs/util.js +12 -12
  104. package/dist/node_modules/monaco-emacs/lib/index.js +10 -10
  105. package/dist/node_modules/monaco-vim/lib/cm/keymap_vim.js +5 -5
  106. package/dist/node_modules/monaco-vim/lib/cm_adapter.js +4 -4
  107. package/dist/node_modules/monaco-vim/lib/index.js +6 -6
  108. package/dist/node_modules/monaco-vim/lib/statusbar.js +4 -4
  109. package/dist/tools.js +1 -1
  110. package/package.json +102 -99
  111. package/stats.html +1 -1
  112. package/dist/assets/ms-python.python-2025.11.2025072901.vsix/package.json +0 -1
  113. package/dist/extensions/Angular.ng-template-20.1.1.vsix.js +0 -32
  114. package/dist/extensions/Dart-Code.dart-code-3.117.20250731.vsix.js +0 -20
  115. package/dist/extensions/HashiCorp.terraform-2.34.2025012311.vsix.js +0 -28
  116. package/dist/extensions/JakeBecker.elixir-ls-0.28.0.vsix.js +0 -26
  117. package/dist/extensions/JuanBlanco.solidity-0.0.185.vsix.js +0 -22
  118. package/dist/extensions/golang.Go-0.49.0.vsix.js +0 -24
  119. package/dist/extensions/ms-dotnettools.csharp-2.87.26.vsix.js +0 -58
  120. package/dist/extensions/ms-vscode.cpptools-1.26.3.vsix.js +0 -44
  121. package/dist/extensions/ocamllabs.ocaml-platform-1.31.0.vsix.js +0 -88
  122. package/dist/extensions/redhat.java-1.44.2025073008.vsix.js +0 -48
  123. package/dist/extensions/scalameta.metals-1.52.4.vsix.js +0 -36
  124. package/dist/extensions/svelte.svelte-vscode-109.10.0.vsix.js +0 -44
  125. /package/dist/assets/{Angular.ng-template-20.1.1.vsix → Angular.ng-template-20.3.3.vsix}/angular.png +0 -0
  126. /package/dist/assets/{Angular.ng-template-20.1.1.vsix → Angular.ng-template-20.3.3.vsix}/expression.json +0 -0
  127. /package/dist/assets/{Angular.ng-template-20.1.1.vsix → Angular.ng-template-20.3.3.vsix}/host-object-literal.json +0 -0
  128. /package/dist/assets/{Angular.ng-template-20.1.1.vsix → Angular.ng-template-20.3.3.vsix}/inline-styles.json +0 -0
  129. /package/dist/assets/{Angular.ng-template-20.1.1.vsix → Angular.ng-template-20.3.3.vsix}/inline-template.json +0 -0
  130. /package/dist/assets/{Angular.ng-template-20.1.1.vsix → Angular.ng-template-20.3.3.vsix}/let-declaration.json +0 -0
  131. /package/dist/assets/{Angular.ng-template-20.1.1.vsix/README.md → Angular.ng-template-20.3.3.vsix/readme.md} +0 -0
  132. /package/dist/assets/{Angular.ng-template-20.1.1.vsix → Angular.ng-template-20.3.3.vsix}/template-blocks.json +0 -0
  133. /package/dist/assets/{Angular.ng-template-20.1.1.vsix → Angular.ng-template-20.3.3.vsix}/template-tag.json +0 -0
  134. /package/dist/assets/{Dart-Code.dart-code-3.117.20250731.vsix → Dart-Code.dart-code-3.123.20251113.vsix}/changelog.md +0 -0
  135. /package/dist/assets/{Dart-Code.dart-code-3.117.20250731.vsix → Dart-Code.dart-code-3.123.20251113.vsix}/dart.json +0 -0
  136. /package/dist/assets/{Dart-Code.dart-code-3.117.20250731.vsix → Dart-Code.dart-code-3.123.20251113.vsix}/dart.png +0 -0
  137. /package/dist/assets/{HashiCorp.terraform-2.34.2025012311.vsix → HashiCorp.terraform-2.37.2025092217.vsix}/HashiCorp_Icon_Black_RGB.svg +0 -0
  138. /package/dist/assets/{HashiCorp.terraform-2.34.2025012311.vsix → HashiCorp.terraform-2.37.2025092217.vsix}/HashiCorp_Icon_White_RGB.svg +0 -0
  139. /package/dist/assets/{HashiCorp.terraform-2.34.2025012311.vsix → HashiCorp.terraform-2.37.2025092217.vsix}/hcl.tmGrammar.json +0 -0
  140. /package/dist/assets/{HashiCorp.terraform-2.34.2025012311.vsix → HashiCorp.terraform-2.37.2025092217.vsix}/language-configuration.json +0 -0
  141. /package/dist/assets/{HashiCorp.terraform-2.34.2025012311.vsix → HashiCorp.terraform-2.37.2025092217.vsix}/terraform.tmGrammar.json +0 -0
  142. /package/dist/assets/{HashiCorp.terraform-2.34.2025012311.vsix/terraform_stacks.svg → HashiCorp.terraform-2.37.2025092217.vsix/terraform_feature.svg} +0 -0
  143. /package/dist/assets/{HashiCorp.terraform-2.34.2025012311.vsix → HashiCorp.terraform-2.37.2025092217.vsix}/terraform_logo_mark_light_universal.png +0 -0
  144. /package/dist/assets/{JakeBecker.elixir-ls-0.28.0.vsix → JakeBecker.elixir-ls-0.29.3.vsix}/eex-language-configuration.json +0 -0
  145. /package/dist/assets/{JakeBecker.elixir-ls-0.28.0.vsix → JakeBecker.elixir-ls-0.29.3.vsix}/eex.json +0 -0
  146. /package/dist/assets/{JakeBecker.elixir-ls-0.28.0.vsix → JakeBecker.elixir-ls-0.29.3.vsix}/elixir-language-configuration.json +0 -0
  147. /package/dist/assets/{JakeBecker.elixir-ls-0.28.0.vsix → JakeBecker.elixir-ls-0.29.3.vsix}/elixir.json +0 -0
  148. /package/dist/assets/{JakeBecker.elixir-ls-0.28.0.vsix → JakeBecker.elixir-ls-0.29.3.vsix}/html-eex.json +0 -0
  149. /package/dist/assets/{JakeBecker.elixir-ls-0.28.0.vsix → JakeBecker.elixir-ls-0.29.3.vsix}/logo.png +0 -0
  150. /package/dist/assets/{JuanBlanco.solidity-0.0.185.vsix → JuanBlanco.solidity-0.0.187.vsix}/icon.png +0 -0
  151. /package/dist/assets/{JuanBlanco.solidity-0.0.185.vsix → JuanBlanco.solidity-0.0.187.vsix}/solidity-markdown-injection.json +0 -0
  152. /package/dist/assets/{JuanBlanco.solidity-0.0.185.vsix → JuanBlanco.solidity-0.0.187.vsix}/solidity.configuration.json +0 -0
  153. /package/dist/assets/{JuanBlanco.solidity-0.0.185.vsix → JuanBlanco.solidity-0.0.187.vsix}/solidity2.json +0 -0
  154. /package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/changelog.md +0 -0
  155. /package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/icon.png +0 -0
  156. /package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/markdown-language-configuration.json +0 -0
  157. /package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/markdown-vue.json +0 -0
  158. /package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/mdx-vue.json +0 -0
  159. /package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/readme.md +0 -0
  160. /package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/sfc-template-language-configuration.json +0 -0
  161. /package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/vue-directives.json +0 -0
  162. /package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/vue-interpolations.json +0 -0
  163. /package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/vue-language-configuration.json +0 -0
  164. /package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/vue-sfc-style-variable-injection.json +0 -0
  165. /package/dist/assets/{Vue.volar-3.0.4.vsix → Vue.volar-3.1.4.vsix}/vue-tsconfig.schema.json +0 -0
  166. /package/dist/assets/{golang.Go-0.49.0.vsix → golang.Go-0.51.1.vsix}/CHANGELOG.md +0 -0
  167. /package/dist/assets/{golang.Go-0.49.0.vsix → golang.Go-0.51.1.vsix}/go-logo-blue.png +0 -0
  168. /package/dist/assets/{golang.Go-0.49.0.vsix → golang.Go-0.51.1.vsix}/go.json +0 -0
  169. /package/dist/assets/{golang.Go-0.49.0.vsix → golang.Go-0.51.1.vsix}/go.mod.language-configuration.json +0 -0
  170. /package/dist/assets/{golang.Go-0.49.0.vsix → golang.Go-0.51.1.vsix}/go.mod.tmGrammar.json +0 -0
  171. /package/dist/assets/{golang.Go-0.49.0.vsix → golang.Go-0.51.1.vsix}/go.sum.tmGrammar.json +0 -0
  172. /package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/aspnetcorerazor.tmLanguage.json +0 -0
  173. /package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/csharp.json +0 -0
  174. /package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/csharpIcon.png +0 -0
  175. /package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/language-configuration.json +0 -0
  176. /package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/language-configuration2.json +0 -0
  177. /package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/vs2019_dark.json +0 -0
  178. /package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/vs2019_light.json +0 -0
  179. /package/dist/assets/{ms-dotnettools.csharp-2.87.26.vsix → ms-dotnettools.csharp-2.101.21.vsix}/xaml.tmLanguage.json +0 -0
  180. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/changelog.md +0 -0
  181. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/conda-environment.json +0 -0
  182. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/conda-meta.json +0 -0
  183. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/condarc.json +0 -0
  184. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/icon.png +0 -0
  185. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.cs.json +0 -0
  186. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.de.json +0 -0
  187. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.es.json +0 -0
  188. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.fr.json +0 -0
  189. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.it.json +0 -0
  190. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.ja.json +0 -0
  191. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.json +0 -0
  192. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.ko.json +0 -0
  193. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.pl.json +0 -0
  194. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.pt-br.json +0 -0
  195. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.qps-ploc.json +0 -0
  196. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.ru.json +0 -0
  197. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.tr.json +0 -0
  198. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.zh-cn.json +0 -0
  199. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/package.nls.zh-tw.json +0 -0
  200. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/pip-requirements.json +0 -0
  201. /package/dist/assets/{ms-python.python-2025.11.2025072901.vsix → ms-python.python-2025.19.2025111701.vsix}/pip-requirements.tmLanguage.json +0 -0
  202. /package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/LanguageCCPP_color_128x.png +0 -0
  203. /package/dist/assets/{ms-vscode.cpptools-1.26.3.vsix → ms-vscode.cpptools-1.29.0.vsix}/README.md +0 -0
  204. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/META.json +0 -0
  205. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/META2.json +0 -0
  206. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/atd.json +0 -0
  207. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/cram.json +0 -0
  208. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/dune-project2.json +0 -0
  209. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/dune2.json +0 -0
  210. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/dune3.json +0 -0
  211. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/logo.png +0 -0
  212. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/menhir-action.json +0 -0
  213. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/menhir2.json +0 -0
  214. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/merlin.json +0 -0
  215. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/mlx.json +0 -0
  216. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/oasis.json +0 -0
  217. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/oasis2.json +0 -0
  218. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocaml-markdown-codeblock.json +0 -0
  219. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocaml.interface.json +0 -0
  220. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocaml.json +0 -0
  221. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocaml2.json +0 -0
  222. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocaml3.json +0 -0
  223. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocamlbuild.json +0 -0
  224. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocamlbuild2.json +0 -0
  225. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocamldoc.json +0 -0
  226. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocamlformat2.json +0 -0
  227. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocamllex.json +0 -0
  228. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocamllex2.json +0 -0
  229. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/ocamllex3.json +0 -0
  230. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/opam-install.json +0 -0
  231. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/opam-install2.json +0 -0
  232. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/opam.json +0 -0
  233. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/opam2.json +0 -0
  234. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/readme.md +0 -0
  235. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/reason-markdown-codeblock.json +0 -0
  236. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/reason.json +0 -0
  237. /package/dist/assets/{ocamllabs.ocaml-platform-1.31.0.vsix → ocamllabs.ocaml-platform-2.0.1.vsix}/reason2.json +0 -0
  238. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/JavaProperties.tmLanguage.json +0 -0
  239. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/icon128.png +0 -0
  240. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/inline-html.json +0 -0
  241. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/inline-json.json +0 -0
  242. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/inline-sql.json +0 -0
  243. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/inline-xml.json +0 -0
  244. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/inline-yaml.json +0 -0
  245. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/java-properties-configuration.json +0 -0
  246. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/java.tmLanguage.json +0 -0
  247. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/kotlin.tmLanguage.json +0 -0
  248. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/language-configuration.json +0 -0
  249. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/language-configuration2.json +0 -0
  250. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/package.nls.zh-cn.json +0 -0
  251. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/package.nls.zh-tw.json +0 -0
  252. /package/dist/assets/{redhat.java-1.44.2025073008.vsix → redhat.java-1.48.2025111408.vsix}/package.schema.json +0 -0
  253. /package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/CHANGELOG.md +0 -0
  254. /package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/book-dark.svg +0 -0
  255. /package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/book-light.svg +0 -0
  256. /package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/buildtarget.json +0 -0
  257. /package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/file_type_java.svg +0 -0
  258. /package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/file_type_scala.svg +0 -0
  259. /package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/jvm-bytecode-verbose.json +0 -0
  260. /package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/jvm-bytecode.json +0 -0
  261. /package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/logo.png +0 -0
  262. /package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/scalameta-logo.png +0 -0
  263. /package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/semanticdb.json +0 -0
  264. /package/dist/assets/{scalameta.metals-1.52.4.vsix → scalameta.metals-1.59.2.vsix}/tasty.json +0 -0
  265. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/CHANGELOG.md +0 -0
  266. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/README.md +0 -0
  267. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/javascript.json +0 -0
  268. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/language-configuration.json +0 -0
  269. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/logo.png +0 -0
  270. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/markdown-svelte-css.json +0 -0
  271. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/markdown-svelte-js.json +0 -0
  272. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/markdown-svelte.json +0 -0
  273. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/package-json-schema.json +0 -0
  274. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/postcss.json +0 -0
  275. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/prettier-options-schema.json +0 -0
  276. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/pug-svelte-dotblock.json +0 -0
  277. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/pug-svelte-tags.json +0 -0
  278. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/pug-svelte.json +0 -0
  279. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/svelte.json +0 -0
  280. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/svelte.tmLanguage.json +0 -0
  281. /package/dist/assets/{svelte.svelte-vscode-109.10.0.vsix → svelte.svelte-vscode-109.12.0.vsix}/typescript.json +0 -0
@@ -1,2314 +1,2314 @@
1
- # changelog
2
-
3
- ## Unreleased
4
- <!-- Add all new changes here. They will be moved under a version at release -->
5
-
6
- ## 3.15.0
7
- `2025-6-25`
8
- * `NEW` Support custom addons path for enhanced editor flexibility
9
- * `NEW` Add `Lua.type.maxUnionVariants` which can be set to limit how many union variants are checked against
10
- * `CHG` Add missing locale
11
- * `CHG` Fulfill zh-tw translations
12
- * `FIX` Cannot debug in Linux due to lua-debug expecting host process to have lua54 symbols available
13
- * `FIX` Support hex color codes with `#` in `textDocument/documentColor`
14
- * `FIX` Prevent class methods from triggering missing-fields diagnostics
15
- * `FIX` Updates the EmmyLuaCodeStyle submodule reference to a newer commit, ensuring compatibility with GCC 15
16
- * `FIX` Large unions will no longer erroneously fail to match later variants
17
-
18
- ## 3.14.0
19
- `2025-4-7`
20
- * `NEW` locale `es-419`, thanks [Felipe Lema](https://codeberg.org/FelipeLema)
21
- * `FIX` prevent unnecessary edits by LSP formatting when content did not change
22
- * `FIX` return no completions if completion is disabled
23
- * `FIX` optimized the performance of large literal tables (e.g., configuration tables)
24
-
25
- ## 3.13.9
26
- `2025-3-13`
27
- * `CHG` remove the limit for analyzing the literal table
28
-
29
- ## 3.13.8
30
- `2025-3-12`
31
- * `CHG` when analyzing the literal table, only the first 100 items are analyzed at most
32
- * `CHG` when checking type matching for union types, only the first 100 items are checked at most
33
- * `FIX` Update `--help` message.
34
- * `FIX` --check now respects ignoreDir setting
35
- * `FIX` incorrect argument skip pattern for `--check_out_path=`, which incorrectly skips the next argument
36
-
37
- ## 3.13.7
38
- `2025-3-10`
39
- * `NEW` CLI: added `--help`.
40
- * `CHG` default path for `--doc_out_path` is the current directory
41
- * `FIX` incorrect argument skip pattern for `--check_out_path=`, which incorrectly skips the next argument
42
- * `FIX` incorrect error message for `--doc_update`.
43
- * `FIX` reimplement section `luals.config` in file doc.json
44
- * `FIX` incorrect file names in file doc.json
45
- * `FIX` remove extra `./` path prefix in the check report when using `--check=.`
46
- * `FIX` Narrowing of types with literal fields: [#3056](https://github.com/LuaLS/lua-language-server/issues/3056), [#3089](https://github.com/LuaLS/lua-language-server/issues/3089)
47
- * `FIX` correct lua version of `math.ult` and `math.type`
48
- * `FIX` incorrect links for `pattern` in `string` methods
49
- * `FIX` fix type annotations for bit module
50
- * `FIX` Another regression related to type narrow and generic param introduced since `v3.10.1` [#3087](https://github.com/LuaLS/lua-language-server/issues/3087)
51
-
52
- ## 3.13.6
53
- `2025-2-6`
54
- * `NEW` `---@class` supports attribute `partial`, which will not check missing inherited fields [#3023](https://github.com/LuaLS/lua-language-server/issues/3023)
55
- ```lua
56
- ---@class Config
57
- ---@field a number
58
-
59
- ---@class (partial) Config.P: Config
60
- ---@field b number
61
-
62
- ---@type Config.P[]
63
- local cfgs = {}
64
- cfgs[1] = { b = 1 } -- no warning
65
- cfgs[2] = {} -- only warns missing `b`
66
- ```
67
- This enables the previous missing field check behavior before [#2970](https://github.com/LuaLS/lua-language-server/issues/2970)
68
- * `NEW` Added variable substitution support for vscode's `${workspaceFolder:x}` when resolving path placeholders [#2987](https://github.com/LuaLS/lua-language-server/issues/2987)
69
- * `NEW` Added `--check_format=json|pretty` for use with `--check` to output diagnostics in a human readable format.
70
- * `NEW` Test CLI: `--name=<testname>` `-n=<testname>`: run specify unit test
71
- * `CHG` Generic pattern now supports definition after capture and optional, union, array [#3014](https://github.com/LuaLS/lua-language-server/issues/3014) [#3031](https://github.com/LuaLS/lua-language-server/pull/3031)
72
- ```lua
73
- ---@generic T
74
- ---@param t `T`.Cat?
75
- ---@return T?
76
- local function f(t) end
77
-
78
- local t = f('Smile') --> t is `(Smile.Cat)?`
79
- ```
80
- * `FIX` Fixed the error that the configuration file pointed to by the `--configpath` option was not read and loaded.
81
- * `FIX` Don't truncate any output when running in `--doc` mode [#3049](https://github.com/LuaLS/lua-language-server/issues/3049)
82
- * `FIX` Generic return can be optional.
83
- * `FIX` Fixed the comment calculating in docs `---@param a string?Comment` - now its `Comment` instead of `omment` [#3028](https://github.com/LuaLS/lua-language-server/pull/3028)
84
- * `FIX` Fixed cannot bind variables using tail comment `@class` [#2673](https://github.com/LuaLS/lua-language-server/issues/2673)
85
- * `FIX` Fixed missing field completion for generic class object [#2196](https://github.com/LuaLS/lua-language-server/issues/2196) [#2945](https://github.com/LuaLS/lua-language-server/issues/2945) [#3041](https://github.com/LuaLS/lua-language-server/issues/3041)
86
-
87
- ## 3.13.5
88
- `2024-12-20`
89
- * `NEW` Setting: `Lua.hint.awaitPropagate`: When enabled, `--@async` propagates to the caller.
90
- * `CHG` Add server version information to `initialize` response [#2996](https://github.com/LuaLS/lua-language-server/pull/2996)
91
- * `CHG` If the `---@field` of the same name has a type of `fun`, the `duplicate-doc-field` check will not be performed.
92
- * `FIX` Incorrect infer for function array annotation on tables [#2367](https://github.com/LuaLS/lua-language-server/issues/2367)
93
-
94
- ## 3.13.4
95
- `2024-12-13`
96
- * `CHG` Can adjust the level of detail of Hover (VSCode)
97
-
98
- ## 3.13.3
99
- `2024-12-6`
100
- * `CHG` Update Love2d version
101
- * `CHG` Improve type infer of `table.unpack` and `unpack`
102
- * `FIX` `missing-fields` diagnostic now warns about missing inherited fields
103
- * `FIX` Incorrect `param-type-mismatch` diagnostic for optional fields
104
-
105
- ## 3.13.2
106
- `2024-11-21`
107
- * `CHG` fulfill zh-cn translations
108
- * `FIX` Add missing `errs ~= nil` checks to script/vm/type checkTableShape
109
-
110
- ## 3.13.1
111
- `2024-11-13`
112
- * `FIX` Incorrect type check in some case
113
-
114
- ## 3.13.0
115
- `2024-11-13`
116
- * `NEW` Setting: `Lua.type.inferTableSize`: A Small Table array can be infered
117
- * `NEW` Add custom repository support for addonManager. New configuration setting: `Lua.addonManager.repositoryBranch` and `Lua.addonManager.repositoryPath`
118
- * `NEW` Infer function parameter types when the function is used as an callback argument and that argument has a `fun()` annotation. Enable with `Lua.type.inferParamType` setting. [#2695](https://github.com/LuaLS/lua-language-server/pull/2695)
119
- ```lua
120
- ---@param callback fun(a: integer)
121
- function register(callback) end
122
-
123
- local function callback(a) end --> a: integer
124
- register(callback)
125
- ```
126
- * `CHG` Basic types allow contravariance
127
- ```lua
128
- ---@class int32: integer
129
-
130
- ---@type integer
131
- local n
132
-
133
- ---@type int32
134
- local a = n
135
- ```
136
- * `FIX` Improve type narrow with **literal alias type** during completion and signature help
137
-
138
- ## 3.12.0
139
- `2024-10-30`
140
- * `NEW` Support importing `enum` through class name suffix matching in quick fixes, allowing the import of `enum` from `table.table.enum; return table`.
141
- * `NEW` Support limited multiline annotations
142
- ```lua
143
- ---@type {
144
- --- x: number,
145
- --- y: number,
146
- --- z: number,
147
- ---}
148
- local point --> local point: { x: number, y: number, z: number }
149
- ```
150
- * `FIX` A regression related to type narrow and generic param introduced since `v3.10.1`
151
- * `FIX` Parse storagePath to improve reliability of resolving ${addons} placeholder
152
- * `FIX` Reference should also look in tablefield
153
- * `FIX` Determine that the index of `{...}` is an integer when iterating
154
-
155
- ## 3.11.1
156
- `2024-10-9`
157
- * `FIX` Fixed an issue preventing to set the locale to Japanese
158
- * `FIX` Preserve newlines between function comment and @see
159
- * `FIX` Accept storagePath option from client to resolve addon directory not found
160
-
161
- ## 3.11.0
162
- `2024-9-30`
163
- * `NEW` Added support for Japanese locale
164
- * `NEW` Infer function parameter types when overriding the same-named class function in an instance of that class [#2158](https://github.com/LuaLS/lua-language-server/issues/2158)
165
- * `NEW` Types with literal fields can be narrowed.
166
- * `NEW` Reference addons installed via the addon manager with `${addons}` [#2866](https://github.com/LuaLS/lua-language-server/pull/2866).
167
- * `NEW` Support using `---@class` on `rawset(_G, ...)` to annotate the created global variable [#2862](https://github.com/LuaLS/lua-language-server/issues/2862)
168
- * `NEW` Settings:
169
- + `Lua.language.fixIndent`
170
- + `Lua.language.completeAnnotation`
171
- * `FIX` Eliminate floating point error in test benchmark output
172
- * `FIX` Remove luamake install from make scripts
173
- * `FIX` Incorrect `table` type injected to the global variable created by `rawset(_G, ...)` [#2863](https://github.com/LuaLS/lua-language-server/issues/2863)
174
-
175
- ## 3.10.6
176
- `2024-9-10`
177
- * `NEW` Custom documentation exporter
178
- * `NEW` Setting: `Lua.docScriptPath`: Path to a script that overrides `cli.doc.export`, allowing user-specified documentation exporting.
179
- * `NEW` Infer the parameter types of a same-named function in the subclass based on the parameter types in the superclass function.
180
- * `FIX` Fix `VM.OnCompileFunctionParam` function in plugins
181
- * `FIX` Lua 5.1: fix incorrect warning when using setfenv with an int as first parameter
182
- * `FIX` Improve type narrow by checking exact match on literal type params
183
- * `FIX` Correctly list enums for function overload arguments [#2840](https://github.com/LuaLS/lua-language-server/pull/2840)
184
- * `FIX` Incorrect function params' type infer when there is only `@overload` [#2509](https://github.com/LuaLS/lua-language-server/issues/2509) [#2708](https://github.com/LuaLS/lua-language-server/issues/2708) [#2709](https://github.com/LuaLS/lua-language-server/issues/2709)
185
- * `FIX` Only call workspace/configuration when available [#981](https://github.com/LuaLS/lua-language-server/issues/981), [#2318](https://github.com/LuaLS/lua-language-server/issues/2318), [2336](https://github.com/LuaLS/lua-language-server/issues/2336) [#2843](https://github.com/LuaLS/lua-language-server/pull/2843)
186
-
187
- ## 3.10.5
188
- `2024-8-19`
189
- * `NEW` using `enum (partial)`, it suggests all fields with the same `enum` type rather than just the fields from the current table.
190
- * `NEW` When using `enum["<key>" or <index>]`, undefined fields will raise an 'undefined' error.
191
- * `FIX` Renaming files in the directory leads to the auto-correction in "require" adding extra characters.
192
- * `FIX` Performance issue
193
- * `FIX` Fix incorrect indent fixing for `for`
194
-
195
- ## 3.10.4
196
- `2024-8-16`
197
- * `NEW` Setting: `Lua.type.checkTableShape`: Add matching checks between the shape of tables and classes, during type checking. [#2768](https://github.com/LuaLS/lua-language-server/pull/2768)
198
- * `NEW` `undefined-field` supports `enum`
199
- * `CHG` Show enumed table as `enum X` instead of `table`
200
- * `FIX` Error `attempt to index a nil value` when `Lua.hint.semicolon == 'All'` [#2788](https://github.com/LuaLS/lua-language-server/issues/2788)
201
- * `FIX` Incorrect LuaCats parsing for `"'"`
202
- * `FIX` Incorrect indent fixings
203
-
204
- ## 3.10.3
205
- `2024-8-8`
206
- * `FIX` Memory leak with `---@enum(partical)`
207
-
208
- ## 3.10.2
209
- `2024-8-7`
210
- * `NEW` Add support for binary metamethod on right operand [#2777](https://github.com/LuaLS/lua-language-server/pull/2777)
211
- * `FIX` Incorrect indentation fixing in some case
212
-
213
- ## 3.10.1
214
- `2024-8-2`
215
- * `FIX` Runtime error
216
- * `FIX` Disable indentation fixing for Non-VSCode
217
-
218
- ## 3.10.0
219
- `2024-8-1`
220
- * `NEW` Add postfix snippet for `unpack`
221
- * `NEW` Add support for lambda style functions, `|paramList| expr` is syntactic sugar for `function(paramList) return expr end`
222
- * `NEW` Added lua regular expression support for `Lua.doc.<scope>Name` [#2753](https://github.com/LuaLS/lua-language-server/pull/2753)
223
- * `NEW` You can now click on "References" in CodeLen to display the reference list(VSCode)
224
- * `NEW` Improved behavior for inserting new lines:
225
- + When inside an annotation, an annotation tag will be added at the beginning of the line (VSCode).
226
- + When between `function () end` or similar constructs, the format will be adjusted to a more reasonable one (VSCode) and leading/trailing spaces will be removed (generic).
227
- + Attempts to semantically fix improper indentation (generic).
228
- * `CHG` Improve performance of multithreaded `--check` and `undefined-field` diagnostic
229
- * `CHG` Change spacing of parameter inlay hints to match other LSPs, like `rust-analyzer`
230
- * `FIX` `diagnostics.severity` defaulting to "Warning" when run using `--check` [#2730](https://github.com/LuaLS/lua-language-server/issues/2730)
231
- * `FIX` Respect `completion.showParams` config for local function completion
232
- * `FIX` Addons can now self-recommend as expected. Fixed by correcting the `wholeMatch` function
233
- * `FIX` Now correctly evaluates the visibility of fields in a class when they are defined directly in the object. use for completion and invisible dianostic. [#2752](https://github.com/LuaLS/lua-language-server/issues/2752)
234
- * `FIX` Bad triggering of the `inject-field` diagnostic, when the fields are declared at the creation of the object [#2746](https://github.com/LuaLS/lua-language-server/issues/2746)
235
- * `FIX` Inconsistent type narrow behavior of function call args [#2758](https://github.com/LuaLS/lua-language-server/issues/2758)
236
- * `FIX` Improve the `missing-fields` logic to be able to correctly handle classes defined several times [#22770](https://github.com/LuaLS/lua-language-server/pull/2770)
237
- * `FIX` Typos in annotation descriptions
238
- * `FIX` incorrect `CompletionItemKind` for postfix snippets [#2773](https://github.com/LuaLS/lua-language-server/pull/2773)
239
-
240
- ## 3.9.3
241
- `2024-6-11`
242
- * `FIX` Sometimes providing incorrect autocompletion when chaining calls
243
-
244
- ## 3.9.2
245
- `2024-6-6`
246
- * `NEW` Reference workspace symbols in comments using `[some text](lua://symbolName)` syntax
247
- * `FIX` Don't do diagnostics when the workspace is not ready
248
- * `FIX` Autocompletion for enum values ​​is not available in some cases
249
-
250
- ## 3.9.1
251
- `2024-5-14`
252
- * revert extension runtime
253
-
254
- ## 3.9.0
255
- `2024-5-11`
256
- * `NEW` goto implementation
257
- * `NEW` narrow the function prototype based on the parameter type
258
- ```lua
259
- ---@overload fun(a: boolean): A
260
- ---@overload fun(a: number): B
261
- local function f(...) end
262
-
263
- local r1 = f(true) --> r1 is `A`
264
- local r2 = f(10) --> r2 is `B`
265
- ```
266
-
267
- ## 3.8.3
268
- `2024-4-23`
269
- * `FIX` server may crash when the workspace is using a non-English path.
270
-
271
- ## 3.8.2
272
- `2024-4-23`
273
- * This is a fake version only for the new version of VSCode, with a core of 3.8.0.
274
-
275
- ## 3.8.1
276
- `2024-4-23`
277
- * This is a fake version only for the old version of VSCode, with a core of `3.7.4`. Starting from the next minor version, the version requirement for VSCode will be raised to prevent users still using the old version of VSCode from updating to the new version and experiencing compatibility issues.
278
-
279
- ## 3.8.0
280
- `2024-4-22`
281
- * `NEW` supports tuple type (@[lizho])
282
- ```lua
283
- ---@type [string, number, boolean]
284
- local t
285
-
286
- local x = t[1] --> x is `string`
287
- local y = t[2] --> y is `number`
288
- local z = t[3] --> z is `boolean`
289
- ```
290
- * `NEW` generic pattern (@[fesily])
291
- ```lua
292
- ---@generic T
293
- ---@param t Cat.`T`
294
- ---@return T
295
- local function f(t) end
296
-
297
- local t = f('Smile') --> t is `Cat.Smile`
298
- ```
299
- * `NEW` alias and enums supports attribute `partial`
300
- ```lua
301
- ---@alias Animal Cat
302
-
303
- ---@alias(partial) Animal Dog
304
-
305
- ---@type Animal
306
- local animal --> animal is `Cat|Dog` here
307
- ```
308
-
309
- ```lua
310
- ---@enum(key) ErrorCodes
311
- local codes1 = {
312
- OK = 0,
313
- ERROR = 1,
314
- FATAL = 2,
315
- }
316
-
317
- ---@enum(key, partial) ErrorCodes
318
- local codes2 = {
319
- WARN = 3,
320
- INFO = 4,
321
- }
322
-
323
- ---@type ErrorCodes
324
- local code
325
-
326
- code = 'ERROR' --> OK
327
- code = 'WARN' --> OK
328
-
329
- ```
330
- * `NEW` plugin: add `OnTransFormAst` interface (@[fesily])
331
- * `NEW` plugin: add `OnNodeCompileFunctionParam` interface (@[fesily])
332
- * `NEW` plugin: add `ResolveRequire` interface (@[Artem Dzhemesiuk])
333
- * `NEW` plugin: support multi plugins (@[fesily])
334
- + setting: `Lua.runtime.plugin` can be `string|string[]`
335
- + setting: `Lua.runtime.pluginArgs` can be `string[]|table<string, string>`
336
- * `NEW` CLI: `--doc` add option `--doc_out_path <PATH>` (@[Andreas Matthias])
337
- * `NEW` CLI: `--doc_update`, update an existing `doc.json` without using `--doc` again (@[Andreas Matthias])
338
- * `NEW` CLI: `--trust_all_plugins`, this is potentially unsafe for normal use and meant for usage in CI environments only (@[Paul Emmerich])
339
- * `CHG` CLI: `--check` will run plugins (@[Daniel Farrell])
340
- * `FIX` diagnostic: `discard-returns` not works in some blocks (@clay-golem)
341
- * `FIX` rename in library files
342
-
343
- ## 3.7.4
344
- `2024-1-5`
345
- * `FIX` rename to unicode with `Lua.runtime.unicodeName = true`
346
-
347
- ## 3.7.3
348
- `2023-11-14`
349
- * `FIX` can not infer arg type in some cases.
350
-
351
- ## 3.7.2
352
- `2023-11-9`
353
- * `FIX` [#2407]
354
-
355
- [#2407]: https://github.com/LuaLS/lua-language-server/issues/2407
356
-
357
- ## 3.7.1
358
- `2023-11-7`
359
- * `FIX` [#2299]
360
- * `FIX` [#2335]
361
-
362
- [#2299]: https://github.com/LuaLS/lua-language-server/issues/2299
363
- [#2335]: https://github.com/LuaLS/lua-language-server/issues/2335
364
-
365
- ## 3.7.0
366
- `2023-8-24`
367
- * `NEW` support `---@type` and `--[[@as]]` for return statement
368
- * `NEW` commandline parameter `--force-accept-workspace`: allowing the use of the root directory or home directory as the workspace
369
- * `NEW` diagnostic: `inject-field`
370
- * `NEW` `---@enum` supports attribute `key`
371
- ```lua
372
- ---@enum (key) AnimalType
373
- local enum = {
374
- Cat = 1,
375
- Dog = 2,
376
- }
377
-
378
- ---@param animal userdata
379
- ---@param atp AnimalType
380
- ---@return boolean
381
- local function isAnimalType(animal, atp)
382
- return API.isAnimalType(animal, enum[atp])
383
- end
384
-
385
- assert(isAnimalType(animal, 'Cat'))
386
- ```
387
- * `NEW` `---@class` supports attribute `exact`
388
- ```lua
389
- ---@class (exact) Point
390
- ---@field x number
391
- ---@field y number
392
- local m = {}
393
- m.x = 1 -- OK
394
- m.y = 2 -- OK
395
- m.z = 3 -- Warning
396
- ```
397
-
398
- * `FIX` wrong hover and signature for method with varargs and overloads
399
- * `FIX` [#2155]
400
- * `FIX` [#2224]
401
- * `FIX` [#2252]
402
- * `FIX` [#2267]
403
-
404
- [#2155]: https://github.com/LuaLS/lua-language-server/issues/2155
405
- [#2224]: https://github.com/LuaLS/lua-language-server/issues/2224
406
- [#2252]: https://github.com/LuaLS/lua-language-server/issues/2252
407
- [#2267]: https://github.com/LuaLS/lua-language-server/issues/2267
408
-
409
- ## 3.6.25
410
- `2023-7-26`
411
- * `FIX` [#2214]
412
-
413
- [#2214]: https://github.com/LuaLS/lua-language-server/issues/2214
414
-
415
- ## 3.6.24
416
- `2023-7-21`
417
- * `NEW` diagnostic: `missing-fields`
418
- * `FIX` shake of `codeLens`
419
- * `FIX` [#2145]
420
-
421
- [#2145]: https://github.com/LuaLS/lua-language-server/issues/2145
422
-
423
- ## 3.6.23
424
- `2023-7-7`
425
- * `CHG` signature: narrow by inputed literal
426
-
427
- ## 3.6.22
428
- `2023-6-14`
429
- * `FIX` [#2038]
430
- * `FIX` [#2042]
431
- * `FIX` [#2062]
432
- * `FIX` [#2083]
433
- * `FIX` [#2088]
434
- * `FIX` [#2110]
435
- * `FIX` [#2129]
436
-
437
- [#2038]: https://github.com/LuaLS/lua-language-server/issues/2038
438
- [#2042]: https://github.com/LuaLS/lua-language-server/issues/2042
439
- [#2062]: https://github.com/LuaLS/lua-language-server/issues/2062
440
- [#2083]: https://github.com/LuaLS/lua-language-server/issues/2083
441
- [#2088]: https://github.com/LuaLS/lua-language-server/issues/2088
442
- [#2110]: https://github.com/LuaLS/lua-language-server/issues/2110
443
- [#2129]: https://github.com/LuaLS/lua-language-server/issues/2129
444
-
445
- ## 3.6.21
446
- `2023-5-24`
447
- * `FIX` disable ffi plugin
448
-
449
- ## 3.6.20
450
- `2023-5-23`
451
- * `NEW` support connecting by socket with `--socket=PORT`
452
- * `FIX` [#2113]
453
-
454
- [#2113]: https://github.com/LuaLS/lua-language-server/issues/2113
455
-
456
- ## 3.6.19
457
- `2023-4-26`
458
- * `FIX` commandline parameter `checklevel` may not work
459
- * `FIX` [#2036]
460
- * `FIX` [#2037]
461
- * `FIX` [#2056]
462
- * `FIX` [#2077]
463
- * `FIX` [#2081]
464
-
465
- [#2036]: https://github.com/LuaLS/lua-language-server/issues/2036
466
- [#2037]: https://github.com/LuaLS/lua-language-server/issues/2037
467
- [#2056]: https://github.com/LuaLS/lua-language-server/issues/2056
468
- [#2077]: https://github.com/LuaLS/lua-language-server/issues/2077
469
- [#2081]: https://github.com/LuaLS/lua-language-server/issues/2081
470
-
471
- ## 3.6.18
472
- `2023-3-23`
473
- * `FIX` [#1943]
474
- * `FIX` [#1996]
475
- * `FIX` [#2004]
476
- * `FIX` [#2013]
477
-
478
- [#1943]: https://github.com/LuaLS/lua-language-server/issues/1943
479
- [#1996]: https://github.com/LuaLS/lua-language-server/issues/1996
480
- [#2004]: https://github.com/LuaLS/lua-language-server/issues/2004
481
- [#2013]: https://github.com/LuaLS/lua-language-server/issues/2013
482
-
483
- ## 3.6.17
484
- `2023-3-9`
485
- * `CHG` export documents: export global variables
486
- * `FIX` [#1715]
487
- * `FIX` [#1753]
488
- * `FIX` [#1914]
489
- * `FIX` [#1922]
490
- * `FIX` [#1924]
491
- * `FIX` [#1928]
492
- * `FIX` [#1945]
493
- * `FIX` [#1955]
494
- * `FIX` [#1978]
495
-
496
- [#1715]: https://github.com/LuaLS/lua-language-server/issues/1715
497
- [#1753]: https://github.com/LuaLS/lua-language-server/issues/1753
498
- [#1914]: https://github.com/LuaLS/lua-language-server/issues/1914
499
- [#1922]: https://github.com/LuaLS/lua-language-server/issues/1922
500
- [#1924]: https://github.com/LuaLS/lua-language-server/issues/1924
501
- [#1928]: https://github.com/LuaLS/lua-language-server/issues/1928
502
- [#1945]: https://github.com/LuaLS/lua-language-server/issues/1945
503
- [#1955]: https://github.com/LuaLS/lua-language-server/issues/1955
504
- [#1978]: https://github.com/LuaLS/lua-language-server/issues/1978
505
-
506
- ## 3.6.13
507
- `2023-3-2`
508
- * `FIX` setting: `Lua.addonManager.enable` should be `true` by default
509
- * `FIX` failed to publish to Windows
510
-
511
- ## 3.6.12
512
- `2023-3-2`
513
- * `NEW` [Addon Manager](https://github.com/LuaLS/lua-language-server/discussions/1607), try it with command `lua.addon_manager.open`. Thanks to [carsakiller](https://github.com/carsakiller)!
514
-
515
- ## 3.6.11
516
- `2023-2-13`
517
- * `CHG` completion: don't show loading process
518
- * `FIX` [#1886]
519
- * `FIX` [#1887]
520
- * `FIX` [#1889]
521
- * `FIX` [#1895]
522
- * `FIX` [#1902]
523
-
524
- [#1886]: https://github.com/LuaLS/lua-language-server/issues/1886
525
- [#1887]: https://github.com/LuaLS/lua-language-server/issues/1887
526
- [#1889]: https://github.com/LuaLS/lua-language-server/issues/1889
527
- [#1895]: https://github.com/LuaLS/lua-language-server/issues/1895
528
- [#1902]: https://github.com/LuaLS/lua-language-server/issues/1902
529
-
530
- ## 3.6.10
531
- `2023-2-7`
532
- * `FIX` [#1869]
533
- * `FIX` [#1872]
534
-
535
- [#1869]: https://github.com/LuaLS/lua-language-server/issues/1869
536
- [#1872]: https://github.com/LuaLS/lua-language-server/issues/1872
537
-
538
- ## 3.6.9
539
- `2023-2-2`
540
- * `FIX` [#1864]
541
- * `FIX` [#1868]
542
- * `FIX` [#1869]
543
- * `FIX` [#1871]
544
-
545
- [#1864]: https://github.com/LuaLS/lua-language-server/issues/1864
546
- [#1868]: https://github.com/LuaLS/lua-language-server/issues/1868
547
- [#1869]: https://github.com/LuaLS/lua-language-server/issues/1869
548
- [#1871]: https://github.com/LuaLS/lua-language-server/issues/1871
549
-
550
- ## 3.6.8
551
- `2023-1-31`
552
- * `NEW` command `lua.exportDocument` . VSCode will display this command in the right-click menu
553
- * `CHG` setting `Lua.workspace.supportScheme` has been removed. All schemes are supported if the language id is `lua`
554
- * `FIX` [#1831]
555
- * `FIX` [#1838]
556
- * `FIX` [#1841]
557
- * `FIX` [#1851]
558
- * `FIX` [#1855]
559
- * `FIX` [#1857]
560
-
561
- [#1831]: https://github.com/LuaLS/lua-language-server/issues/1831
562
- [#1838]: https://github.com/LuaLS/lua-language-server/issues/1838
563
- [#1841]: https://github.com/LuaLS/lua-language-server/issues/1841
564
- [#1851]: https://github.com/LuaLS/lua-language-server/issues/1851
565
- [#1855]: https://github.com/LuaLS/lua-language-server/issues/1855
566
- [#1857]: https://github.com/LuaLS/lua-language-server/issues/1857
567
-
568
- ## 3.6.7
569
- `2023-1-20`
570
- * `FIX` [#1810]
571
- * `FIX` [#1829]
572
-
573
- [#1810]: https://github.com/LuaLS/lua-language-server/issues/1810
574
- [#1829]: https://github.com/LuaLS/lua-language-server/issues/1829
575
-
576
- ## 3.6.6
577
- `2023-1-17`
578
- * `FIX` [#1825]
579
- * `FIX` [#1826]
580
-
581
- [#1825]: https://github.com/LuaLS/lua-language-server/issues/1825
582
- [#1826]: https://github.com/LuaLS/lua-language-server/issues/1826
583
-
584
- ## 3.6.5
585
- `2023-1-16`
586
- * `NEW` support casting global variables
587
- * `NEW` code lens: this feature is disabled by default.
588
- * `NEW` settings:
589
- * `Lua.codeLens.enable`: Enable code lens.
590
- * `CHG` improve memory usage for large libraries
591
- * `CHG` definition: supports finding definitions for `@class` and `@alias`, since they may be defined multi times
592
- * `CHG` rename: supports `@field`
593
- * `CHG` improve patch for `.luarc.json`
594
- * `CHG` `---@meta [name]`: once declared `name`, user can only require this file by declared name. meta file can not be required with name `_`
595
- * `CHG` remove telemetry
596
- * `FIX` [#831]
597
- * `FIX` [#1729]
598
- * `FIX` [#1737]
599
- * `FIX` [#1751]
600
- * `FIX` [#1767]
601
- * `FIX` [#1796]
602
- * `FIX` [#1805]
603
- * `FIX` [#1808]
604
- * `FIX` [#1811]
605
- * `FIX` [#1824]
606
-
607
- [#831]: https://github.com/LuaLS/lua-language-server/issues/831
608
- [#1729]: https://github.com/LuaLS/lua-language-server/issues/1729
609
- [#1737]: https://github.com/LuaLS/lua-language-server/issues/1737
610
- [#1751]: https://github.com/LuaLS/lua-language-server/issues/1751
611
- [#1767]: https://github.com/LuaLS/lua-language-server/issues/1767
612
- [#1796]: https://github.com/LuaLS/lua-language-server/issues/1796
613
- [#1805]: https://github.com/LuaLS/lua-language-server/issues/1805
614
- [#1808]: https://github.com/LuaLS/lua-language-server/issues/1808
615
- [#1811]: https://github.com/LuaLS/lua-language-server/issues/1811
616
- [#1824]: https://github.com/LuaLS/lua-language-server/issues/1824
617
-
618
- ## 3.6.4
619
- `2022-11-29`
620
- * `NEW` modify `require` after renaming files
621
- * `FIX` circulation reference in process analysis
622
- ```lua
623
- ---@type number
624
- local x
625
-
626
- ---@type number
627
- local y
628
-
629
- x = y
630
-
631
- y = x --> Can not infer `y` before
632
- ```
633
- * `FIX` [#1698]
634
- * `FIX` [#1704]
635
- * `FIX` [#1717]
636
-
637
- [#1698]: https://github.com/LuaLS/lua-language-server/issues/1698
638
- [#1704]: https://github.com/LuaLS/lua-language-server/issues/1704
639
- [#1717]: https://github.com/LuaLS/lua-language-server/issues/1717
640
-
641
- ## 3.6.3
642
- `2022-11-14`
643
- * `FIX` [#1684]
644
- * `FIX` [#1692]
645
-
646
- [#1684]: https://github.com/LuaLS/lua-language-server/issues/1684
647
- [#1692]: https://github.com/LuaLS/lua-language-server/issues/1692
648
-
649
- ## 3.6.2
650
- `2022-11-10`
651
- * `FIX` incorrect type check for generic with nil
652
- * `FIX` [#1676]
653
- * `FIX` [#1677]
654
- * `FIX` [#1679]
655
- * `FIX` [#1680]
656
-
657
- [#1676]: https://github.com/LuaLS/lua-language-server/issues/1676
658
- [#1677]: https://github.com/LuaLS/lua-language-server/issues/1677
659
- [#1679]: https://github.com/LuaLS/lua-language-server/issues/1679
660
- [#1680]: https://github.com/LuaLS/lua-language-server/issues/1680
661
-
662
- ## 3.6.1
663
- `2022-11-8`
664
- * `FIX` wrong diagnostics for `pcall` and `xpcall`
665
- * `FIX` duplicate fields in table hover
666
- * `FIX` description disapeared for overloaded function
667
- * `FIX` [#1675]
668
-
669
- [#1675]: https://github.com/LuaLS/lua-language-server/issues/1675
670
-
671
- ## 3.6.0
672
- `2022-11-8`
673
- * `NEW` supports `private`/`protected`/`public`/`package`
674
- * mark in `doc.field`
675
- ```lua
676
- ---@class unit
677
- ---@field private uuid integer
678
- ```
679
- * mark with `---@private`, `---@protected`, `---@public` and `---@package`
680
- ```lua
681
- ---@class unit
682
- local mt = {}
683
-
684
- ---@private
685
- function mt:init()
686
- end
687
-
688
- ---@protected
689
- function mt:update()
690
- end
691
- ```
692
- * mark by settings `Lua.doc.privateName`, `Lua.doc.protectedName` and `Lua.doc.packageName`
693
- ```lua
694
- ---@class unit
695
- ---@field _uuid integer --> treat as private when `Lua.doc.privateName` has `"_*"`
696
- ```
697
- * `NEW` settings:
698
- * `Lua.misc.executablePath`: [#1557] specify the executable path in VSCode
699
- * `Lua.diagnostics.workspaceEvent`: [#1626] set the time to trigger workspace diagnostics.
700
- * `Lua.doc.privateName`: treat matched fields as private
701
- * `Lua.doc.protectedName`: treat matched fields as protected
702
- * `Lua.doc.packageName`: treat matched fields as package
703
- * `NEW` CLI `--doc [path]` to make docs.
704
- server will generate `doc.json` and `doc.md` in `LOGPATH`.
705
- `doc.md` is generated by `doc.json` by example code `script/cli/doc2md.lua`.
706
- * `CHG` [#1558] detect multi libraries
707
- * `CHG` [#1458] `semantic-tokens`: global variable is setted to `variable.global`
708
- ```jsonc
709
- // color global variables to red
710
- "editor.semanticTokenColorCustomizations": {
711
- "rules": {
712
- "variable.global": "#ff0000"
713
- }
714
- }
715
- ```
716
- * `CHG` [#1177] re-support for symlinks, users need to maintain the correctness of symlinks themselves
717
- * `CHG` [#1561] infer definitions and types across chain expression
718
- ```lua
719
- ---@class myClass
720
- local myClass = {}
721
-
722
- myClass.a.b.c.e.f.g = 1
723
-
724
- ---@type myClass
725
- local class
726
-
727
- print(class.a.b.c.e.f.g) --> inferred as integer
728
- ```
729
- * `CHG` [#1582] the following diagnostics consider `overload`
730
- * `missing-return`
731
- * `missing-return-value`
732
- * `redundant-return-value`
733
- * `return-type-mismatch`
734
- * `CHG` workspace-symbol: supports chain fields based on global variables and types. try `io.open` or `iolib.open`
735
- * `CHG` [#1641] if a function only has varargs and has `---@overload`, the varargs will be ignored
736
- * `CHG` [#1575] search definitions by first argument of `setmetatable`
737
- ```lua
738
- ---@class Object
739
- local obj = setmetatable({
740
- initValue = 1,
741
- }, mt)
742
-
743
- print(obj.initValue) --> `obj.initValue` is integer
744
- ```
745
- * `CHG` [#1153] infer type by generic parameters or returns of function
746
- ```lua
747
- ---@generic T
748
- ---@param f fun(x: T)
749
- ---@return T[]
750
- local function x(f) end
751
-
752
- ---@type fun(x: integer)
753
- local cb
754
-
755
- local arr = x(cb) --> `arr` is inferred as `integer[]`
756
- ```
757
- * `CHG` [#1201] infer parameter type by expected returned function of parent function
758
- ```lua
759
- ---@return fun(x: integer)
760
- local function f()
761
- return function (x) --> `x` is inferred as `integer`
762
- end
763
- end
764
- ```
765
- * `CHG` [#1332] infer parameter type when function in table
766
- ```lua
767
- ---@class A
768
- ---@field f fun(x: string)
769
-
770
- ---@type A
771
- local t = {
772
- f = function (x) end --> `x` is inferred as `string`
773
- }
774
- ```
775
- * `CHG` find reference: respect `includeDeclaration` (although I don't know how to turn off this option in VSCode)
776
- * `CHG` [#1344] improve `---@see`
777
- * `CHG` [#1484] setting `runtime.special` supports fields
778
- ```jsonc
779
- {
780
- "runtime.special": {
781
- "sandbox.require": "require"
782
- }
783
- }
784
- ```
785
- * `CHG` [#1533] supports completion with table field of function
786
- * `CHG` [#1457] infer parameter type by function type
787
- ```lua
788
- ---@type fun(x: number)
789
- local function f(x) --> `x` is inferred as `number`
790
- end
791
- ```
792
- * `CHG` [#1663] check parameter types of generic extends
793
- ```lua
794
- ---@generic T: string | boolean
795
- ---@param x T
796
- ---@return T
797
- local function f(x)
798
- return x
799
- end
800
-
801
- local x = f(1) --> Warning: Cannot assign `integer` to parameter `<T:boolean|string>`.
802
- ```
803
- * `CHG` [#1434] type check: check the fields in table:
804
- ```lua
805
- ---@type table<string, string>
806
- local x
807
-
808
- ---@type table<string, number>
809
- local y
810
-
811
- x = y --> Warning: Cannot assign `<string, number>` to `<string, string>`
812
- ```
813
- * `CHG` [#1374] type check: supports array part in literal table
814
- ```lua
815
- ---@type boolean[]
816
- local t = { 1, 2, 3 } --> Warning: Cannot assign `integer` to `boolean`
817
- ```
818
- * `CHG` `---@enum` supports runtime values
819
- * `FIX` [#1479]
820
- * `FIX` [#1480]
821
- * `FIX` [#1567]
822
- * `FIX` [#1593]
823
- * `FIX` [#1595]
824
- * `FIX` [#1599]
825
- * `FIX` [#1606]
826
- * `FIX` [#1608]
827
- * `FIX` [#1637]
828
- * `FIX` [#1640]
829
- * `FIX` [#1642]
830
- * `FIX` [#1662]
831
- * `FIX` [#1672]
832
-
833
- [#1153]: https://github.com/LuaLS/lua-language-server/issues/1153
834
- [#1177]: https://github.com/LuaLS/lua-language-server/issues/1177
835
- [#1201]: https://github.com/LuaLS/lua-language-server/issues/1201
836
- [#1202]: https://github.com/LuaLS/lua-language-server/issues/1202
837
- [#1332]: https://github.com/LuaLS/lua-language-server/issues/1332
838
- [#1344]: https://github.com/LuaLS/lua-language-server/issues/1344
839
- [#1374]: https://github.com/LuaLS/lua-language-server/issues/1374
840
- [#1434]: https://github.com/LuaLS/lua-language-server/issues/1434
841
- [#1457]: https://github.com/LuaLS/lua-language-server/issues/1457
842
- [#1458]: https://github.com/LuaLS/lua-language-server/issues/1458
843
- [#1479]: https://github.com/LuaLS/lua-language-server/issues/1479
844
- [#1480]: https://github.com/LuaLS/lua-language-server/issues/1480
845
- [#1484]: https://github.com/LuaLS/lua-language-server/issues/1484
846
- [#1533]: https://github.com/LuaLS/lua-language-server/issues/1533
847
- [#1557]: https://github.com/LuaLS/lua-language-server/issues/1557
848
- [#1558]: https://github.com/LuaLS/lua-language-server/issues/1558
849
- [#1561]: https://github.com/LuaLS/lua-language-server/issues/1561
850
- [#1567]: https://github.com/LuaLS/lua-language-server/issues/1567
851
- [#1575]: https://github.com/LuaLS/lua-language-server/issues/1575
852
- [#1582]: https://github.com/LuaLS/lua-language-server/issues/1582
853
- [#1593]: https://github.com/LuaLS/lua-language-server/issues/1593
854
- [#1595]: https://github.com/LuaLS/lua-language-server/issues/1595
855
- [#1599]: https://github.com/LuaLS/lua-language-server/issues/1599
856
- [#1606]: https://github.com/LuaLS/lua-language-server/issues/1606
857
- [#1608]: https://github.com/LuaLS/lua-language-server/issues/1608
858
- [#1626]: https://github.com/LuaLS/lua-language-server/issues/1626
859
- [#1637]: https://github.com/LuaLS/lua-language-server/issues/1637
860
- [#1640]: https://github.com/LuaLS/lua-language-server/issues/1640
861
- [#1641]: https://github.com/LuaLS/lua-language-server/issues/1641
862
- [#1642]: https://github.com/LuaLS/lua-language-server/issues/1642
863
- [#1662]: https://github.com/LuaLS/lua-language-server/issues/1662
864
- [#1663]: https://github.com/LuaLS/lua-language-server/issues/1663
865
- [#1670]: https://github.com/LuaLS/lua-language-server/issues/1670
866
- [#1672]: https://github.com/LuaLS/lua-language-server/issues/1672
867
-
868
- ## 3.5.6
869
- `2022-9-16`
870
- * `FIX` [#1439](https://github.com/LuaLS/lua-language-server/issues/1439)
871
- * `FIX` [#1467](https://github.com/LuaLS/lua-language-server/issues/1467)
872
- * `FIX` [#1506](https://github.com/LuaLS/lua-language-server/issues/1506)
873
- * `FIX` [#1537](https://github.com/LuaLS/lua-language-server/issues/1537)
874
-
875
- ## 3.5.5
876
- `2022-9-7`
877
- * `FIX` [#1529](https://github.com/LuaLS/lua-language-server/issues/1529)
878
- * `FIX` [#1530](https://github.com/LuaLS/lua-language-server/issues/1530)
879
-
880
- ## 3.5.4
881
- `2022-9-6`
882
- * `NEW` `type-formatting`: fix wrong indentation of VSCode
883
- * `CHG` `document-symbol`: redesigned to better support for `Sticky Scroll` feature of VSCode
884
- * `FIX` `diagnostics.workspaceDelay` can not prevent first workspace diagnostic
885
- * `FIX` [#1476](https://github.com/LuaLS/lua-language-server/issues/1476)
886
- * `FIX` [#1490](https://github.com/LuaLS/lua-language-server/issues/1490)
887
- * `FIX` [#1493](https://github.com/LuaLS/lua-language-server/issues/1493)
888
- * `FIX` [#1499](https://github.com/LuaLS/lua-language-server/issues/1499)
889
- * `FIX` [#1526](https://github.com/LuaLS/lua-language-server/issues/1526)
890
-
891
- ## 3.5.3
892
- `2022-8-13`
893
- * `FIX` [#1409](https://github.com/LuaLS/lua-language-server/issues/1409)
894
- * `FIX` [#1422](https://github.com/LuaLS/lua-language-server/issues/1422)
895
- * `FIX` [#1425](https://github.com/LuaLS/lua-language-server/issues/1425)
896
- * `FIX` [#1428](https://github.com/LuaLS/lua-language-server/issues/1428)
897
- * `FIX` [#1430](https://github.com/LuaLS/lua-language-server/issues/1430)
898
- * `FIX` [#1431](https://github.com/LuaLS/lua-language-server/issues/1431)
899
- * `FIX` [#1446](https://github.com/LuaLS/lua-language-server/issues/1446)
900
- * `FIX` [#1451](https://github.com/LuaLS/lua-language-server/issues/1451)
901
- * `FIX` [#1461](https://github.com/LuaLS/lua-language-server/issues/1461)
902
- * `FIX` [#1463](https://github.com/LuaLS/lua-language-server/issues/1463)
903
-
904
- ## 3.5.2
905
- `2022-8-1`
906
- * `FIX` [#1395](https://github.com/LuaLS/lua-language-server/issues/1395)
907
- * `FIX` [#1403](https://github.com/LuaLS/lua-language-server/issues/1403)
908
- * `FIX` [#1405](https://github.com/LuaLS/lua-language-server/issues/1405)
909
- * `FIX` [#1406](https://github.com/LuaLS/lua-language-server/issues/1406)
910
- * `FIX` [#1418](https://github.com/LuaLS/lua-language-server/issues/1418)
911
-
912
- ## 3.5.1
913
- `2022-7-26`
914
- * `NEW` supports [color](https://github.com/LuaLS/lua-language-server/pull/1379)
915
- * `NEW` setting `Lua.runtime.pluginArgs`
916
- * `CHG` setting `type.castNumberToInteger` default by `true`
917
- * `CHG` improve supports for multi-workspace
918
- * `FIX` [#1354](https://github.com/LuaLS/lua-language-server/issues/1354)
919
- * `FIX` [#1355](https://github.com/LuaLS/lua-language-server/issues/1355)
920
- * `FIX` [#1363](https://github.com/LuaLS/lua-language-server/issues/1363)
921
- * `FIX` [#1365](https://github.com/LuaLS/lua-language-server/issues/1365)
922
- * `FIX` [#1367](https://github.com/LuaLS/lua-language-server/issues/1367)
923
- * `FIX` [#1368](https://github.com/LuaLS/lua-language-server/issues/1368)
924
- * `FIX` [#1370](https://github.com/LuaLS/lua-language-server/issues/1370)
925
- * `FIX` [#1375](https://github.com/LuaLS/lua-language-server/issues/1375)
926
- * `FIX` [#1391](https://github.com/LuaLS/lua-language-server/issues/1391)
927
-
928
- ## 3.5.0
929
- `2022-7-19`
930
- * `NEW` `LuaDoc`: `---@operator`:
931
- ```lua
932
- ---@class fspath
933
- ---@operator div(string|fspath): fspath
934
-
935
- ---@type fspath
936
- local root
937
-
938
- local fileName = root / 'script' / 'main.lua' -- `fileName` is `fspath` here
939
- ```
940
- * `NEW` `LuaDoc`: `---@source`:
941
- ```lua
942
- -- Also supports absolute path or relative path (based on current file path)
943
- ---@source file:///xxx.c:50:20
944
- XXX = 1 -- when finding definitions of `XXX`, returns `file:///xxx.c:50:20` instead here.
945
- ```
946
- * `NEW` `LuaDoc`: `---@enum`:
947
- ```lua
948
- ---@enum animal
949
- Animal = {
950
- Cat = 1,
951
- Dog = 2,
952
- }
953
-
954
- ---@param x animal
955
- local function f(x) end
956
-
957
- f() -- suggests `Animal.Cat`, `Animal.Dog`, `1`, `2` as the first parameter
958
- ```
959
- * `NEW` diagnostics:
960
- * `unknown-operator`
961
- * `unreachable-code`
962
- * `NEW` settings:
963
- * `diagnostics.unusedLocalExclude`
964
- * `NEW` VSCode: add support for [EmmyLuaUnity](https://marketplace.visualstudio.com/items?itemName=CppCXY.emmylua-unity)
965
- * `CHG` support multi-type:
966
- ```lua
967
- ---@type number, _, boolean
968
- local a, b, c -- `a` is `number`, `b` is `unknown`, `c` is `boolean`
969
- ```
970
- * `CHG` treat `_ENV = XXX` as `local _ENV = XXX`
971
- * `_ENV = nil`: disable all globals
972
- * `_ENV = {}`: allow all globals
973
- * `_ENV = {} ---@type mathlib`: only allow globals in `mathlib`
974
- * `CHG` hover: dose not show unknown `---@XXX` as description
975
- * `CHG` contravariance is allowed at the class declaration
976
- ```lua
977
- ---@class BaseClass
978
- local BaseClass
979
-
980
- ---@class MyClass: BaseClass
981
- local MyClass = BaseClass -- OK!
982
- ```
983
- * `CHG` hover: supports path in link
984
- ```lua
985
- --![](https://github.com/LuaLS/lua-language-server/raw/HEAD/image.png) --> will convert to `--![](file:///xxxx/image.png)`
986
- local x
987
- ```
988
- * `CHG` signature: only show signatures matching the entered parameters
989
- * `FIX` [#880](https://github.com/LuaLS/lua-language-server/issues/880)
990
- * `FIX` [#1284](https://github.com/LuaLS/lua-language-server/issues/1284)
991
- * `FIX` [#1292](https://github.com/LuaLS/lua-language-server/issues/1292)
992
- * `FIX` [#1294](https://github.com/LuaLS/lua-language-server/issues/1294)
993
- * `FIX` [#1306](https://github.com/LuaLS/lua-language-server/issues/1306)
994
- * `FIX` [#1311](https://github.com/LuaLS/lua-language-server/issues/1311)
995
- * `FIX` [#1317](https://github.com/LuaLS/lua-language-server/issues/1317)
996
- * `FIX` [#1320](https://github.com/LuaLS/lua-language-server/issues/1320)
997
- * `FIX` [#1330](https://github.com/LuaLS/lua-language-server/issues/1330)
998
- * `FIX` [#1345](https://github.com/LuaLS/lua-language-server/issues/1345)
999
- * `FIX` [#1346](https://github.com/LuaLS/lua-language-server/issues/1346)
1000
- * `FIX` [#1348](https://github.com/LuaLS/lua-language-server/issues/1348)
1001
-
1002
- ## 3.4.2
1003
- `2022-7-6`
1004
- * `CHG` diagnostic: `type-check` ignores `nil` in `getfield`
1005
- * `CHG` diagnostic: `---@diagnostic disable: <ERR_NAME>` can suppress syntax errors
1006
- * `CHG` completion: `completion.callSnippet` no longer generate parameter types
1007
- * `CHG` hover: show `---@type {x: number, y: number}` as detail instead of `table`
1008
- * `CHG` dose not infer as `nil` by `t.field = nil`
1009
- * `FIX` [#1278](https://github.com/LuaLS/lua-language-server/issues/1278)
1010
- * `FIX` [#1288](https://github.com/LuaLS/lua-language-server/issues/1288)
1011
-
1012
- ## 3.4.1
1013
- `2022-7-5`
1014
- * `NEW` settings:
1015
- * `type.weakNilCheck`
1016
- * `CHG` allow type contravariance for `setmetatable` when initializing a class
1017
- ```lua
1018
- ---@class A
1019
- local a = {}
1020
-
1021
- ---@class B: A
1022
- local b = setmetatable({}, { __index = a }) -- OK!
1023
- ```
1024
- * `FIX` [#1256](https://github.com/LuaLS/lua-language-server/issues/1256)
1025
- * `FIX` [#1257](https://github.com/LuaLS/lua-language-server/issues/1257)
1026
- * `FIX` [#1267](https://github.com/LuaLS/lua-language-server/issues/1267)
1027
- * `FIX` [#1269](https://github.com/LuaLS/lua-language-server/issues/1269)
1028
- * `FIX` [#1273](https://github.com/LuaLS/lua-language-server/issues/1273)
1029
- * `FIX` [#1275](https://github.com/LuaLS/lua-language-server/issues/1275)
1030
- * `FIX` [#1279](https://github.com/LuaLS/lua-language-server/issues/1279)
1031
-
1032
- ## 3.4.0
1033
- `2022-6-29`
1034
- * `NEW` diagnostics:
1035
- * `cast-local-type`
1036
- * `assign-type-mismatch`
1037
- * `param-type-mismatch`
1038
- * `unknown-cast-variable`
1039
- * `cast-type-mismatch`
1040
- * `missing-return-value`
1041
- * `redundant-return-value`
1042
- * `missing-return`
1043
- * `return-type-mismatch`
1044
- * `NEW` settings:
1045
- * `diagnostics.groupSeverity`
1046
- * `diagnostics.groupFileStatus`
1047
- * `type.castNumberToInteger`
1048
- * `type.weakUnionCheck`
1049
- * `hint.semicolon`
1050
- * `CHG` infer `nil` as redundant return value
1051
- ```lua
1052
- local function f() end
1053
- local x = f() -- `x` is `nil` instead of `unknown`
1054
- ```
1055
- * `CHG` infer called function by params num
1056
- ```lua
1057
- ---@overload fun(x: number, y: number):string
1058
- ---@overload fun(x: number):number
1059
- ---@return boolean
1060
- local function f() end
1061
-
1062
- local n1 = f() -- `n1` is `boolean`
1063
- local n2 = f(0) -- `n2` is `number`
1064
- local n3 = f(0, 0) -- `n3` is `string`
1065
- ```
1066
- * `CHG` semicolons and parentheses can be used in `DocTable`
1067
- ```lua
1068
- ---@type { (x: number); (y: boolean) }
1069
- ```
1070
- * `CHG` return names and parentheses can be used in `DocFunction`
1071
- ```lua
1072
- ---@type fun():(x: number, y: number, ...: number)
1073
- ```
1074
- * `CHG` supports `---@return boolean ...`
1075
- * `CHG` improve experience for diagnostics and semantic-tokens
1076
- * `FIX` diagnostics flash when opening a file
1077
- * `FIX` sometimes workspace diagnostics are not triggered
1078
- * `FIX` [#1228](https://github.com/LuaLS/lua-language-server/issues/1228)
1079
- * `FIX` [#1229](https://github.com/LuaLS/lua-language-server/issues/1229)
1080
- * `FIX` [#1242](https://github.com/LuaLS/lua-language-server/issues/1242)
1081
- * `FIX` [#1243](https://github.com/LuaLS/lua-language-server/issues/1243)
1082
- * `FIX` [#1249](https://github.com/LuaLS/lua-language-server/issues/1249)
1083
-
1084
- ## 3.3.1
1085
- `2022-6-17`
1086
- * `FIX` [#1213](https://github.com/LuaLS/lua-language-server/issues/1213)
1087
- * `FIX` [#1215](https://github.com/LuaLS/lua-language-server/issues/1215)
1088
- * `FIX` [#1217](https://github.com/LuaLS/lua-language-server/issues/1217)
1089
- * `FIX` [#1218](https://github.com/LuaLS/lua-language-server/issues/1218)
1090
- * `FIX` [#1220](https://github.com/LuaLS/lua-language-server/issues/1220)
1091
- * `FIX` [#1223](https://github.com/LuaLS/lua-language-server/issues/1223)
1092
-
1093
- ## 3.3.0
1094
- `2022-6-15`
1095
- * `NEW` `LuaDoc` supports `` `CODE` ``
1096
- ```lua
1097
- ---@type `CONST.X` | `CONST.Y`
1098
- local x
1099
-
1100
- if x == -- suggest `CONST.X` and `CONST.Y` here
1101
- ```
1102
- * `CHG` infer type by `error`
1103
- ```lua
1104
- ---@type integer|nil
1105
- local n
1106
-
1107
- if not n then
1108
- error('n is nil')
1109
- end
1110
-
1111
- print(n) -- `n` is `integer` here
1112
- ```
1113
- * `CHG` infer type by `t and t.x`
1114
- ```lua
1115
- ---@type table|nil
1116
- local t
1117
-
1118
- local s = t and t.x or 1 -- `t` in `t.x` is `table`
1119
- ```
1120
- * `CHG` infer type by `type(x)`
1121
- ```lua
1122
- local x
1123
-
1124
- if type(x) == 'string' then
1125
- print(x) -- `x` is `string` here
1126
- end
1127
-
1128
- local tp = type(x)
1129
-
1130
- if tp == 'boolean' then
1131
- print(x) -- `x` is `boolean` here
1132
- end
1133
- ```
1134
- * `CHG` infer type by `>`/`<`/`>=`/`<=`
1135
- * `FIX` with clients that support LSP 3.17 (VSCode), workspace diagnostics are triggered every time when opening a file.
1136
- * `FIX` [#1204](https://github.com/LuaLS/lua-language-server/issues/1204)
1137
- * `FIX` [#1208](https://github.com/LuaLS/lua-language-server/issues/1208)
1138
-
1139
- ## 3.2.5
1140
- `2022-6-9`
1141
- * `NEW` provide config docs in `LUA_LANGUAGE_SERVER/doc/`
1142
- * `FIX` [#1148](https://github.com/LuaLS/lua-language-server/issues/1148)
1143
- * `FIX` [#1149](https://github.com/LuaLS/lua-language-server/issues/1149)
1144
- * `FIX` [#1192](https://github.com/LuaLS/lua-language-server/issues/1192)
1145
-
1146
- ## 3.2.4
1147
- `2022-5-25`
1148
- * `NEW` settings:
1149
- + `workspace.supportScheme`: `["file", "untitled", "git"]`
1150
- + `diagnostics.disableScheme`: `["git"]`
1151
- * `NEW` folding: support folding `---@alias`
1152
- * `CHG` if `rootUri` or `workspaceFolder` is set to `ROOT` or `HOME`, this extension will refuse to load these directories and show an error message.
1153
- * `CHG` show warning message when scanning more than 100,000 files.
1154
- * `CHG` upgrade [LSP](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/) to `3.17`
1155
- * `FIX` hover: can not union `table` with other basic types
1156
- * `FIX` [#1125](https://github.com/LuaLS/lua-language-server/issues/1125)
1157
- * `FIX` [#1131](https://github.com/LuaLS/lua-language-server/issues/1131)
1158
- * `FIX` [#1134](https://github.com/LuaLS/lua-language-server/issues/1134)
1159
- * `FIX` [#1141](https://github.com/LuaLS/lua-language-server/issues/1141)
1160
- * `FIX` [#1144](https://github.com/LuaLS/lua-language-server/issues/1144)
1161
- * `FIX` [#1150](https://github.com/LuaLS/lua-language-server/issues/1150)
1162
- * `FIX` [#1155](https://github.com/LuaLS/lua-language-server/issues/1155)
1163
-
1164
- ## 3.2.3
1165
- `2022-5-16`
1166
- * `CHG` parse `.luarc.json` as jsonc. In order to please the editor, it also supports `.luarc.jsonc` as the file name.
1167
- * `CHG` dose not load files in symbol links
1168
- * `FIX` memory leak with symbol links
1169
- * `FIX` diagnostic: send empty results to every file after startup
1170
- * `FIX` [#1103](https://github.com/LuaLS/lua-language-server/issues/1103)
1171
- * `FIX` [#1107](https://github.com/LuaLS/lua-language-server/issues/1107)
1172
-
1173
- ## 3.2.2
1174
- `2022-4-26`
1175
- * `FIX` diagnostic: `unused-function` cannot handle recursion correctly
1176
- * `FIX` [#1092](https://github.com/LuaLS/lua-language-server/issues/1092)
1177
- * `FIX` [#1093](https://github.com/LuaLS/lua-language-server/issues/1093)
1178
- * `FIX` runtime errors reported by telemetry, see [#1091](https://github.com/LuaLS/lua-language-server/issues/1091)
1179
-
1180
- ## 3.2.1
1181
- `2022-4-25`
1182
- * `FIX` broken in VSCode
1183
-
1184
- ## 3.2.0
1185
- `2022-4-25`
1186
- * `NEW` supports infer of callback parameter
1187
- ```lua
1188
- ---@type string[]
1189
- local t
1190
-
1191
- table.sort(t, function (a, b)
1192
- -- `a` and `b` is `string` here
1193
- end)
1194
- ```
1195
- * `NEW` using `---@overload` as class constructor
1196
- ```lua
1197
- ---@class Class
1198
- ---@overload fun():Class
1199
- local mt
1200
-
1201
- local x = mt() --> x is `Class` here
1202
- ```
1203
- * `NEW` add `--[[@as type]]`
1204
- ```lua
1205
- local x = true
1206
- local y = x--[[@as integer]] -- y is `integer` here
1207
- ```
1208
- * `NEW` add `---@cast`
1209
- * `---@cast localname type`
1210
- * `---@cast localname +type`
1211
- * `---@cast localname -type`
1212
- * `---@cast localname +?`
1213
- * `---@cast localname -?`
1214
- * `NEW` generic: resolve `T[]` by `table<integer, type>` or `---@field [integer] type`
1215
- * `NEW` resolve `class[1]` by `---@field [integer] type`
1216
- * `NEW` diagnostic: `missing-parameter`
1217
- * `NEW` diagnostic: `need-check-nil`
1218
- * `CHG` diagnostic: no longer mark `redundant-parameter` as `Unnecessary`
1219
- * `FIX` diagnostic: `unused-function` does not recognize recursion
1220
- * `FIX` [#1051](https://github.com/LuaLS/lua-language-server/issues/1051)
1221
- * `FIX` [#1072](https://github.com/LuaLS/lua-language-server/issues/1072)
1222
- * `FIX` [#1077](https://github.com/LuaLS/lua-language-server/issues/1077)
1223
- * `FIX` [#1088](https://github.com/LuaLS/lua-language-server/issues/1088)
1224
- * `FIX` runtime errors
1225
-
1226
- ## 3.1.0
1227
- `2022-4-17`
1228
- * `NEW` support find definition in method
1229
- * `CHG` hint: move to LSP. Its font is now controlled by the client.
1230
- * `CHG` hover: split `local` into `local` / `parameter` / `upvalue` / `self`.
1231
- * `CHG` hover: added parentheses to some words, such as `global` / `field` / `class`.
1232
- * `FIX` definition of `table<k, v>`
1233
- * `FIX` [#994](https://github.com/LuaLS/lua-language-server/issues/994)
1234
- * `FIX` [#1057](https://github.com/LuaLS/lua-language-server/issues/1057)
1235
- * `FIX` runtime errors reported by telemetry, see [#1058](https://github.com/LuaLS/lua-language-server/issues/1058)
1236
-
1237
- ## 3.0.2
1238
- `2022-4-15`
1239
- * `FIX` `table<string, boolean>[string] -> boolean`
1240
- * `FIX` goto `type definition`
1241
- * `FIX` [#1050](https://github.com/LuaLS/lua-language-server/issues/1050)
1242
-
1243
- ## 3.0.1
1244
- `2022-4-11`
1245
- * `FIX` [#1033](https://github.com/LuaLS/lua-language-server/issues/1033)
1246
- * `FIX` [#1034](https://github.com/LuaLS/lua-language-server/issues/1034)
1247
- * `FIX` [#1035](https://github.com/LuaLS/lua-language-server/issues/1035)
1248
- * `FIX` [#1036](https://github.com/LuaLS/lua-language-server/issues/1036)
1249
- * `FIX` runtime errors reported by telemetry, see [#1037](https://github.com/LuaLS/lua-language-server/issues/1037)
1250
-
1251
- ## 3.0.0
1252
- `2022-4-10`
1253
- * `CHG` [break changes](https://github.com/LuaLS/lua-language-server/issues/980)
1254
- * `CHG` diagnostic:
1255
- + `type-check`: removed for now
1256
- + `no-implicit-any`: renamed to `no-unknown`
1257
- * `CHG` formatter: no longer need` --preview`
1258
- * `CHG` `LuaDoc`: supports `---@type (string|integer)[]`
1259
- * `FIX` semantic: color of `function`
1260
- * `FIX` [#1027](https://github.com/LuaLS/lua-language-server/issues/1027)
1261
- * `FIX` [#1028](https://github.com/LuaLS/lua-language-server/issues/1028)
1262
-
1263
- ## 2.6.8
1264
- `2022-4-9`
1265
- * `CHG` completion: call snippet shown as `Function` instead of `Snippet` when `Lua.completion.callSnippet` is `Replace`
1266
- * `FIX` [#976](https://github.com/LuaLS/lua-language-server/issues/976)
1267
- * `FIX` [#995](https://github.com/LuaLS/lua-language-server/issues/995)
1268
- * `FIX` [#1004](https://github.com/LuaLS/lua-language-server/issues/1004)
1269
- * `FIX` [#1008](https://github.com/LuaLS/lua-language-server/issues/1008)
1270
- * `FIX` [#1009](https://github.com/LuaLS/lua-language-server/issues/1009)
1271
- * `FIX` [#1011](https://github.com/LuaLS/lua-language-server/issues/1011)
1272
- * `FIX` [#1014](https://github.com/LuaLS/lua-language-server/issues/1014)
1273
- * `FIX` [#1016](https://github.com/LuaLS/lua-language-server/issues/1016)
1274
- * `FIX` [#1017](https://github.com/LuaLS/lua-language-server/issues/1017)
1275
- * `FIX` runtime errors reported by telemetry
1276
-
1277
- ## 2.6.7
1278
- `2022-3-9`
1279
- * `NEW` diagnosis report, [read more](https://luals.github.io/wiki/diagnosis-report/)
1280
- * `CHG` `VSCode`: 1.65 has built in new `Lua` syntax files, so this extension no longer provides syntax files, which means you can install other syntax extensions in the marketplace. If you have any suggestions or issues, please [open issues here](https://github.com/LuaLS/lua.tmbundle).
1281
- * `CHG` telemetry: the prompt will only appear in VSCode to avoid repeated prompts in other platforms due to the inability to automatically modify the settings.
1282
- * `FIX` [#965](https://github.com/LuaLS/lua-language-server/issues/965)
1283
- * `FIX` [#975](https://github.com/LuaLS/lua-language-server/issues/975)
1284
-
1285
- ## 2.6.6
1286
- `2022-2-21`
1287
- * `NEW` formatter preview, use `--preview` to enable this feature, [read more](https://github.com/LuaLS/lua-language-server/issues/960)
1288
- * `FIX` [#958](https://github.com/LuaLS/lua-language-server/issues/958)
1289
- * `FIX` runtime errors
1290
-
1291
- ## 2.6.5
1292
- `2022-2-17`
1293
- * `FIX` telemetry is not disabled by default (since 2.6.0)
1294
- * `FIX` [#934](https://github.com/LuaLS/lua-language-server/issues/934)
1295
- * `FIX` [#952](https://github.com/LuaLS/lua-language-server/issues/952)
1296
-
1297
- ## 2.6.4
1298
- `2022-2-9`
1299
- * `CHG` completion: reduced sorting priority for postfix completion
1300
- * `FIX` [#936](https://github.com/LuaLS/lua-language-server/issues/936)
1301
- * `FIX` [#937](https://github.com/LuaLS/lua-language-server/issues/937)
1302
- * `FIX` [#940](https://github.com/LuaLS/lua-language-server/issues/940)
1303
- * `FIX` [#941](https://github.com/LuaLS/lua-language-server/issues/941)
1304
- * `FIX` [#941](https://github.com/LuaLS/lua-language-server/issues/942)
1305
- * `FIX` [#943](https://github.com/LuaLS/lua-language-server/issues/943)
1306
- * `FIX` [#946](https://github.com/LuaLS/lua-language-server/issues/946)
1307
-
1308
- ## 2.6.3
1309
- `2022-1-25`
1310
- * `FIX` new files are not loaded correctly
1311
- * `FIX` [#923](https://github.com/LuaLS/lua-language-server/issues/923)
1312
- * `FIX` [#926](https://github.com/LuaLS/lua-language-server/issues/926)
1313
-
1314
- ## 2.6.2
1315
- `2022-1-25`
1316
- * `FIX` [#925](https://github.com/LuaLS/lua-language-server/issues/925)
1317
-
1318
- ## 2.6.1
1319
- `2022-1-24`
1320
- * `CHG` default values of settings:
1321
- + `Lua.diagnostics.workspaceDelay`: `0` sec -> `3` sec
1322
- + `Lua.workspace.maxPreload`: `1000` -> `5000`
1323
- + `Lua.workspace.preloadFileSize`: `100` KB -> `500` KB
1324
- * `CHG` improve performance
1325
- * `FIX` modify luarc failed
1326
- * `FIX` library files not recognized correctly
1327
- * `FIX` [#903](https://github.com/LuaLS/lua-language-server/issues/903)
1328
- * `FIX` [#906](https://github.com/LuaLS/lua-language-server/issues/906)
1329
- * `FIX` [#920](https://github.com/LuaLS/lua-language-server/issues/920)
1330
-
1331
- ## 2.6.0
1332
- `2022-1-13`
1333
- * `NEW` supports multi-workspace in server side, for developers of language clients, please [read here](https://luals.github.io/wiki/developing/#multiple-workspace-support) to learn more.
1334
- * `NEW` setting:
1335
- + `Lua.hint.arrayIndex`
1336
- + `Lua.semantic.enable`
1337
- + `Lua.semantic.variable`
1338
- + `Lua.semantic.annotation`
1339
- + `Lua.semantic.keyword`
1340
- * `CHG` completion: improve response speed
1341
- * `CHG` completion: can be triggered in `LuaDoc` and strings
1342
- * `CHG` diagnostic: smoother
1343
- * `CHG` settings `Lua.color.mode` removed
1344
- * `FIX` [#876](https://github.com/LuaLS/lua-language-server/issues/876)
1345
- * `FIX` [#879](https://github.com/LuaLS/lua-language-server/issues/879)
1346
- * `FIX` [#884](https://github.com/LuaLS/lua-language-server/issues/884)
1347
- * `FIX` [#885](https://github.com/LuaLS/lua-language-server/issues/885)
1348
- * `FIX` [#886](https://github.com/LuaLS/lua-language-server/issues/886)
1349
- * `FIX` [#902](https://github.com/LuaLS/lua-language-server/issues/902)
1350
-
1351
- ## 2.5.6
1352
- `2021-12-27`
1353
- * `CHG` diagnostic: now syntax errors in `LuaDoc` are shown as `Warning`
1354
- * `FIX` [#863](https://github.com/LuaLS/lua-language-server/issues/863)
1355
- * `FIX` return type of `math.floor`
1356
- * `FIX` runtime errors
1357
-
1358
- ## 2.5.5
1359
- `2021-12-16`
1360
- * `FIX` dose not work in VSCode
1361
-
1362
- ## 2.5.4
1363
- `2021-12-16`
1364
- * `FIX` [#847](https://github.com/LuaLS/lua-language-server/issues/847)
1365
- * `FIX` [#848](https://github.com/LuaLS/lua-language-server/issues/848)
1366
- * `FIX` completion: incorrect cache
1367
- * `FIX` hover: always view string
1368
-
1369
- ## 2.5.3
1370
- `2021-12-6`
1371
- * `FIX` [#842](https://github.com/LuaLS/lua-language-server/issues/844)
1372
- * `FIX` [#844](https://github.com/LuaLS/lua-language-server/issues/844)
1373
-
1374
- ## 2.5.2
1375
- `2021-12-2`
1376
- * `FIX` [#815](https://github.com/LuaLS/lua-language-server/issues/815)
1377
- * `FIX` [#825](https://github.com/LuaLS/lua-language-server/issues/825)
1378
- * `FIX` [#826](https://github.com/LuaLS/lua-language-server/issues/826)
1379
- * `FIX` [#827](https://github.com/LuaLS/lua-language-server/issues/827)
1380
- * `FIX` [#831](https://github.com/LuaLS/lua-language-server/issues/831)
1381
- * `FIX` [#837](https://github.com/LuaLS/lua-language-server/issues/837)
1382
- * `FIX` [#838](https://github.com/LuaLS/lua-language-server/issues/838)
1383
- * `FIX` postfix
1384
- * `FIX` runtime errors
1385
-
1386
- ## 2.5.1
1387
- `2021-11-29`
1388
- * `FIX` incorrect syntax error
1389
-
1390
- ## 2.5.0
1391
- `2021-11-29`
1392
- * `NEW` settings:
1393
- + `Lua.runtime.pathStrict`: not check subdirectories when using `runtime.path`
1394
- + `Lua.hint.await`: display `await` when calling a function marked as async
1395
- + `Lua.completion.postfix`: the symbol that triggers postfix, default is `@`
1396
- * `NEW` add supports for `lovr`
1397
- * `NEW` file encoding supports `utf16le` and `utf16be`
1398
- * `NEW` full IntelliSense supports for literal tables, see [#720](https://github.com/LuaLS/lua-language-server/issues/720) and [#727](https://github.com/LuaLS/lua-language-server/issues/727)
1399
- * `NEW` `LuaDoc` annotations:
1400
- + `---@async`: mark a function as async
1401
- + `---@nodiscard`: the return value of the marking function cannot be discarded
1402
- * `NEW` diagnostics:
1403
- + `await-in-sync`: check whether calls async function in sync function. disabled by default.
1404
- + `not-yieldable`: check whether the function supports async functions as parameters. disabled by default.
1405
- + `discard-returns`: check whether the return value is discarded.
1406
- * `NEW` locale `pt-br`, thanks [Jeferson Ferreira](https://github.com/jefersonf)
1407
- * `NEW` supports [utf-8-offsets](https://clangd.llvm.org/extensions#utf-8-offsets)
1408
- * `NEW` supports quickfix for `.luarc.json`
1409
- * `NEW` completion postifx: `@function`, `@method`, `@pcall`, `@xpcall`, `@insert`, `@remove`, `@concat`, `++`, `++?`
1410
- * `CHG` `LuaDoc`:
1411
- + `---@class` can be re-declared
1412
- + supports unicode
1413
- + supports `---@param ... number`, equivalent to `---@vararg number`
1414
- + supports `fun(...: string)`
1415
- + supports `fun(x, y, ...)`, equivalent to `fun(x: any, y: any, ...: any)`
1416
- * `CHG` settings from `--configpath`, `.luarc.json`, `client` no longer prevent subsequent settings, instead they are merged in order
1417
- * `CHG` no longer asks to trust plugin in VSCode, because VSCode already provides the workspace trust feature
1418
- * `CHG` skip huge files (>= 10 MB)
1419
- * `CHG` after using `Lua.runtime.nonstandardSymbol` to treat `//` as a comment, `//` is no longer parsed as an operator
1420
-
1421
- ## 2.4.11
1422
- `2021-11-25`
1423
- * `FIX` [#816](https://github.com/LuaLS/lua-language-server/issues/816)
1424
- * `FIX` [#817](https://github.com/LuaLS/lua-language-server/issues/817)
1425
- * `FIX` [#818](https://github.com/LuaLS/lua-language-server/issues/818)
1426
- * `FIX` [#820](https://github.com/LuaLS/lua-language-server/issues/820)
1427
-
1428
- ## 2.4.10
1429
- `2021-11-23`
1430
- * `FIX` [#790](https://github.com/LuaLS/lua-language-server/issues/790)
1431
- * `FIX` [#798](https://github.com/LuaLS/lua-language-server/issues/798)
1432
- * `FIX` [#804](https://github.com/LuaLS/lua-language-server/issues/804)
1433
- * `FIX` [#805](https://github.com/LuaLS/lua-language-server/issues/805)
1434
- * `FIX` [#806](https://github.com/LuaLS/lua-language-server/issues/806)
1435
- * `FIX` [#807](https://github.com/LuaLS/lua-language-server/issues/807)
1436
- * `FIX` [#809](https://github.com/LuaLS/lua-language-server/issues/809)
1437
-
1438
- ## 2.4.9
1439
- `2021-11-18`
1440
- * `CHG` for performance reasons, some of the features that are not cost-effective in IntelliSense have been disabled by default, and you can re-enable them through the following settings:
1441
- + `Lua.IntelliSense.traceLocalSet`
1442
- + `Lua.IntelliSense.traceReturn`
1443
- + `Lua.IntelliSense.traceBeSetted`
1444
- + `Lua.IntelliSense.traceFieldInject`
1445
-
1446
- [read more](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features)
1447
-
1448
- ## 2.4.8
1449
- `2021-11-15`
1450
- * `FIX` incorrect IntelliSense in specific situations
1451
- * `FIX` [#777](https://github.com/LuaLS/lua-language-server/issues/777)
1452
- * `FIX` [#778](https://github.com/LuaLS/lua-language-server/issues/778)
1453
- * `FIX` [#779](https://github.com/LuaLS/lua-language-server/issues/779)
1454
- * `FIX` [#780](https://github.com/LuaLS/lua-language-server/issues/780)
1455
-
1456
- ## 2.4.7
1457
- `2021-10-27`
1458
- * `FIX` [#762](https://github.com/LuaLS/lua-language-server/issues/762)
1459
-
1460
- ## 2.4.6
1461
- `2021-10-26`
1462
- * `NEW` diagnostic: `redundant-return`
1463
- * `FIX` [#744](https://github.com/LuaLS/lua-language-server/issues/744)
1464
- * `FIX` [#748](https://github.com/LuaLS/lua-language-server/issues/748)
1465
- * `FIX` [#749](https://github.com/LuaLS/lua-language-server/issues/749)
1466
- * `FIX` [#752](https://github.com/LuaLS/lua-language-server/issues/752)
1467
- * `FIX` [#753](https://github.com/LuaLS/lua-language-server/issues/753)
1468
- * `FIX` [#756](https://github.com/LuaLS/lua-language-server/issues/756)
1469
- * `FIX` [#758](https://github.com/LuaLS/lua-language-server/issues/758)
1470
- * `FIX` [#760](https://github.com/LuaLS/lua-language-server/issues/760)
1471
-
1472
- ## 2.4.5
1473
- `2021-10-18`
1474
- * `FIX` accidentally load lua files from user workspace
1475
-
1476
- ## 2.4.4
1477
- `2021-10-15`
1478
- * `CHG` improve `.luarc.json`
1479
- * `FIX` [#722](https://github.com/LuaLS/lua-language-server/issues/722)
1480
-
1481
- ## 2.4.3
1482
- `2021-10-13`
1483
- * `FIX` [#713](https://github.com/LuaLS/lua-language-server/issues/713)
1484
- * `FIX` [#718](https://github.com/LuaLS/lua-language-server/issues/718)
1485
- * `FIX` [#719](https://github.com/LuaLS/lua-language-server/issues/719)
1486
- * `FIX` [#725](https://github.com/LuaLS/lua-language-server/issues/725)
1487
- * `FIX` [#729](https://github.com/LuaLS/lua-language-server/issues/729)
1488
- * `FIX` [#730](https://github.com/LuaLS/lua-language-server/issues/730)
1489
- * `FIX` runtime errors
1490
-
1491
- ## 2.4.2
1492
- `2021-10-8`
1493
- * `FIX` [#702](https://github.com/LuaLS/lua-language-server/issues/702)
1494
- * `FIX` [#706](https://github.com/LuaLS/lua-language-server/issues/706)
1495
- * `FIX` [#707](https://github.com/LuaLS/lua-language-server/issues/707)
1496
- * `FIX` [#709](https://github.com/LuaLS/lua-language-server/issues/709)
1497
- * `FIX` [#712](https://github.com/LuaLS/lua-language-server/issues/712)
1498
-
1499
- ## 2.4.1
1500
- `2021-10-2`
1501
- * `FIX` broken with single file
1502
- * `FIX` [#698](https://github.com/LuaLS/lua-language-server/issues/698)
1503
- * `FIX` [#699](https://github.com/LuaLS/lua-language-server/issues/699)
1504
-
1505
- ## 2.4.0
1506
- `2021-10-1`
1507
- * `NEW` loading settings from `.luarc.json`
1508
- * `NEW` settings:
1509
- + `Lua.diagnostics.libraryFiles`
1510
- + `Lua.diagnostics.ignoredFiles`
1511
- + `Lua.completion.showWord`
1512
- + `Lua.completion.requireSeparator`
1513
- * `NEW` diagnostics:
1514
- + `different-requires`
1515
- * `NEW` `---@CustomClass<string, number>`
1516
- * `NEW` supports `$/cancelRequest`
1517
- * `NEW` `EventEmitter`
1518
- ```lua
1519
- --- @class Emit
1520
- --- @field on fun(eventName: string, cb: function)
1521
- --- @field on fun(eventName: '"died"', cb: fun(i: integer))
1522
- --- @field on fun(eventName: '"won"', cb: fun(s: string))
1523
- local emit = {}
1524
-
1525
- emit:on(--[[support autocomplete fr "died" and "won"]])
1526
-
1527
- emit:on("died", function (i)
1528
- -- should be i: integer
1529
- end)
1530
-
1531
- emit:on('won', function (s)
1532
- -- should be s: string
1533
- end)
1534
- ```
1535
- * `NEW` `---@module 'moduleName'`
1536
- ```lua
1537
- ---@module 'mylib'
1538
- local lib -- the same as `local lib = require 'mylib'`
1539
- ```
1540
- * `NEW` add supports of `skynet`
1541
- * `CHG` hover: improve showing multi defines
1542
- * `CHG` hover: improve showing multi comments at enums
1543
- * `CHG` hover: shows method
1544
- * `CHG` hint: `Lua.hint.paramName` now supports `Disable`, `Literal` and `All`
1545
- * `CHG` only search first file by `require`
1546
- * `CHG` no longer infer by usage
1547
- * `CHG` no longer ignore file names case in Windows
1548
- * `CHG` watching library changes
1549
- * `CHG` completion: improve misspelling results
1550
- * `CHG` completion: `Lua.completion.displayContext` default to `0`
1551
- * `CHG` completion: `autoRequire` has better inserting position
1552
- * `CHG` diagnostics:
1553
- + `redundant-parameter` default severity to `Warning`
1554
- + `redundant-value` default severity to `Warning`
1555
- * `CHG` infer: more strict of calculation results
1556
- * `CHG` [#663](https://github.com/LuaLS/lua-language-server/issues/663)
1557
- * `FIX` runtime errors
1558
- * `FIX` hint: may show param-2 as `self`
1559
- * `FIX` semantic: may fail when scrolling
1560
- * `FIX` [#647](https://github.com/LuaLS/lua-language-server/issues/647)
1561
- * `FIX` [#660](https://github.com/LuaLS/lua-language-server/issues/660)
1562
- * `FIX` [#673](https://github.com/LuaLS/lua-language-server/issues/673)
1563
-
1564
- ## 2.3.7
1565
- `2021-8-17`
1566
- * `CHG` improve performance
1567
- * `FIX` [#244](https://github.com/LuaLS/lua-language-server/issues/244)
1568
-
1569
- ## 2.3.6
1570
- `2021-8-9`
1571
- * `FIX` completion: can not find global fields
1572
- * `FIX` globals and class may lost
1573
-
1574
- ## 2.3.5
1575
- `2021-8-9`
1576
- * `CHG` improve memory usage
1577
- * `CHG` completion: call snip triggers signature (VSCode only)
1578
- * `FIX` completion: may not find results
1579
-
1580
- ## 2.3.4
1581
- `2021-8-6`
1582
- * `CHG` improve performance
1583
- * `FIX` [#625](https://github.com/LuaLS/lua-language-server/issues/625)
1584
-
1585
- ## 2.3.3
1586
- `2021-7-26`
1587
- * `NEW` config supports prop
1588
- * `FIX` [#612](https://github.com/LuaLS/lua-language-server/issues/612)
1589
- * `FIX` [#613](https://github.com/LuaLS/lua-language-server/issues/613)
1590
- * `FIX` [#618](https://github.com/LuaLS/lua-language-server/issues/618)
1591
- * `FIX` [#620](https://github.com/LuaLS/lua-language-server/issues/620)
1592
-
1593
- ## 2.3.2
1594
- `2021-7-21`
1595
- * `NEW` `LuaDoc`: supports `['string']` as field:
1596
- ```lua
1597
- ---@class keyboard
1598
- ---@field ['!'] number
1599
- ---@field ['?'] number
1600
- ---@field ['#'] number
1601
- ```
1602
- * `NEW` add supports of `love2d`
1603
- * `FIX` gitignore pattern `\` broken initialization
1604
- * `FIX` runtime errors
1605
-
1606
- ## 2.3.1
1607
- `2021-7-19`
1608
- * `NEW` setting `Lua.workspace.userThirdParty`, add private user [third-parth](https://github.com/LuaLS/lua-language-server/tree/master/meta/3rd) by this setting
1609
- * `CHG` path in config supports `~/xxxx`
1610
- * `FIX` `autoRequire` inserted incorrect code
1611
- * `FIX` `autoRequire` may provide dumplicated options
1612
- * `FIX` [#606](https://github.com/LuaLS/lua-language-server/issues/606)
1613
- * `FIX` [#607](https://github.com/LuaLS/lua-language-server/issues/607)
1614
-
1615
- ## 2.3.0
1616
- `2021-7-16`
1617
- * `NEW` `VSCode`: click the status bar icon to operate:
1618
- * run workspace diagnostics
1619
- * `NEW` `LuaDoc`: supports `[1]` as field:
1620
- ```lua
1621
- ---@class position
1622
- ---@field [1] number
1623
- ---@field [2] number
1624
- ---@field [3] number
1625
- ```
1626
- * `NEW` hover: view array `local array = {'a', 'b', 'c'}`:
1627
- ```lua
1628
- local array: {
1629
- [1]: string = "a",
1630
- [2]: string = "b",
1631
- [3]: string = "c",
1632
- }
1633
- ```
1634
- * `NEW` completion: supports enums in `fun()`
1635
- ```lua
1636
- ---@type fun(x: "'aaa'"|"'bbb'")
1637
- local f
1638
-
1639
- f(--[[show `'aaa'` and `'bbb'` here]])
1640
- ```
1641
- * `FIX` loading workspace may hang
1642
- * `FIX` `debug.getuservalue` and `debug.setuservalue` should not exist in `Lua 5.1`
1643
- * `FIX` infer of `---@type class[][]`
1644
- * `FIX` infer of `---@type {}[]`
1645
- * `FIX` completion: displaying `@fenv` in `Lua 5.1`
1646
- * `FIX` completion: incorrect at end of line
1647
- * `FIX` when a file is renamed, the file will still be loaded even if the new file name has been set to ignore
1648
- * `FIX` [#596](https://github.com/LuaLS/lua-language-server/issues/596)
1649
- * `FIX` [#597](https://github.com/LuaLS/lua-language-server/issues/597)
1650
- * `FIX` [#598](https://github.com/LuaLS/lua-language-server/issues/598)
1651
- * `FIX` [#601](https://github.com/LuaLS/lua-language-server/issues/601)
1652
-
1653
- ## 2.2.3
1654
- `2021-7-9`
1655
- * `CHG` improve `auto require`
1656
- * `CHG` will not sleep anymore
1657
- * `FIX` incorrect doc: `debug.getlocal`
1658
- * `FIX` completion: incorrect callback
1659
- * `FIX` [#592](https://github.com/LuaLS/lua-language-server/issues/592)
1660
-
1661
- ## 2.2.2
1662
- `2021-7-9`
1663
- * `FIX` incorrect syntax color
1664
- * `FIX` incorrect type infer
1665
-
1666
- ## 2.2.1
1667
- `2021-7-8`
1668
- * `FIX` change setting may failed
1669
-
1670
- ## 2.2.0
1671
- `2021-7-8`
1672
- * `NEW` detect and apply third-party libraries, including:
1673
- * OpenResty
1674
- * Cocos4.0
1675
- * Jass
1676
- * `NEW` `LuaDoc`: supports literal table:
1677
- ```lua
1678
- ---@generic T
1679
- ---@param x T
1680
- ---@return { x: number, y: T, z?: boolean}
1681
- local function f(x) end
1682
-
1683
- local t = f('str')
1684
- -- hovering "t" shows:
1685
- local t: {
1686
- x: number,
1687
- y: string,
1688
- z?: boolean,
1689
- }
1690
- ```
1691
- * `CHG` improve changing config from server side
1692
- * `CHG` improve hover color
1693
- * `CHG` improve performance
1694
- * `CHG` telemetry: sends version of this extension
1695
- * `FIX` supports for file with LF
1696
- * `FIX` may infer a custom class as a string
1697
-
1698
- ## 2.1.0
1699
- `2021-7-2`
1700
- * `NEW` supports local config file, using `--configpath="config.json"`, [learn more here](https://luals.github.io/wiki/usage/#--configpath)
1701
- * `NEW` goto `type definition`
1702
- * `NEW` infer type by callback param:
1703
- ```lua
1704
- ---@param callback fun(value: string)
1705
- local function work(callback)
1706
- end
1707
-
1708
- work(function (value)
1709
- -- value is string here
1710
- end)
1711
- ```
1712
- * `NEW` optional field `---@field name? type`
1713
- * `CHG` [#549](https://github.com/LuaLS/lua-language-server/issues/549)
1714
- * `CHG` diagnostics: always ignore the ignored files even if they are opened
1715
- * `FIX` completion: `type() ==` may does not work
1716
-
1717
- ## 2.0.5
1718
- `2021-7-1`
1719
- * `NEW` `hover` and `completion` reports initialization progress
1720
- * `CHG` `class field` consider implicit definition
1721
- ```lua
1722
- ---@class Class
1723
- local mt = {}
1724
-
1725
- function mt:init()
1726
- self.xxx = 1
1727
- end
1728
-
1729
- function mt:func()
1730
- print(self.xxx) -- self.xxx is defined
1731
- end
1732
- ```
1733
- * `CHG` improve performance
1734
- * `FIX` [#580](https://github.com/LuaLS/lua-language-server/issues/580)
1735
-
1736
- ## 2.0.4
1737
- `2021-6-25`
1738
- * `FIX` [#550](https://github.com/LuaLS/lua-language-server/issues/550)
1739
- * `FIX` [#555](https://github.com/LuaLS/lua-language-server/issues/555)
1740
- * `FIX` [#574](https://github.com/LuaLS/lua-language-server/issues/574)
1741
-
1742
- ## 2.0.3
1743
- `2021-6-24`
1744
- * `CHG` improve memory usage
1745
- * `FIX` some dialog boxes block the initialization process
1746
- * `FIX` diagnostics `undefined-field`: blocks main thread
1747
- * `FIX` [#565](https://github.com/LuaLS/lua-language-server/issues/565)
1748
-
1749
- ## 2.0.2
1750
- `2021-6-23`
1751
- * `NEW` supports literal table in `pairs`
1752
- ```lua
1753
- local t = { a = 1, b = 2, c = 3 }
1754
- for k, v in pairs(t) do
1755
- -- `k` is string and `v` is integer here
1756
- end
1757
- ```
1758
- * `CHG` view `local f ---@type fun(x:number):boolean`
1759
- ```lua
1760
- ---before
1761
- function f(x: number)
1762
- -> boolean
1763
- ---after
1764
- local f: fun(x: number): boolean
1765
- ```
1766
- * `FIX` [#558](https://github.com/LuaLS/lua-language-server/issues/558)
1767
- * `FIX` [#567](https://github.com/LuaLS/lua-language-server/issues/567)
1768
- * `FIX` [#568](https://github.com/LuaLS/lua-language-server/issues/568)
1769
- * `FIX` [#570](https://github.com/LuaLS/lua-language-server/issues/570)
1770
- * `FIX` [#571](https://github.com/LuaLS/lua-language-server/issues/571)
1771
-
1772
- ## 2.0.1
1773
- `2021-6-21`
1774
- * `FIX` [#566](https://github.com/LuaLS/lua-language-server/issues/566)
1775
-
1776
- ## 2.0.0
1777
- `2021-6-21`
1778
- * `NEW` implement
1779
- * `CHG` diagnostics `undefined-field`, `deprecated`: default by `Opened` instead of `None`
1780
- * `CHG` setting `Lua.runtime.plugin`: default by `""` instead of `".vscode/lua/plugin.lua"` (for security)
1781
- * `CHG` setting `Lua.intelliSense.searchDepth`: removed
1782
- * `CHG` setting `Lua.misc.parameters`: `string array` instead of `string`
1783
- * `CHG` setting `Lua.develop.enable`, `Lua.develop.debuggerPort`, `Lua.develop.debuggerWait`: removed, use `Lua.misc.parameters` instead
1784
- * `FIX` [#441](https://github.com/LuaLS/lua-language-server/issues/441)
1785
- * `FIX` [#493](https://github.com/LuaLS/lua-language-server/issues/493)
1786
- * `FIX` [#531](https://github.com/LuaLS/lua-language-server/issues/531)
1787
- * `FIX` [#542](https://github.com/LuaLS/lua-language-server/issues/542)
1788
- * `FIX` [#543](https://github.com/LuaLS/lua-language-server/issues/543)
1789
- * `FIX` [#553](https://github.com/LuaLS/lua-language-server/issues/553)
1790
- * `FIX` [#562](https://github.com/LuaLS/lua-language-server/issues/562)
1791
- * `FIX` [#563](https://github.com/LuaLS/lua-language-server/issues/563)
1792
-
1793
- ## 1.21.3
1794
- `2021-6-17`
1795
- * `NEW` supports `untrusted workspaces`
1796
- * `FIX` performance issues, thanks to [folke](https://github.com/folke)
1797
-
1798
- ## 1.21.2
1799
- `2021-5-18`
1800
- * `FIX` loaded new file with ignored filename
1801
- * `FIX` [#536](https://github.com/LuaLS/lua-language-server/issues/536)
1802
- * `FIX` [#537](https://github.com/LuaLS/lua-language-server/issues/537)
1803
- * `FIX` [#538](https://github.com/LuaLS/lua-language-server/issues/538)
1804
- * `FIX` [#539](https://github.com/LuaLS/lua-language-server/issues/539)
1805
-
1806
- ## 1.21.1
1807
- `2021-5-8`
1808
- * `FIX` [#529](https://github.com/LuaLS/lua-language-server/issues/529)
1809
-
1810
- ## 1.21.0
1811
- `2021-5-7`
1812
- * `NEW` setting: `completion.showParams`
1813
- * `NEW` `LuaDoc`: supports multiline comments
1814
- * `NEW` `LuaDoc`: tail comments support lua string
1815
-
1816
- ## 1.20.5
1817
- `2021-4-30`
1818
- * `NEW` setting: `completion.autoRequire`
1819
- * `NEW` setting: `hover.enumsLimit`
1820
- * `CHG` folding: supports `-- #region`
1821
- * `FIX` completion: details may be suspended
1822
- * `FIX` [#522](https://github.com/LuaLS/lua-language-server/issues/522)
1823
- * `FIX` [#523](https://github.com/LuaLS/lua-language-server/issues/523)
1824
-
1825
- ## 1.20.4
1826
- `2021-4-13`
1827
- * `NEW` diagnostic: `deprecated`
1828
- * `FIX` [#464](https://github.com/LuaLS/lua-language-server/issues/464)
1829
- * `FIX` [#497](https://github.com/LuaLS/lua-language-server/issues/497)
1830
- * `FIX` [#502](https://github.com/LuaLS/lua-language-server/issues/502)
1831
-
1832
- ## 1.20.3
1833
- `2021-4-6`
1834
- * `FIX` [#479](https://github.com/LuaLS/lua-language-server/issues/479)
1835
- * `FIX` [#483](https://github.com/LuaLS/lua-language-server/issues/483)
1836
- * `FIX` [#485](https://github.com/LuaLS/lua-language-server/issues/485)
1837
- * `FIX` [#487](https://github.com/LuaLS/lua-language-server/issues/487)
1838
- * `FIX` [#488](https://github.com/LuaLS/lua-language-server/issues/488)
1839
- * `FIX` [#490](https://github.com/LuaLS/lua-language-server/issues/490)
1840
- * `FIX` [#495](https://github.com/LuaLS/lua-language-server/issues/495)
1841
-
1842
- ## 1.20.2
1843
- `2021-4-2`
1844
- * `CHG` `LuaDoc`: supports `---@param self TYPE`
1845
- * `CHG` completion: does not show suggests after `\n`, `{` and `,`, unless your setting `editor.acceptSuggestionOnEnter` is `off`
1846
- * `FIX` [#482](https://github.com/LuaLS/lua-language-server/issues/482)
1847
-
1848
- ## 1.20.1
1849
- `2021-3-27`
1850
- * `FIX` telemetry window blocks initializing
1851
- * `FIX` [#468](https://github.com/LuaLS/lua-language-server/issues/468)
1852
-
1853
- ## 1.20.0
1854
- `2021-3-27`
1855
- * `CHG` telemetry: change to opt-in, see [#462](https://github.com/LuaLS/lua-language-server/issues/462) and [Privacy-Policy](https://luals.github.io/privacy/#language-server)
1856
- * `FIX` [#467](https://github.com/LuaLS/lua-language-server/issues/467)
1857
-
1858
- ## 1.19.1
1859
- `2021-3-22`
1860
- * `CHG` improve performance
1861
- * `FIX` [#457](https://github.com/LuaLS/lua-language-server/issues/457)
1862
- * `FIX` [#458](https://github.com/LuaLS/lua-language-server/issues/458)
1863
-
1864
- ## 1.19.0
1865
- `2021-3-18`
1866
- * `NEW` VSCode: new setting `Lua.misc.parameters`
1867
- * `NEW` new setting `Lua.runtime.builtin`, used to disable some built-in libraries
1868
- * `NEW` quick fix: disable diagnostic in line/file
1869
- * `NEW` setting: `Lua.runtime.path` supports absolute path
1870
- * `NEW` completion: field in table
1871
- ```lua
1872
- ---@class A
1873
- ---@field x number
1874
- ---@field y number
1875
- ---@field z number
1876
-
1877
- ---@type A
1878
- local t = {
1879
- -- provide `x`, `y` and `z` here
1880
- }
1881
- ```
1882
- * `NEW` `LuaDoc`: supports multi-line comment before resume
1883
- ```lua
1884
- ---this is
1885
- ---a multi line
1886
- ---comment
1887
- ---@alias XXXX
1888
- ---comment 1
1889
- ---comment 1
1890
- ---| '1'
1891
- ---comment 2
1892
- ---comment 2
1893
- ---| '2'
1894
-
1895
- ---@param x XXXX
1896
- local function f(x)
1897
- end
1898
-
1899
- f( -- view comments of `1` and `2` in completion
1900
- ```
1901
- * `CHG` intelli-scense: search from generic param to return
1902
- * `CHG` intelli-scense: search across vararg
1903
- * `CHG` text-document-synchronization: refactored
1904
- * `CHG` diagnostic: improve `newline-call`
1905
- * `CHG` completion: improve `then .. end`
1906
- * `CHG` improve initialization speed
1907
- * `CHG` improve performance
1908
- * `FIX` missed syntax error `function m['x']() end`
1909
- * `FIX` [#452](https://github.com/LuaLS/lua-language-server/issues/452)
1910
-
1911
- ## 1.18.1
1912
- `2021-3-10`
1913
- * `CHG` semantic-tokens: improve colors of `const` and `close`
1914
- * `CHG` type-formating: improve execution conditions
1915
- * `FIX` [#444](https://github.com/LuaLS/lua-language-server/issues/444)
1916
-
1917
- ## 1.18.0
1918
- `2021-3-9`
1919
- * `NEW` `LuaDoc`: supports `---@diagnostic disable`
1920
- * `NEW` code-action: convert JSON to Lua
1921
- * `NEW` completion: provide `then .. end` snippet
1922
- * `NEW` type-formating:
1923
- ```lua
1924
- -- press `enter` at $
1925
- local function f() $ end
1926
- -- formating result:
1927
- local function f()
1928
- $
1929
- end
1930
-
1931
- -- as well as
1932
- do $ end
1933
- -- formating result
1934
- do
1935
- $
1936
- end
1937
- ```
1938
- * `CHG` `Windows`: dose not provide `ucrt` any more
1939
- * `CHG` `Lua.workspace.library`: use `path[]` instead of `<path, true>`
1940
- * `FIX` missed syntax error `local a <const>= 1`
1941
- * `FIX` workspace: preload blocked when hitting `Lua.workspace.maxPreload`
1942
- * `FIX` [#443](https://github.com/LuaLS/lua-language-server/issues/443)
1943
- * `FIX` [#445](https://github.com/LuaLS/lua-language-server/issues/445)
1944
-
1945
- ## 1.17.4
1946
- `2021-3-4`
1947
- * `FIX` [#437](https://github.com/LuaLS/lua-language-server/issues/437) again
1948
- * `FIX` [#438](https://github.com/LuaLS/lua-language-server/issues/438)
1949
-
1950
- ## 1.17.3
1951
- `2021-3-3`
1952
- * `CHG` intelli-scense: treat `V[]` as `table<integer, V>` in `pairs`
1953
- * `FIX` completion: `detail` disappears during continuous input
1954
- * `FIX` [#435](https://github.com/LuaLS/lua-language-server/issues/435)
1955
- * `FIX` [#436](https://github.com/LuaLS/lua-language-server/issues/436)
1956
- * `FIX` [#437](https://github.com/LuaLS/lua-language-server/issues/437)
1957
-
1958
- ## 1.17.2
1959
- `2021-3-2`
1960
- * `FIX` running in Windows
1961
-
1962
- ## 1.17.1
1963
- `2021-3-1`
1964
- * `CHG` intelli-scense: improve infer across `table<K, V>` and `V[]`.
1965
- * `CHG` intelli-scense: improve infer across `pairs` and `ipairs`
1966
- * `FIX` hover: shows nothing when hovering unknown function
1967
- * `FIX` [#398](https://github.com/LuaLS/lua-language-server/issues/398)
1968
- * `FIX` [#421](https://github.com/LuaLS/lua-language-server/issues/421)
1969
- * `FIX` [#422](https://github.com/LuaLS/lua-language-server/issues/422)
1970
-
1971
- ## 1.17.0
1972
- `2021-2-24`
1973
- * `NEW` diagnostic: `duplicate-set-field`
1974
- * `NEW` diagnostic: `no-implicit-any`, disabled by default
1975
- * `CHG` completion: improve field and table
1976
- * `CHG` improve infer cross `ipairs`
1977
- * `CHG` cache globals when loading
1978
- * `CHG` completion: remove trigger character `\n` for now, see [#401](https://github.com/LuaLS/lua-language-server/issues/401)
1979
- * `FIX` diagnositc: may open file with wrong uri case
1980
- * `FIX` [#406](https://github.com/LuaLS/lua-language-server/issues/406)
1981
-
1982
- ## 1.16.1
1983
- `2021-2-22`
1984
- * `FIX` signature: parameters may be misplaced
1985
- * `FIX` completion: interface in nested table
1986
- * `FIX` completion: interface not show after `,`
1987
- * `FIX` [#400](https://github.com/LuaLS/lua-language-server/issues/400)
1988
- * `FIX` [#402](https://github.com/LuaLS/lua-language-server/issues/402)
1989
- * `FIX` [#403](https://github.com/LuaLS/lua-language-server/issues/403)
1990
- * `FIX` [#404](https://github.com/LuaLS/lua-language-server/issues/404)
1991
- * `FIX` runtime errors
1992
-
1993
- ## 1.16.0
1994
- `2021-2-20`
1995
- * `NEW` file encoding supports `ansi`
1996
- * `NEW` completion: supports interface, see [#384](https://github.com/LuaLS/lua-language-server/issues/384)
1997
- * `NEW` `LuaDoc`: supports multiple class inheritance: `---@class Food: Burger, Pizza, Pie, Pasta`
1998
- * `CHG` rename `table*` to `tablelib`
1999
- * `CHG` `LuaDoc`: revert compatible with `--@`, see [#392](https://github.com/LuaLS/lua-language-server/issues/392)
2000
- * `CHG` improve performance
2001
- * `FIX` missed syntax error `f() = 1`
2002
- * `FIX` missed global `bit` in `LuaJIT`
2003
- * `FIX` completion: may insert error text when continuous inputing
2004
- * `FIX` completion: may insert error text after resolve
2005
- * `FIX` [#349](https://github.com/LuaLS/lua-language-server/issues/349)
2006
- * `FIX` [#396](https://github.com/LuaLS/lua-language-server/issues/396)
2007
-
2008
- ## 1.15.1
2009
- `2021-2-18`
2010
- * `CHG` diagnostic: `unused-local` excludes `doc.param`
2011
- * `CHG` definition: excludes values, see [#391](https://github.com/LuaLS/lua-language-server/issues/391)
2012
- * `FIX` not works on Linux and macOS
2013
-
2014
- ## 1.15.0
2015
- `2021-2-9`
2016
- * `NEW` LUNAR YEAR, BE HAPPY!
2017
- * `CHG` diagnostic: when there are too many errors, the main errors will be displayed first
2018
- * `CHG` main thread no longer loop sleeps, see [#329](https://github.com/LuaLS/lua-language-server/issues/329) [#386](https://github.com/LuaLS/lua-language-server/issues/386)
2019
- * `CHG` improve performance
2020
-
2021
- ## 1.14.3
2022
- `2021-2-8`
2023
- * `CHG` hint: disabled by default, see [#380](https://github.com/LuaLS/lua-language-server/issues/380)
2024
- * `FIX` [#381](https://github.com/LuaLS/lua-language-server/issues/381)
2025
- * `FIX` [#382](https://github.com/LuaLS/lua-language-server/issues/382)
2026
- * `FIX` [#388](https://github.com/LuaLS/lua-language-server/issues/388)
2027
-
2028
- ## 1.14.2
2029
- `2021-2-4`
2030
- * `FIX` [#356](https://github.com/LuaLS/lua-language-server/issues/356)
2031
- * `FIX` [#375](https://github.com/LuaLS/lua-language-server/issues/375)
2032
- * `FIX` [#376](https://github.com/LuaLS/lua-language-server/issues/376)
2033
- * `FIX` [#377](https://github.com/LuaLS/lua-language-server/issues/377)
2034
- * `FIX` [#378](https://github.com/LuaLS/lua-language-server/issues/378)
2035
- * `FIX` [#379](https://github.com/LuaLS/lua-language-server/issues/379)
2036
- * `FIX` a lot of runtime errors
2037
-
2038
- ## 1.14.1
2039
- `2021-2-2`
2040
- * `FIX` [#372](https://github.com/LuaLS/lua-language-server/issues/372)
2041
-
2042
- ## 1.14.0
2043
- `2021-2-2`
2044
- * `NEW` `VSCode` hint
2045
- * `NEW` flush cache after 5 min
2046
- * `NEW` `VSCode` help semantic color with market theme
2047
- * `CHG` create/delete/rename files no longer reload workspace
2048
- * `CHG` `LuaDoc`: compatible with `--@`
2049
- * `FIX` `VSCode` settings
2050
- * `FIX` [#368](https://github.com/LuaLS/lua-language-server/issues/368)
2051
- * `FIX` [#371](https://github.com/LuaLS/lua-language-server/issues/371)
2052
-
2053
- ## 1.13.0
2054
- `2021-1-28`
2055
- * `NEW` `VSCode` status bar
2056
- * `NEW` `VSCode` options in some window
2057
- * `CHG` performance optimization
2058
- * `FIX` endless loop
2059
-
2060
- ## 1.12.2
2061
- `2021-1-27`
2062
- * `CHG` performance optimization
2063
- * `FIX` modifying the code before loading finish makes confusion
2064
- * `FIX` signature: not works
2065
-
2066
- ## 1.12.1
2067
- `2021-1-27`
2068
- * `FIX` endless loop
2069
-
2070
- ## 1.12.0
2071
- `2021-1-26`
2072
- * `NEW` progress
2073
- * `NEW` [#340](https://github.com/LuaLS/lua-language-server/pull/340): supports `---@type table<string, number>`
2074
- * `FIX` [#355](https://github.com/LuaLS/lua-language-server/pull/355)
2075
- * `FIX` [#359](https://github.com/LuaLS/lua-language-server/issues/359)
2076
- * `FIX` [#361](https://github.com/LuaLS/lua-language-server/issues/361)
2077
-
2078
- ## 1.11.2
2079
- `2021-1-7`
2080
- * `FIX` [#345](https://github.com/LuaLS/lua-language-server/issues/345): not works with unexpect args
2081
- * `FIX` [#346](https://github.com/LuaLS/lua-language-server/issues/346): dont modify the cache
2082
-
2083
- ## 1.11.1
2084
- `2021-1-5`
2085
- * `CHG` performance optimization
2086
-
2087
- ## 1.11.0
2088
- `2021-1-5`
2089
- * `NEW` `Lua.runtime.plugin`
2090
- * `NEW` intelli-scense: improved `m.f = function (self) end` from `self` to `m`
2091
- * `CHG` performance optimization
2092
- * `CHG` completion: improve performance of workspace words
2093
- * `FIX` hover: tail comments may be cutted
2094
- * `FIX` runtime errors
2095
-
2096
- ## 1.10.0
2097
- `2021-1-4`
2098
- * `NEW` workspace: supports `.dll`(`.so`) in `require`
2099
- * `NEW` folding: `---@class`, `--#region` and docs of function
2100
- * `NEW` diagnostic: `count-down-loop`
2101
- * `CHG` supports `~` in command line
2102
- * `CHG` completion: improve workspace words
2103
- * `CHG` completion: show words in string
2104
- * `CHG` completion: split `for .. in` to `for .. ipairs` and `for ..pairs`
2105
- * `CHG` diagnostic: `unused-function` checks recursive
2106
- * `FIX` [#339](https://github.com/LuaLS/lua-language-server/issues/339)
2107
-
2108
- ## 1.9.0
2109
- `2020-12-31`
2110
- * `NEW` YEAR! Peace and love!
2111
- * `NEW` specify path of `log` and `meta` by `--logpath=xxx` and `--metapath=XXX` in command line
2112
- * `NEW` completion: worksapce word
2113
- * `NEW` completion: show words in comment
2114
- * `NEW` completion: generate function documentation
2115
- * `CHG` got arg after script name: `lua-language-server.exe main.lua --logpath=D:\log --metapath=D:\meta --develop=false`
2116
- * `FIX` runtime errors
2117
-
2118
- ## 1.8.2
2119
- `2020-12-29`
2120
- * `CHG` performance optimization
2121
-
2122
- ## 1.8.1
2123
- `2020-12-24`
2124
- * `FIX` telemetry: connect failed caused not working
2125
-
2126
- ## 1.8.0
2127
- `2020-12-23`
2128
- * `NEW` runtime: support nonstandard symbol
2129
- * `NEW` diagnostic: `close-non-object`
2130
- * `FIX` [#318](https://github.com/LuaLS/lua-language-server/issues/318)
2131
-
2132
- ## 1.7.4
2133
- `2020-12-20`
2134
- * `FIX` workspace: preload may failed
2135
-
2136
- ## 1.7.3
2137
- `2020-12-20`
2138
- * `FIX` luadoc: typo of `package.config`
2139
- * `FIX` [#310](https://github.com/LuaLS/lua-language-server/issues/310)
2140
-
2141
- ## 1.7.2
2142
- `2020-12-17`
2143
- * `CHG` completion: use custom tabsize
2144
- * `FIX` [#307](https://github.com/LuaLS/lua-language-server/issues/307)
2145
- * `FIX` a lot of runtime errors
2146
-
2147
- ## 1.7.1
2148
- `2020-12-16`
2149
- * `NEW` setting: `diagnostics.neededFileStatus`
2150
- * `FIX` scan workspace may fails
2151
- * `FIX` quickfix: `newline-call` failed
2152
- * `FIX` a lot of other runtime errors
2153
-
2154
- ## 1.7.0
2155
- `2020-12-16`
2156
- * `NEW` diagnostic: `undefined-field`
2157
- * `NEW` telemetry:
2158
- + [What data will be sent](https://github.com/LuaLS/lua-language-server/blob/master/script/service/telemetry.lua)
2159
- + [How to use this data](https://github.com/LuaLS/lua-telemetry-server/tree/master/method)
2160
- * `CHG` diagnostic: `unused-function` ignores function with `<close>`
2161
- * `CHG` semantic: not cover local call
2162
- * `CHG` language client: update to [7.0.0](https://github.com/microsoft/vscode-languageserver-node/commit/20681d7632bb129def0c751be73cf76bd01f2f3a)
2163
- * `FIX` semantic: tokens may not be updated correctly
2164
- * `FIX` completion: require path broken
2165
- * `FIX` hover: document uri
2166
- * `FIX` [#291](https://github.com/LuaLS/lua-language-server/issues/291)
2167
- * `FIX` [#294](https://github.com/LuaLS/lua-language-server/issues/294)
2168
-
2169
- ## 1.6.0
2170
- `2020-12-14`
2171
- * `NEW` completion: auto require local modules
2172
- * `NEW` completion: support delegate
2173
- * `NEW` hover: show function by keyword `function`
2174
- * `NEW` code action: swap params
2175
- * `CHG` standalone: unbind the relative path between binaries and scripts
2176
- * `CHG` hover: `LuaDoc` also catchs `--` (no need `---`)
2177
- * `CHG` rename: support doc
2178
- * `CHG` completion: keyword considers expression
2179
- * `FIX` [#297](https://github.com/LuaLS/lua-language-server/issues/297)
2180
-
2181
- ## 1.5.0
2182
- `2020-12-5`
2183
- * `NEW` setting `runtime.unicodeName`
2184
- * `NEW` fully supports `---@generic T`
2185
- * `FIX` [#274](https://github.com/LuaLS/lua-language-server/issues/274)
2186
- * `FIX` [#276](https://github.com/LuaLS/lua-language-server/issues/276)
2187
- * `FIX` [#279](https://github.com/LuaLS/lua-language-server/issues/279)
2188
- * `FIX` [#280](https://github.com/LuaLS/lua-language-server/issues/280)
2189
-
2190
- ## 1.4.0
2191
- `2020-12-3`
2192
- * `NEW` setting `hover.previewFields`: limit how many fields are shown in table hover
2193
- * `NEW` fully supports `---@type Object[]`
2194
- * `NEW` supports `---@see`
2195
- * `NEW` diagnostic `unbalanced-assignments`
2196
- * `CHG` resolves infer of `string|table`
2197
- * `CHG` `unused-local` ignores local with `---@class`
2198
- * `CHG` locale file format changes to `lua`
2199
-
2200
- ## 1.3.0
2201
- `2020-12-1`
2202
-
2203
- * `NEW` provides change logs, I think it's good idea for people knowing what's new ~~(bugs)~~
2204
- * `NEW` meta files of LuaJIT
2205
- * `NEW` support completion of `type(o) == ?`
2206
- * `CHG` now I think it's a bad idea as it took me nearly an hour to complete the logs started from version `1.0.0`
2207
- * `FIX` closing ignored or library file dose not clean diagnostics
2208
- * `FIX` searching of `t.f1` when `t.f1 = t.f2`
2209
- * `FIX` missing signature help of global function
2210
-
2211
- ## 1.2.1
2212
- `2020-11-27`
2213
-
2214
- * `FIX` syntaxes tokens: [#272](https://github.com/LuaLS/lua-language-server/issues/272)
2215
-
2216
- ## 1.2.0
2217
- `2020-11-27`
2218
-
2219
- * `NEW` hover shows comments from `---@param` and `---@return`: [#135](https://github.com/LuaLS/lua-language-server/issues/135)
2220
- * `NEW` support `LuaDoc` as tail comment
2221
- * `FIX` `---@class` inheritance
2222
- * `FIX` missed syntaxes token: `punctuation.definition.parameters.finish.lua`
2223
-
2224
- ## 1.1.4
2225
- `2020-11-25`
2226
-
2227
- * `FIX` wiered completion suggests for require paths in `Linux` and `macOS`: [#269](https://github.com/LuaLS/lua-language-server/issues/269)
2228
-
2229
- ## 1.1.3
2230
- `2020-11-25`
2231
-
2232
- * `FIX` extension not works in `Ubuntu`: [#268](https://github.com/LuaLS/lua-language-server/issues/268)
2233
-
2234
- ## 1.1.2
2235
- `2020-11-24`
2236
-
2237
- * `NEW` auto completion finds globals from `Lua.diagnostics.globals`
2238
- * `NEW` support tail `LuaDoc`
2239
- * `CHG` no more `Lua.intelliScense.fastGlobal`, now globals always fast and accurate
2240
- * `CHG` `LuaDoc` supports `--- @`
2241
- * `CHG` `find reference` uses extra `Lua.intelliSense.searchDepth`
2242
- * `CHG` diagnostics are limited by `100` in each file
2243
- * `FIX` library files are under limit of `Lua.workspace.maxPreload`: [#266](https://github.com/LuaLS/lua-language-server/issues/266)
2244
-
2245
- ## 1.1.1
2246
- `2020-11-23`
2247
-
2248
- * `NEW` auto completion special marks deprecated items
2249
- * `FIX` diagnostics may push wrong uri in `Linux` and `macOS`
2250
- * `FIX` diagnostics not cleaned up when closing ignored lua file
2251
- * `FIX` reload workspace remains old caches
2252
- * `FIX` incorrect hover of local attribute
2253
-
2254
- ## 1.1.0
2255
- `2020-11-20`
2256
-
2257
- * `NEW` no longer `BETA`
2258
- * `NEW` use `meta.lua` instead of `meta.lni`, now you can find the definition of builtin function
2259
- * `CHG` Lua files outside of workspace no longer launch a new server
2260
-
2261
- ## 1.0.6
2262
- `2020-11-20`
2263
-
2264
- * `NEW` diagnostic `code-after-break`
2265
- * `CHG` optimize performance
2266
- * `CHG` updated language client
2267
- * `CHG` `unused-function` ignores global functions (may used out of Lua)
2268
- * `CHG` checks if client supports `Lua.completion.enable`: [#259](https://github.com/LuaLS/lua-language-server/issues/259)
2269
- * `FIX` support for single Lua file
2270
- * `FIX` [#257](https://github.com/LuaLS/lua-language-server/issues/257)
2271
-
2272
- ## 1.0.5
2273
- `2020-11-14`
2274
-
2275
- * `NEW` `LuaDoc` supports more `EmmyLua`
2276
-
2277
- ## 1.0.4
2278
- `2020-11-12`
2279
-
2280
- * `FIX` extension not works
2281
-
2282
- ## 1.0.3
2283
- `2020-11-12`
2284
-
2285
- * `NEW` server kills itself when disconnecting
2286
- * `NEW` `LuaDoc` supports more `EmmyLua`
2287
- * `FIX` `Lua.diagnostics.enable` not works: [#251](https://github.com/LuaLS/lua-language-server/issues/251)
2288
-
2289
- ## 1.0.2
2290
- `2020-11-11`
2291
-
2292
- * `NEW` supports `---|` after `doc.type`
2293
- * `CHG` `lowcase-global` ignores globals with `---@class`
2294
- * `FIX` endless loop
2295
- * `FIX` [#244](https://github.com/LuaLS/lua-language-server/issues/244)
2296
-
2297
- ## 1.0.1
2298
- `2020-11-10`
2299
-
2300
- * `FIX` autocompletion not works.
2301
-
2302
- ## 1.0.0
2303
- `2020-11-9`
2304
-
2305
- * `NEW` implementation, NEW start!
2306
-
2307
- <!-- contributors -->
2308
- [lizho]: (https://github.com/lizho)
2309
- [fesily]: (https://github.com/fesily)
2310
- [Andreas Matthias]: (https://github.com/AndreasMatthias)
2311
- [Daniel Farrell]: (https://github.com/danpf)
2312
- [Paul Emmerich]: (https://github.com/emmericp)
2313
- [Artem Dzhemesiuk]: (https://github.com/zziger)
2314
- [clay-golem]: (https://github.com/clay-golem)
1
+ # changelog
2
+
3
+ ## Unreleased
4
+ <!-- Add all new changes here. They will be moved under a version at release -->
5
+
6
+ ## 3.15.0
7
+ `2025-6-25`
8
+ * `NEW` Support custom addons path for enhanced editor flexibility
9
+ * `NEW` Add `Lua.type.maxUnionVariants` which can be set to limit how many union variants are checked against
10
+ * `CHG` Add missing locale
11
+ * `CHG` Fulfill zh-tw translations
12
+ * `FIX` Cannot debug in Linux due to lua-debug expecting host process to have lua54 symbols available
13
+ * `FIX` Support hex color codes with `#` in `textDocument/documentColor`
14
+ * `FIX` Prevent class methods from triggering missing-fields diagnostics
15
+ * `FIX` Updates the EmmyLuaCodeStyle submodule reference to a newer commit, ensuring compatibility with GCC 15
16
+ * `FIX` Large unions will no longer erroneously fail to match later variants
17
+
18
+ ## 3.14.0
19
+ `2025-4-7`
20
+ * `NEW` locale `es-419`, thanks [Felipe Lema](https://codeberg.org/FelipeLema)
21
+ * `FIX` prevent unnecessary edits by LSP formatting when content did not change
22
+ * `FIX` return no completions if completion is disabled
23
+ * `FIX` optimized the performance of large literal tables (e.g., configuration tables)
24
+
25
+ ## 3.13.9
26
+ `2025-3-13`
27
+ * `CHG` remove the limit for analyzing the literal table
28
+
29
+ ## 3.13.8
30
+ `2025-3-12`
31
+ * `CHG` when analyzing the literal table, only the first 100 items are analyzed at most
32
+ * `CHG` when checking type matching for union types, only the first 100 items are checked at most
33
+ * `FIX` Update `--help` message.
34
+ * `FIX` --check now respects ignoreDir setting
35
+ * `FIX` incorrect argument skip pattern for `--check_out_path=`, which incorrectly skips the next argument
36
+
37
+ ## 3.13.7
38
+ `2025-3-10`
39
+ * `NEW` CLI: added `--help`.
40
+ * `CHG` default path for `--doc_out_path` is the current directory
41
+ * `FIX` incorrect argument skip pattern for `--check_out_path=`, which incorrectly skips the next argument
42
+ * `FIX` incorrect error message for `--doc_update`.
43
+ * `FIX` reimplement section `luals.config` in file doc.json
44
+ * `FIX` incorrect file names in file doc.json
45
+ * `FIX` remove extra `./` path prefix in the check report when using `--check=.`
46
+ * `FIX` Narrowing of types with literal fields: [#3056](https://github.com/LuaLS/lua-language-server/issues/3056), [#3089](https://github.com/LuaLS/lua-language-server/issues/3089)
47
+ * `FIX` correct lua version of `math.ult` and `math.type`
48
+ * `FIX` incorrect links for `pattern` in `string` methods
49
+ * `FIX` fix type annotations for bit module
50
+ * `FIX` Another regression related to type narrow and generic param introduced since `v3.10.1` [#3087](https://github.com/LuaLS/lua-language-server/issues/3087)
51
+
52
+ ## 3.13.6
53
+ `2025-2-6`
54
+ * `NEW` `---@class` supports attribute `partial`, which will not check missing inherited fields [#3023](https://github.com/LuaLS/lua-language-server/issues/3023)
55
+ ```lua
56
+ ---@class Config
57
+ ---@field a number
58
+
59
+ ---@class (partial) Config.P: Config
60
+ ---@field b number
61
+
62
+ ---@type Config.P[]
63
+ local cfgs = {}
64
+ cfgs[1] = { b = 1 } -- no warning
65
+ cfgs[2] = {} -- only warns missing `b`
66
+ ```
67
+ This enables the previous missing field check behavior before [#2970](https://github.com/LuaLS/lua-language-server/issues/2970)
68
+ * `NEW` Added variable substitution support for vscode's `${workspaceFolder:x}` when resolving path placeholders [#2987](https://github.com/LuaLS/lua-language-server/issues/2987)
69
+ * `NEW` Added `--check_format=json|pretty` for use with `--check` to output diagnostics in a human readable format.
70
+ * `NEW` Test CLI: `--name=<testname>` `-n=<testname>`: run specify unit test
71
+ * `CHG` Generic pattern now supports definition after capture and optional, union, array [#3014](https://github.com/LuaLS/lua-language-server/issues/3014) [#3031](https://github.com/LuaLS/lua-language-server/pull/3031)
72
+ ```lua
73
+ ---@generic T
74
+ ---@param t `T`.Cat?
75
+ ---@return T?
76
+ local function f(t) end
77
+
78
+ local t = f('Smile') --> t is `(Smile.Cat)?`
79
+ ```
80
+ * `FIX` Fixed the error that the configuration file pointed to by the `--configpath` option was not read and loaded.
81
+ * `FIX` Don't truncate any output when running in `--doc` mode [#3049](https://github.com/LuaLS/lua-language-server/issues/3049)
82
+ * `FIX` Generic return can be optional.
83
+ * `FIX` Fixed the comment calculating in docs `---@param a string?Comment` - now its `Comment` instead of `omment` [#3028](https://github.com/LuaLS/lua-language-server/pull/3028)
84
+ * `FIX` Fixed cannot bind variables using tail comment `@class` [#2673](https://github.com/LuaLS/lua-language-server/issues/2673)
85
+ * `FIX` Fixed missing field completion for generic class object [#2196](https://github.com/LuaLS/lua-language-server/issues/2196) [#2945](https://github.com/LuaLS/lua-language-server/issues/2945) [#3041](https://github.com/LuaLS/lua-language-server/issues/3041)
86
+
87
+ ## 3.13.5
88
+ `2024-12-20`
89
+ * `NEW` Setting: `Lua.hint.awaitPropagate`: When enabled, `--@async` propagates to the caller.
90
+ * `CHG` Add server version information to `initialize` response [#2996](https://github.com/LuaLS/lua-language-server/pull/2996)
91
+ * `CHG` If the `---@field` of the same name has a type of `fun`, the `duplicate-doc-field` check will not be performed.
92
+ * `FIX` Incorrect infer for function array annotation on tables [#2367](https://github.com/LuaLS/lua-language-server/issues/2367)
93
+
94
+ ## 3.13.4
95
+ `2024-12-13`
96
+ * `CHG` Can adjust the level of detail of Hover (VSCode)
97
+
98
+ ## 3.13.3
99
+ `2024-12-6`
100
+ * `CHG` Update Love2d version
101
+ * `CHG` Improve type infer of `table.unpack` and `unpack`
102
+ * `FIX` `missing-fields` diagnostic now warns about missing inherited fields
103
+ * `FIX` Incorrect `param-type-mismatch` diagnostic for optional fields
104
+
105
+ ## 3.13.2
106
+ `2024-11-21`
107
+ * `CHG` fulfill zh-cn translations
108
+ * `FIX` Add missing `errs ~= nil` checks to script/vm/type checkTableShape
109
+
110
+ ## 3.13.1
111
+ `2024-11-13`
112
+ * `FIX` Incorrect type check in some case
113
+
114
+ ## 3.13.0
115
+ `2024-11-13`
116
+ * `NEW` Setting: `Lua.type.inferTableSize`: A Small Table array can be infered
117
+ * `NEW` Add custom repository support for addonManager. New configuration setting: `Lua.addonManager.repositoryBranch` and `Lua.addonManager.repositoryPath`
118
+ * `NEW` Infer function parameter types when the function is used as an callback argument and that argument has a `fun()` annotation. Enable with `Lua.type.inferParamType` setting. [#2695](https://github.com/LuaLS/lua-language-server/pull/2695)
119
+ ```lua
120
+ ---@param callback fun(a: integer)
121
+ function register(callback) end
122
+
123
+ local function callback(a) end --> a: integer
124
+ register(callback)
125
+ ```
126
+ * `CHG` Basic types allow contravariance
127
+ ```lua
128
+ ---@class int32: integer
129
+
130
+ ---@type integer
131
+ local n
132
+
133
+ ---@type int32
134
+ local a = n
135
+ ```
136
+ * `FIX` Improve type narrow with **literal alias type** during completion and signature help
137
+
138
+ ## 3.12.0
139
+ `2024-10-30`
140
+ * `NEW` Support importing `enum` through class name suffix matching in quick fixes, allowing the import of `enum` from `table.table.enum; return table`.
141
+ * `NEW` Support limited multiline annotations
142
+ ```lua
143
+ ---@type {
144
+ --- x: number,
145
+ --- y: number,
146
+ --- z: number,
147
+ ---}
148
+ local point --> local point: { x: number, y: number, z: number }
149
+ ```
150
+ * `FIX` A regression related to type narrow and generic param introduced since `v3.10.1`
151
+ * `FIX` Parse storagePath to improve reliability of resolving ${addons} placeholder
152
+ * `FIX` Reference should also look in tablefield
153
+ * `FIX` Determine that the index of `{...}` is an integer when iterating
154
+
155
+ ## 3.11.1
156
+ `2024-10-9`
157
+ * `FIX` Fixed an issue preventing to set the locale to Japanese
158
+ * `FIX` Preserve newlines between function comment and @see
159
+ * `FIX` Accept storagePath option from client to resolve addon directory not found
160
+
161
+ ## 3.11.0
162
+ `2024-9-30`
163
+ * `NEW` Added support for Japanese locale
164
+ * `NEW` Infer function parameter types when overriding the same-named class function in an instance of that class [#2158](https://github.com/LuaLS/lua-language-server/issues/2158)
165
+ * `NEW` Types with literal fields can be narrowed.
166
+ * `NEW` Reference addons installed via the addon manager with `${addons}` [#2866](https://github.com/LuaLS/lua-language-server/pull/2866).
167
+ * `NEW` Support using `---@class` on `rawset(_G, ...)` to annotate the created global variable [#2862](https://github.com/LuaLS/lua-language-server/issues/2862)
168
+ * `NEW` Settings:
169
+ + `Lua.language.fixIndent`
170
+ + `Lua.language.completeAnnotation`
171
+ * `FIX` Eliminate floating point error in test benchmark output
172
+ * `FIX` Remove luamake install from make scripts
173
+ * `FIX` Incorrect `table` type injected to the global variable created by `rawset(_G, ...)` [#2863](https://github.com/LuaLS/lua-language-server/issues/2863)
174
+
175
+ ## 3.10.6
176
+ `2024-9-10`
177
+ * `NEW` Custom documentation exporter
178
+ * `NEW` Setting: `Lua.docScriptPath`: Path to a script that overrides `cli.doc.export`, allowing user-specified documentation exporting.
179
+ * `NEW` Infer the parameter types of a same-named function in the subclass based on the parameter types in the superclass function.
180
+ * `FIX` Fix `VM.OnCompileFunctionParam` function in plugins
181
+ * `FIX` Lua 5.1: fix incorrect warning when using setfenv with an int as first parameter
182
+ * `FIX` Improve type narrow by checking exact match on literal type params
183
+ * `FIX` Correctly list enums for function overload arguments [#2840](https://github.com/LuaLS/lua-language-server/pull/2840)
184
+ * `FIX` Incorrect function params' type infer when there is only `@overload` [#2509](https://github.com/LuaLS/lua-language-server/issues/2509) [#2708](https://github.com/LuaLS/lua-language-server/issues/2708) [#2709](https://github.com/LuaLS/lua-language-server/issues/2709)
185
+ * `FIX` Only call workspace/configuration when available [#981](https://github.com/LuaLS/lua-language-server/issues/981), [#2318](https://github.com/LuaLS/lua-language-server/issues/2318), [2336](https://github.com/LuaLS/lua-language-server/issues/2336) [#2843](https://github.com/LuaLS/lua-language-server/pull/2843)
186
+
187
+ ## 3.10.5
188
+ `2024-8-19`
189
+ * `NEW` using `enum (partial)`, it suggests all fields with the same `enum` type rather than just the fields from the current table.
190
+ * `NEW` When using `enum["<key>" or <index>]`, undefined fields will raise an 'undefined' error.
191
+ * `FIX` Renaming files in the directory leads to the auto-correction in "require" adding extra characters.
192
+ * `FIX` Performance issue
193
+ * `FIX` Fix incorrect indent fixing for `for`
194
+
195
+ ## 3.10.4
196
+ `2024-8-16`
197
+ * `NEW` Setting: `Lua.type.checkTableShape`: Add matching checks between the shape of tables and classes, during type checking. [#2768](https://github.com/LuaLS/lua-language-server/pull/2768)
198
+ * `NEW` `undefined-field` supports `enum`
199
+ * `CHG` Show enumed table as `enum X` instead of `table`
200
+ * `FIX` Error `attempt to index a nil value` when `Lua.hint.semicolon == 'All'` [#2788](https://github.com/LuaLS/lua-language-server/issues/2788)
201
+ * `FIX` Incorrect LuaCats parsing for `"'"`
202
+ * `FIX` Incorrect indent fixings
203
+
204
+ ## 3.10.3
205
+ `2024-8-8`
206
+ * `FIX` Memory leak with `---@enum(partical)`
207
+
208
+ ## 3.10.2
209
+ `2024-8-7`
210
+ * `NEW` Add support for binary metamethod on right operand [#2777](https://github.com/LuaLS/lua-language-server/pull/2777)
211
+ * `FIX` Incorrect indentation fixing in some case
212
+
213
+ ## 3.10.1
214
+ `2024-8-2`
215
+ * `FIX` Runtime error
216
+ * `FIX` Disable indentation fixing for Non-VSCode
217
+
218
+ ## 3.10.0
219
+ `2024-8-1`
220
+ * `NEW` Add postfix snippet for `unpack`
221
+ * `NEW` Add support for lambda style functions, `|paramList| expr` is syntactic sugar for `function(paramList) return expr end`
222
+ * `NEW` Added lua regular expression support for `Lua.doc.<scope>Name` [#2753](https://github.com/LuaLS/lua-language-server/pull/2753)
223
+ * `NEW` You can now click on "References" in CodeLen to display the reference list(VSCode)
224
+ * `NEW` Improved behavior for inserting new lines:
225
+ + When inside an annotation, an annotation tag will be added at the beginning of the line (VSCode).
226
+ + When between `function () end` or similar constructs, the format will be adjusted to a more reasonable one (VSCode) and leading/trailing spaces will be removed (generic).
227
+ + Attempts to semantically fix improper indentation (generic).
228
+ * `CHG` Improve performance of multithreaded `--check` and `undefined-field` diagnostic
229
+ * `CHG` Change spacing of parameter inlay hints to match other LSPs, like `rust-analyzer`
230
+ * `FIX` `diagnostics.severity` defaulting to "Warning" when run using `--check` [#2730](https://github.com/LuaLS/lua-language-server/issues/2730)
231
+ * `FIX` Respect `completion.showParams` config for local function completion
232
+ * `FIX` Addons can now self-recommend as expected. Fixed by correcting the `wholeMatch` function
233
+ * `FIX` Now correctly evaluates the visibility of fields in a class when they are defined directly in the object. use for completion and invisible dianostic. [#2752](https://github.com/LuaLS/lua-language-server/issues/2752)
234
+ * `FIX` Bad triggering of the `inject-field` diagnostic, when the fields are declared at the creation of the object [#2746](https://github.com/LuaLS/lua-language-server/issues/2746)
235
+ * `FIX` Inconsistent type narrow behavior of function call args [#2758](https://github.com/LuaLS/lua-language-server/issues/2758)
236
+ * `FIX` Improve the `missing-fields` logic to be able to correctly handle classes defined several times [#22770](https://github.com/LuaLS/lua-language-server/pull/2770)
237
+ * `FIX` Typos in annotation descriptions
238
+ * `FIX` incorrect `CompletionItemKind` for postfix snippets [#2773](https://github.com/LuaLS/lua-language-server/pull/2773)
239
+
240
+ ## 3.9.3
241
+ `2024-6-11`
242
+ * `FIX` Sometimes providing incorrect autocompletion when chaining calls
243
+
244
+ ## 3.9.2
245
+ `2024-6-6`
246
+ * `NEW` Reference workspace symbols in comments using `[some text](lua://symbolName)` syntax
247
+ * `FIX` Don't do diagnostics when the workspace is not ready
248
+ * `FIX` Autocompletion for enum values ​​is not available in some cases
249
+
250
+ ## 3.9.1
251
+ `2024-5-14`
252
+ * revert extension runtime
253
+
254
+ ## 3.9.0
255
+ `2024-5-11`
256
+ * `NEW` goto implementation
257
+ * `NEW` narrow the function prototype based on the parameter type
258
+ ```lua
259
+ ---@overload fun(a: boolean): A
260
+ ---@overload fun(a: number): B
261
+ local function f(...) end
262
+
263
+ local r1 = f(true) --> r1 is `A`
264
+ local r2 = f(10) --> r2 is `B`
265
+ ```
266
+
267
+ ## 3.8.3
268
+ `2024-4-23`
269
+ * `FIX` server may crash when the workspace is using a non-English path.
270
+
271
+ ## 3.8.2
272
+ `2024-4-23`
273
+ * This is a fake version only for the new version of VSCode, with a core of 3.8.0.
274
+
275
+ ## 3.8.1
276
+ `2024-4-23`
277
+ * This is a fake version only for the old version of VSCode, with a core of `3.7.4`. Starting from the next minor version, the version requirement for VSCode will be raised to prevent users still using the old version of VSCode from updating to the new version and experiencing compatibility issues.
278
+
279
+ ## 3.8.0
280
+ `2024-4-22`
281
+ * `NEW` supports tuple type (@[lizho])
282
+ ```lua
283
+ ---@type [string, number, boolean]
284
+ local t
285
+
286
+ local x = t[1] --> x is `string`
287
+ local y = t[2] --> y is `number`
288
+ local z = t[3] --> z is `boolean`
289
+ ```
290
+ * `NEW` generic pattern (@[fesily])
291
+ ```lua
292
+ ---@generic T
293
+ ---@param t Cat.`T`
294
+ ---@return T
295
+ local function f(t) end
296
+
297
+ local t = f('Smile') --> t is `Cat.Smile`
298
+ ```
299
+ * `NEW` alias and enums supports attribute `partial`
300
+ ```lua
301
+ ---@alias Animal Cat
302
+
303
+ ---@alias(partial) Animal Dog
304
+
305
+ ---@type Animal
306
+ local animal --> animal is `Cat|Dog` here
307
+ ```
308
+
309
+ ```lua
310
+ ---@enum(key) ErrorCodes
311
+ local codes1 = {
312
+ OK = 0,
313
+ ERROR = 1,
314
+ FATAL = 2,
315
+ }
316
+
317
+ ---@enum(key, partial) ErrorCodes
318
+ local codes2 = {
319
+ WARN = 3,
320
+ INFO = 4,
321
+ }
322
+
323
+ ---@type ErrorCodes
324
+ local code
325
+
326
+ code = 'ERROR' --> OK
327
+ code = 'WARN' --> OK
328
+
329
+ ```
330
+ * `NEW` plugin: add `OnTransFormAst` interface (@[fesily])
331
+ * `NEW` plugin: add `OnNodeCompileFunctionParam` interface (@[fesily])
332
+ * `NEW` plugin: add `ResolveRequire` interface (@[Artem Dzhemesiuk])
333
+ * `NEW` plugin: support multi plugins (@[fesily])
334
+ + setting: `Lua.runtime.plugin` can be `string|string[]`
335
+ + setting: `Lua.runtime.pluginArgs` can be `string[]|table<string, string>`
336
+ * `NEW` CLI: `--doc` add option `--doc_out_path <PATH>` (@[Andreas Matthias])
337
+ * `NEW` CLI: `--doc_update`, update an existing `doc.json` without using `--doc` again (@[Andreas Matthias])
338
+ * `NEW` CLI: `--trust_all_plugins`, this is potentially unsafe for normal use and meant for usage in CI environments only (@[Paul Emmerich])
339
+ * `CHG` CLI: `--check` will run plugins (@[Daniel Farrell])
340
+ * `FIX` diagnostic: `discard-returns` not works in some blocks (@clay-golem)
341
+ * `FIX` rename in library files
342
+
343
+ ## 3.7.4
344
+ `2024-1-5`
345
+ * `FIX` rename to unicode with `Lua.runtime.unicodeName = true`
346
+
347
+ ## 3.7.3
348
+ `2023-11-14`
349
+ * `FIX` can not infer arg type in some cases.
350
+
351
+ ## 3.7.2
352
+ `2023-11-9`
353
+ * `FIX` [#2407]
354
+
355
+ [#2407]: https://github.com/LuaLS/lua-language-server/issues/2407
356
+
357
+ ## 3.7.1
358
+ `2023-11-7`
359
+ * `FIX` [#2299]
360
+ * `FIX` [#2335]
361
+
362
+ [#2299]: https://github.com/LuaLS/lua-language-server/issues/2299
363
+ [#2335]: https://github.com/LuaLS/lua-language-server/issues/2335
364
+
365
+ ## 3.7.0
366
+ `2023-8-24`
367
+ * `NEW` support `---@type` and `--[[@as]]` for return statement
368
+ * `NEW` commandline parameter `--force-accept-workspace`: allowing the use of the root directory or home directory as the workspace
369
+ * `NEW` diagnostic: `inject-field`
370
+ * `NEW` `---@enum` supports attribute `key`
371
+ ```lua
372
+ ---@enum (key) AnimalType
373
+ local enum = {
374
+ Cat = 1,
375
+ Dog = 2,
376
+ }
377
+
378
+ ---@param animal userdata
379
+ ---@param atp AnimalType
380
+ ---@return boolean
381
+ local function isAnimalType(animal, atp)
382
+ return API.isAnimalType(animal, enum[atp])
383
+ end
384
+
385
+ assert(isAnimalType(animal, 'Cat'))
386
+ ```
387
+ * `NEW` `---@class` supports attribute `exact`
388
+ ```lua
389
+ ---@class (exact) Point
390
+ ---@field x number
391
+ ---@field y number
392
+ local m = {}
393
+ m.x = 1 -- OK
394
+ m.y = 2 -- OK
395
+ m.z = 3 -- Warning
396
+ ```
397
+
398
+ * `FIX` wrong hover and signature for method with varargs and overloads
399
+ * `FIX` [#2155]
400
+ * `FIX` [#2224]
401
+ * `FIX` [#2252]
402
+ * `FIX` [#2267]
403
+
404
+ [#2155]: https://github.com/LuaLS/lua-language-server/issues/2155
405
+ [#2224]: https://github.com/LuaLS/lua-language-server/issues/2224
406
+ [#2252]: https://github.com/LuaLS/lua-language-server/issues/2252
407
+ [#2267]: https://github.com/LuaLS/lua-language-server/issues/2267
408
+
409
+ ## 3.6.25
410
+ `2023-7-26`
411
+ * `FIX` [#2214]
412
+
413
+ [#2214]: https://github.com/LuaLS/lua-language-server/issues/2214
414
+
415
+ ## 3.6.24
416
+ `2023-7-21`
417
+ * `NEW` diagnostic: `missing-fields`
418
+ * `FIX` shake of `codeLens`
419
+ * `FIX` [#2145]
420
+
421
+ [#2145]: https://github.com/LuaLS/lua-language-server/issues/2145
422
+
423
+ ## 3.6.23
424
+ `2023-7-7`
425
+ * `CHG` signature: narrow by inputed literal
426
+
427
+ ## 3.6.22
428
+ `2023-6-14`
429
+ * `FIX` [#2038]
430
+ * `FIX` [#2042]
431
+ * `FIX` [#2062]
432
+ * `FIX` [#2083]
433
+ * `FIX` [#2088]
434
+ * `FIX` [#2110]
435
+ * `FIX` [#2129]
436
+
437
+ [#2038]: https://github.com/LuaLS/lua-language-server/issues/2038
438
+ [#2042]: https://github.com/LuaLS/lua-language-server/issues/2042
439
+ [#2062]: https://github.com/LuaLS/lua-language-server/issues/2062
440
+ [#2083]: https://github.com/LuaLS/lua-language-server/issues/2083
441
+ [#2088]: https://github.com/LuaLS/lua-language-server/issues/2088
442
+ [#2110]: https://github.com/LuaLS/lua-language-server/issues/2110
443
+ [#2129]: https://github.com/LuaLS/lua-language-server/issues/2129
444
+
445
+ ## 3.6.21
446
+ `2023-5-24`
447
+ * `FIX` disable ffi plugin
448
+
449
+ ## 3.6.20
450
+ `2023-5-23`
451
+ * `NEW` support connecting by socket with `--socket=PORT`
452
+ * `FIX` [#2113]
453
+
454
+ [#2113]: https://github.com/LuaLS/lua-language-server/issues/2113
455
+
456
+ ## 3.6.19
457
+ `2023-4-26`
458
+ * `FIX` commandline parameter `checklevel` may not work
459
+ * `FIX` [#2036]
460
+ * `FIX` [#2037]
461
+ * `FIX` [#2056]
462
+ * `FIX` [#2077]
463
+ * `FIX` [#2081]
464
+
465
+ [#2036]: https://github.com/LuaLS/lua-language-server/issues/2036
466
+ [#2037]: https://github.com/LuaLS/lua-language-server/issues/2037
467
+ [#2056]: https://github.com/LuaLS/lua-language-server/issues/2056
468
+ [#2077]: https://github.com/LuaLS/lua-language-server/issues/2077
469
+ [#2081]: https://github.com/LuaLS/lua-language-server/issues/2081
470
+
471
+ ## 3.6.18
472
+ `2023-3-23`
473
+ * `FIX` [#1943]
474
+ * `FIX` [#1996]
475
+ * `FIX` [#2004]
476
+ * `FIX` [#2013]
477
+
478
+ [#1943]: https://github.com/LuaLS/lua-language-server/issues/1943
479
+ [#1996]: https://github.com/LuaLS/lua-language-server/issues/1996
480
+ [#2004]: https://github.com/LuaLS/lua-language-server/issues/2004
481
+ [#2013]: https://github.com/LuaLS/lua-language-server/issues/2013
482
+
483
+ ## 3.6.17
484
+ `2023-3-9`
485
+ * `CHG` export documents: export global variables
486
+ * `FIX` [#1715]
487
+ * `FIX` [#1753]
488
+ * `FIX` [#1914]
489
+ * `FIX` [#1922]
490
+ * `FIX` [#1924]
491
+ * `FIX` [#1928]
492
+ * `FIX` [#1945]
493
+ * `FIX` [#1955]
494
+ * `FIX` [#1978]
495
+
496
+ [#1715]: https://github.com/LuaLS/lua-language-server/issues/1715
497
+ [#1753]: https://github.com/LuaLS/lua-language-server/issues/1753
498
+ [#1914]: https://github.com/LuaLS/lua-language-server/issues/1914
499
+ [#1922]: https://github.com/LuaLS/lua-language-server/issues/1922
500
+ [#1924]: https://github.com/LuaLS/lua-language-server/issues/1924
501
+ [#1928]: https://github.com/LuaLS/lua-language-server/issues/1928
502
+ [#1945]: https://github.com/LuaLS/lua-language-server/issues/1945
503
+ [#1955]: https://github.com/LuaLS/lua-language-server/issues/1955
504
+ [#1978]: https://github.com/LuaLS/lua-language-server/issues/1978
505
+
506
+ ## 3.6.13
507
+ `2023-3-2`
508
+ * `FIX` setting: `Lua.addonManager.enable` should be `true` by default
509
+ * `FIX` failed to publish to Windows
510
+
511
+ ## 3.6.12
512
+ `2023-3-2`
513
+ * `NEW` [Addon Manager](https://github.com/LuaLS/lua-language-server/discussions/1607), try it with command `lua.addon_manager.open`. Thanks to [carsakiller](https://github.com/carsakiller)!
514
+
515
+ ## 3.6.11
516
+ `2023-2-13`
517
+ * `CHG` completion: don't show loading process
518
+ * `FIX` [#1886]
519
+ * `FIX` [#1887]
520
+ * `FIX` [#1889]
521
+ * `FIX` [#1895]
522
+ * `FIX` [#1902]
523
+
524
+ [#1886]: https://github.com/LuaLS/lua-language-server/issues/1886
525
+ [#1887]: https://github.com/LuaLS/lua-language-server/issues/1887
526
+ [#1889]: https://github.com/LuaLS/lua-language-server/issues/1889
527
+ [#1895]: https://github.com/LuaLS/lua-language-server/issues/1895
528
+ [#1902]: https://github.com/LuaLS/lua-language-server/issues/1902
529
+
530
+ ## 3.6.10
531
+ `2023-2-7`
532
+ * `FIX` [#1869]
533
+ * `FIX` [#1872]
534
+
535
+ [#1869]: https://github.com/LuaLS/lua-language-server/issues/1869
536
+ [#1872]: https://github.com/LuaLS/lua-language-server/issues/1872
537
+
538
+ ## 3.6.9
539
+ `2023-2-2`
540
+ * `FIX` [#1864]
541
+ * `FIX` [#1868]
542
+ * `FIX` [#1869]
543
+ * `FIX` [#1871]
544
+
545
+ [#1864]: https://github.com/LuaLS/lua-language-server/issues/1864
546
+ [#1868]: https://github.com/LuaLS/lua-language-server/issues/1868
547
+ [#1869]: https://github.com/LuaLS/lua-language-server/issues/1869
548
+ [#1871]: https://github.com/LuaLS/lua-language-server/issues/1871
549
+
550
+ ## 3.6.8
551
+ `2023-1-31`
552
+ * `NEW` command `lua.exportDocument` . VSCode will display this command in the right-click menu
553
+ * `CHG` setting `Lua.workspace.supportScheme` has been removed. All schemes are supported if the language id is `lua`
554
+ * `FIX` [#1831]
555
+ * `FIX` [#1838]
556
+ * `FIX` [#1841]
557
+ * `FIX` [#1851]
558
+ * `FIX` [#1855]
559
+ * `FIX` [#1857]
560
+
561
+ [#1831]: https://github.com/LuaLS/lua-language-server/issues/1831
562
+ [#1838]: https://github.com/LuaLS/lua-language-server/issues/1838
563
+ [#1841]: https://github.com/LuaLS/lua-language-server/issues/1841
564
+ [#1851]: https://github.com/LuaLS/lua-language-server/issues/1851
565
+ [#1855]: https://github.com/LuaLS/lua-language-server/issues/1855
566
+ [#1857]: https://github.com/LuaLS/lua-language-server/issues/1857
567
+
568
+ ## 3.6.7
569
+ `2023-1-20`
570
+ * `FIX` [#1810]
571
+ * `FIX` [#1829]
572
+
573
+ [#1810]: https://github.com/LuaLS/lua-language-server/issues/1810
574
+ [#1829]: https://github.com/LuaLS/lua-language-server/issues/1829
575
+
576
+ ## 3.6.6
577
+ `2023-1-17`
578
+ * `FIX` [#1825]
579
+ * `FIX` [#1826]
580
+
581
+ [#1825]: https://github.com/LuaLS/lua-language-server/issues/1825
582
+ [#1826]: https://github.com/LuaLS/lua-language-server/issues/1826
583
+
584
+ ## 3.6.5
585
+ `2023-1-16`
586
+ * `NEW` support casting global variables
587
+ * `NEW` code lens: this feature is disabled by default.
588
+ * `NEW` settings:
589
+ * `Lua.codeLens.enable`: Enable code lens.
590
+ * `CHG` improve memory usage for large libraries
591
+ * `CHG` definition: supports finding definitions for `@class` and `@alias`, since they may be defined multi times
592
+ * `CHG` rename: supports `@field`
593
+ * `CHG` improve patch for `.luarc.json`
594
+ * `CHG` `---@meta [name]`: once declared `name`, user can only require this file by declared name. meta file can not be required with name `_`
595
+ * `CHG` remove telemetry
596
+ * `FIX` [#831]
597
+ * `FIX` [#1729]
598
+ * `FIX` [#1737]
599
+ * `FIX` [#1751]
600
+ * `FIX` [#1767]
601
+ * `FIX` [#1796]
602
+ * `FIX` [#1805]
603
+ * `FIX` [#1808]
604
+ * `FIX` [#1811]
605
+ * `FIX` [#1824]
606
+
607
+ [#831]: https://github.com/LuaLS/lua-language-server/issues/831
608
+ [#1729]: https://github.com/LuaLS/lua-language-server/issues/1729
609
+ [#1737]: https://github.com/LuaLS/lua-language-server/issues/1737
610
+ [#1751]: https://github.com/LuaLS/lua-language-server/issues/1751
611
+ [#1767]: https://github.com/LuaLS/lua-language-server/issues/1767
612
+ [#1796]: https://github.com/LuaLS/lua-language-server/issues/1796
613
+ [#1805]: https://github.com/LuaLS/lua-language-server/issues/1805
614
+ [#1808]: https://github.com/LuaLS/lua-language-server/issues/1808
615
+ [#1811]: https://github.com/LuaLS/lua-language-server/issues/1811
616
+ [#1824]: https://github.com/LuaLS/lua-language-server/issues/1824
617
+
618
+ ## 3.6.4
619
+ `2022-11-29`
620
+ * `NEW` modify `require` after renaming files
621
+ * `FIX` circulation reference in process analysis
622
+ ```lua
623
+ ---@type number
624
+ local x
625
+
626
+ ---@type number
627
+ local y
628
+
629
+ x = y
630
+
631
+ y = x --> Can not infer `y` before
632
+ ```
633
+ * `FIX` [#1698]
634
+ * `FIX` [#1704]
635
+ * `FIX` [#1717]
636
+
637
+ [#1698]: https://github.com/LuaLS/lua-language-server/issues/1698
638
+ [#1704]: https://github.com/LuaLS/lua-language-server/issues/1704
639
+ [#1717]: https://github.com/LuaLS/lua-language-server/issues/1717
640
+
641
+ ## 3.6.3
642
+ `2022-11-14`
643
+ * `FIX` [#1684]
644
+ * `FIX` [#1692]
645
+
646
+ [#1684]: https://github.com/LuaLS/lua-language-server/issues/1684
647
+ [#1692]: https://github.com/LuaLS/lua-language-server/issues/1692
648
+
649
+ ## 3.6.2
650
+ `2022-11-10`
651
+ * `FIX` incorrect type check for generic with nil
652
+ * `FIX` [#1676]
653
+ * `FIX` [#1677]
654
+ * `FIX` [#1679]
655
+ * `FIX` [#1680]
656
+
657
+ [#1676]: https://github.com/LuaLS/lua-language-server/issues/1676
658
+ [#1677]: https://github.com/LuaLS/lua-language-server/issues/1677
659
+ [#1679]: https://github.com/LuaLS/lua-language-server/issues/1679
660
+ [#1680]: https://github.com/LuaLS/lua-language-server/issues/1680
661
+
662
+ ## 3.6.1
663
+ `2022-11-8`
664
+ * `FIX` wrong diagnostics for `pcall` and `xpcall`
665
+ * `FIX` duplicate fields in table hover
666
+ * `FIX` description disapeared for overloaded function
667
+ * `FIX` [#1675]
668
+
669
+ [#1675]: https://github.com/LuaLS/lua-language-server/issues/1675
670
+
671
+ ## 3.6.0
672
+ `2022-11-8`
673
+ * `NEW` supports `private`/`protected`/`public`/`package`
674
+ * mark in `doc.field`
675
+ ```lua
676
+ ---@class unit
677
+ ---@field private uuid integer
678
+ ```
679
+ * mark with `---@private`, `---@protected`, `---@public` and `---@package`
680
+ ```lua
681
+ ---@class unit
682
+ local mt = {}
683
+
684
+ ---@private
685
+ function mt:init()
686
+ end
687
+
688
+ ---@protected
689
+ function mt:update()
690
+ end
691
+ ```
692
+ * mark by settings `Lua.doc.privateName`, `Lua.doc.protectedName` and `Lua.doc.packageName`
693
+ ```lua
694
+ ---@class unit
695
+ ---@field _uuid integer --> treat as private when `Lua.doc.privateName` has `"_*"`
696
+ ```
697
+ * `NEW` settings:
698
+ * `Lua.misc.executablePath`: [#1557] specify the executable path in VSCode
699
+ * `Lua.diagnostics.workspaceEvent`: [#1626] set the time to trigger workspace diagnostics.
700
+ * `Lua.doc.privateName`: treat matched fields as private
701
+ * `Lua.doc.protectedName`: treat matched fields as protected
702
+ * `Lua.doc.packageName`: treat matched fields as package
703
+ * `NEW` CLI `--doc [path]` to make docs.
704
+ server will generate `doc.json` and `doc.md` in `LOGPATH`.
705
+ `doc.md` is generated by `doc.json` by example code `script/cli/doc2md.lua`.
706
+ * `CHG` [#1558] detect multi libraries
707
+ * `CHG` [#1458] `semantic-tokens`: global variable is setted to `variable.global`
708
+ ```jsonc
709
+ // color global variables to red
710
+ "editor.semanticTokenColorCustomizations": {
711
+ "rules": {
712
+ "variable.global": "#ff0000"
713
+ }
714
+ }
715
+ ```
716
+ * `CHG` [#1177] re-support for symlinks, users need to maintain the correctness of symlinks themselves
717
+ * `CHG` [#1561] infer definitions and types across chain expression
718
+ ```lua
719
+ ---@class myClass
720
+ local myClass = {}
721
+
722
+ myClass.a.b.c.e.f.g = 1
723
+
724
+ ---@type myClass
725
+ local class
726
+
727
+ print(class.a.b.c.e.f.g) --> inferred as integer
728
+ ```
729
+ * `CHG` [#1582] the following diagnostics consider `overload`
730
+ * `missing-return`
731
+ * `missing-return-value`
732
+ * `redundant-return-value`
733
+ * `return-type-mismatch`
734
+ * `CHG` workspace-symbol: supports chain fields based on global variables and types. try `io.open` or `iolib.open`
735
+ * `CHG` [#1641] if a function only has varargs and has `---@overload`, the varargs will be ignored
736
+ * `CHG` [#1575] search definitions by first argument of `setmetatable`
737
+ ```lua
738
+ ---@class Object
739
+ local obj = setmetatable({
740
+ initValue = 1,
741
+ }, mt)
742
+
743
+ print(obj.initValue) --> `obj.initValue` is integer
744
+ ```
745
+ * `CHG` [#1153] infer type by generic parameters or returns of function
746
+ ```lua
747
+ ---@generic T
748
+ ---@param f fun(x: T)
749
+ ---@return T[]
750
+ local function x(f) end
751
+
752
+ ---@type fun(x: integer)
753
+ local cb
754
+
755
+ local arr = x(cb) --> `arr` is inferred as `integer[]`
756
+ ```
757
+ * `CHG` [#1201] infer parameter type by expected returned function of parent function
758
+ ```lua
759
+ ---@return fun(x: integer)
760
+ local function f()
761
+ return function (x) --> `x` is inferred as `integer`
762
+ end
763
+ end
764
+ ```
765
+ * `CHG` [#1332] infer parameter type when function in table
766
+ ```lua
767
+ ---@class A
768
+ ---@field f fun(x: string)
769
+
770
+ ---@type A
771
+ local t = {
772
+ f = function (x) end --> `x` is inferred as `string`
773
+ }
774
+ ```
775
+ * `CHG` find reference: respect `includeDeclaration` (although I don't know how to turn off this option in VSCode)
776
+ * `CHG` [#1344] improve `---@see`
777
+ * `CHG` [#1484] setting `runtime.special` supports fields
778
+ ```jsonc
779
+ {
780
+ "runtime.special": {
781
+ "sandbox.require": "require"
782
+ }
783
+ }
784
+ ```
785
+ * `CHG` [#1533] supports completion with table field of function
786
+ * `CHG` [#1457] infer parameter type by function type
787
+ ```lua
788
+ ---@type fun(x: number)
789
+ local function f(x) --> `x` is inferred as `number`
790
+ end
791
+ ```
792
+ * `CHG` [#1663] check parameter types of generic extends
793
+ ```lua
794
+ ---@generic T: string | boolean
795
+ ---@param x T
796
+ ---@return T
797
+ local function f(x)
798
+ return x
799
+ end
800
+
801
+ local x = f(1) --> Warning: Cannot assign `integer` to parameter `<T:boolean|string>`.
802
+ ```
803
+ * `CHG` [#1434] type check: check the fields in table:
804
+ ```lua
805
+ ---@type table<string, string>
806
+ local x
807
+
808
+ ---@type table<string, number>
809
+ local y
810
+
811
+ x = y --> Warning: Cannot assign `<string, number>` to `<string, string>`
812
+ ```
813
+ * `CHG` [#1374] type check: supports array part in literal table
814
+ ```lua
815
+ ---@type boolean[]
816
+ local t = { 1, 2, 3 } --> Warning: Cannot assign `integer` to `boolean`
817
+ ```
818
+ * `CHG` `---@enum` supports runtime values
819
+ * `FIX` [#1479]
820
+ * `FIX` [#1480]
821
+ * `FIX` [#1567]
822
+ * `FIX` [#1593]
823
+ * `FIX` [#1595]
824
+ * `FIX` [#1599]
825
+ * `FIX` [#1606]
826
+ * `FIX` [#1608]
827
+ * `FIX` [#1637]
828
+ * `FIX` [#1640]
829
+ * `FIX` [#1642]
830
+ * `FIX` [#1662]
831
+ * `FIX` [#1672]
832
+
833
+ [#1153]: https://github.com/LuaLS/lua-language-server/issues/1153
834
+ [#1177]: https://github.com/LuaLS/lua-language-server/issues/1177
835
+ [#1201]: https://github.com/LuaLS/lua-language-server/issues/1201
836
+ [#1202]: https://github.com/LuaLS/lua-language-server/issues/1202
837
+ [#1332]: https://github.com/LuaLS/lua-language-server/issues/1332
838
+ [#1344]: https://github.com/LuaLS/lua-language-server/issues/1344
839
+ [#1374]: https://github.com/LuaLS/lua-language-server/issues/1374
840
+ [#1434]: https://github.com/LuaLS/lua-language-server/issues/1434
841
+ [#1457]: https://github.com/LuaLS/lua-language-server/issues/1457
842
+ [#1458]: https://github.com/LuaLS/lua-language-server/issues/1458
843
+ [#1479]: https://github.com/LuaLS/lua-language-server/issues/1479
844
+ [#1480]: https://github.com/LuaLS/lua-language-server/issues/1480
845
+ [#1484]: https://github.com/LuaLS/lua-language-server/issues/1484
846
+ [#1533]: https://github.com/LuaLS/lua-language-server/issues/1533
847
+ [#1557]: https://github.com/LuaLS/lua-language-server/issues/1557
848
+ [#1558]: https://github.com/LuaLS/lua-language-server/issues/1558
849
+ [#1561]: https://github.com/LuaLS/lua-language-server/issues/1561
850
+ [#1567]: https://github.com/LuaLS/lua-language-server/issues/1567
851
+ [#1575]: https://github.com/LuaLS/lua-language-server/issues/1575
852
+ [#1582]: https://github.com/LuaLS/lua-language-server/issues/1582
853
+ [#1593]: https://github.com/LuaLS/lua-language-server/issues/1593
854
+ [#1595]: https://github.com/LuaLS/lua-language-server/issues/1595
855
+ [#1599]: https://github.com/LuaLS/lua-language-server/issues/1599
856
+ [#1606]: https://github.com/LuaLS/lua-language-server/issues/1606
857
+ [#1608]: https://github.com/LuaLS/lua-language-server/issues/1608
858
+ [#1626]: https://github.com/LuaLS/lua-language-server/issues/1626
859
+ [#1637]: https://github.com/LuaLS/lua-language-server/issues/1637
860
+ [#1640]: https://github.com/LuaLS/lua-language-server/issues/1640
861
+ [#1641]: https://github.com/LuaLS/lua-language-server/issues/1641
862
+ [#1642]: https://github.com/LuaLS/lua-language-server/issues/1642
863
+ [#1662]: https://github.com/LuaLS/lua-language-server/issues/1662
864
+ [#1663]: https://github.com/LuaLS/lua-language-server/issues/1663
865
+ [#1670]: https://github.com/LuaLS/lua-language-server/issues/1670
866
+ [#1672]: https://github.com/LuaLS/lua-language-server/issues/1672
867
+
868
+ ## 3.5.6
869
+ `2022-9-16`
870
+ * `FIX` [#1439](https://github.com/LuaLS/lua-language-server/issues/1439)
871
+ * `FIX` [#1467](https://github.com/LuaLS/lua-language-server/issues/1467)
872
+ * `FIX` [#1506](https://github.com/LuaLS/lua-language-server/issues/1506)
873
+ * `FIX` [#1537](https://github.com/LuaLS/lua-language-server/issues/1537)
874
+
875
+ ## 3.5.5
876
+ `2022-9-7`
877
+ * `FIX` [#1529](https://github.com/LuaLS/lua-language-server/issues/1529)
878
+ * `FIX` [#1530](https://github.com/LuaLS/lua-language-server/issues/1530)
879
+
880
+ ## 3.5.4
881
+ `2022-9-6`
882
+ * `NEW` `type-formatting`: fix wrong indentation of VSCode
883
+ * `CHG` `document-symbol`: redesigned to better support for `Sticky Scroll` feature of VSCode
884
+ * `FIX` `diagnostics.workspaceDelay` can not prevent first workspace diagnostic
885
+ * `FIX` [#1476](https://github.com/LuaLS/lua-language-server/issues/1476)
886
+ * `FIX` [#1490](https://github.com/LuaLS/lua-language-server/issues/1490)
887
+ * `FIX` [#1493](https://github.com/LuaLS/lua-language-server/issues/1493)
888
+ * `FIX` [#1499](https://github.com/LuaLS/lua-language-server/issues/1499)
889
+ * `FIX` [#1526](https://github.com/LuaLS/lua-language-server/issues/1526)
890
+
891
+ ## 3.5.3
892
+ `2022-8-13`
893
+ * `FIX` [#1409](https://github.com/LuaLS/lua-language-server/issues/1409)
894
+ * `FIX` [#1422](https://github.com/LuaLS/lua-language-server/issues/1422)
895
+ * `FIX` [#1425](https://github.com/LuaLS/lua-language-server/issues/1425)
896
+ * `FIX` [#1428](https://github.com/LuaLS/lua-language-server/issues/1428)
897
+ * `FIX` [#1430](https://github.com/LuaLS/lua-language-server/issues/1430)
898
+ * `FIX` [#1431](https://github.com/LuaLS/lua-language-server/issues/1431)
899
+ * `FIX` [#1446](https://github.com/LuaLS/lua-language-server/issues/1446)
900
+ * `FIX` [#1451](https://github.com/LuaLS/lua-language-server/issues/1451)
901
+ * `FIX` [#1461](https://github.com/LuaLS/lua-language-server/issues/1461)
902
+ * `FIX` [#1463](https://github.com/LuaLS/lua-language-server/issues/1463)
903
+
904
+ ## 3.5.2
905
+ `2022-8-1`
906
+ * `FIX` [#1395](https://github.com/LuaLS/lua-language-server/issues/1395)
907
+ * `FIX` [#1403](https://github.com/LuaLS/lua-language-server/issues/1403)
908
+ * `FIX` [#1405](https://github.com/LuaLS/lua-language-server/issues/1405)
909
+ * `FIX` [#1406](https://github.com/LuaLS/lua-language-server/issues/1406)
910
+ * `FIX` [#1418](https://github.com/LuaLS/lua-language-server/issues/1418)
911
+
912
+ ## 3.5.1
913
+ `2022-7-26`
914
+ * `NEW` supports [color](https://github.com/LuaLS/lua-language-server/pull/1379)
915
+ * `NEW` setting `Lua.runtime.pluginArgs`
916
+ * `CHG` setting `type.castNumberToInteger` default by `true`
917
+ * `CHG` improve supports for multi-workspace
918
+ * `FIX` [#1354](https://github.com/LuaLS/lua-language-server/issues/1354)
919
+ * `FIX` [#1355](https://github.com/LuaLS/lua-language-server/issues/1355)
920
+ * `FIX` [#1363](https://github.com/LuaLS/lua-language-server/issues/1363)
921
+ * `FIX` [#1365](https://github.com/LuaLS/lua-language-server/issues/1365)
922
+ * `FIX` [#1367](https://github.com/LuaLS/lua-language-server/issues/1367)
923
+ * `FIX` [#1368](https://github.com/LuaLS/lua-language-server/issues/1368)
924
+ * `FIX` [#1370](https://github.com/LuaLS/lua-language-server/issues/1370)
925
+ * `FIX` [#1375](https://github.com/LuaLS/lua-language-server/issues/1375)
926
+ * `FIX` [#1391](https://github.com/LuaLS/lua-language-server/issues/1391)
927
+
928
+ ## 3.5.0
929
+ `2022-7-19`
930
+ * `NEW` `LuaDoc`: `---@operator`:
931
+ ```lua
932
+ ---@class fspath
933
+ ---@operator div(string|fspath): fspath
934
+
935
+ ---@type fspath
936
+ local root
937
+
938
+ local fileName = root / 'script' / 'main.lua' -- `fileName` is `fspath` here
939
+ ```
940
+ * `NEW` `LuaDoc`: `---@source`:
941
+ ```lua
942
+ -- Also supports absolute path or relative path (based on current file path)
943
+ ---@source file:///xxx.c:50:20
944
+ XXX = 1 -- when finding definitions of `XXX`, returns `file:///xxx.c:50:20` instead here.
945
+ ```
946
+ * `NEW` `LuaDoc`: `---@enum`:
947
+ ```lua
948
+ ---@enum animal
949
+ Animal = {
950
+ Cat = 1,
951
+ Dog = 2,
952
+ }
953
+
954
+ ---@param x animal
955
+ local function f(x) end
956
+
957
+ f() -- suggests `Animal.Cat`, `Animal.Dog`, `1`, `2` as the first parameter
958
+ ```
959
+ * `NEW` diagnostics:
960
+ * `unknown-operator`
961
+ * `unreachable-code`
962
+ * `NEW` settings:
963
+ * `diagnostics.unusedLocalExclude`
964
+ * `NEW` VSCode: add support for [EmmyLuaUnity](https://marketplace.visualstudio.com/items?itemName=CppCXY.emmylua-unity)
965
+ * `CHG` support multi-type:
966
+ ```lua
967
+ ---@type number, _, boolean
968
+ local a, b, c -- `a` is `number`, `b` is `unknown`, `c` is `boolean`
969
+ ```
970
+ * `CHG` treat `_ENV = XXX` as `local _ENV = XXX`
971
+ * `_ENV = nil`: disable all globals
972
+ * `_ENV = {}`: allow all globals
973
+ * `_ENV = {} ---@type mathlib`: only allow globals in `mathlib`
974
+ * `CHG` hover: dose not show unknown `---@XXX` as description
975
+ * `CHG` contravariance is allowed at the class declaration
976
+ ```lua
977
+ ---@class BaseClass
978
+ local BaseClass
979
+
980
+ ---@class MyClass: BaseClass
981
+ local MyClass = BaseClass -- OK!
982
+ ```
983
+ * `CHG` hover: supports path in link
984
+ ```lua
985
+ --![](https://github.com/LuaLS/lua-language-server/raw/HEAD/image.png) --> will convert to `--![](file:///xxxx/image.png)`
986
+ local x
987
+ ```
988
+ * `CHG` signature: only show signatures matching the entered parameters
989
+ * `FIX` [#880](https://github.com/LuaLS/lua-language-server/issues/880)
990
+ * `FIX` [#1284](https://github.com/LuaLS/lua-language-server/issues/1284)
991
+ * `FIX` [#1292](https://github.com/LuaLS/lua-language-server/issues/1292)
992
+ * `FIX` [#1294](https://github.com/LuaLS/lua-language-server/issues/1294)
993
+ * `FIX` [#1306](https://github.com/LuaLS/lua-language-server/issues/1306)
994
+ * `FIX` [#1311](https://github.com/LuaLS/lua-language-server/issues/1311)
995
+ * `FIX` [#1317](https://github.com/LuaLS/lua-language-server/issues/1317)
996
+ * `FIX` [#1320](https://github.com/LuaLS/lua-language-server/issues/1320)
997
+ * `FIX` [#1330](https://github.com/LuaLS/lua-language-server/issues/1330)
998
+ * `FIX` [#1345](https://github.com/LuaLS/lua-language-server/issues/1345)
999
+ * `FIX` [#1346](https://github.com/LuaLS/lua-language-server/issues/1346)
1000
+ * `FIX` [#1348](https://github.com/LuaLS/lua-language-server/issues/1348)
1001
+
1002
+ ## 3.4.2
1003
+ `2022-7-6`
1004
+ * `CHG` diagnostic: `type-check` ignores `nil` in `getfield`
1005
+ * `CHG` diagnostic: `---@diagnostic disable: <ERR_NAME>` can suppress syntax errors
1006
+ * `CHG` completion: `completion.callSnippet` no longer generate parameter types
1007
+ * `CHG` hover: show `---@type {x: number, y: number}` as detail instead of `table`
1008
+ * `CHG` dose not infer as `nil` by `t.field = nil`
1009
+ * `FIX` [#1278](https://github.com/LuaLS/lua-language-server/issues/1278)
1010
+ * `FIX` [#1288](https://github.com/LuaLS/lua-language-server/issues/1288)
1011
+
1012
+ ## 3.4.1
1013
+ `2022-7-5`
1014
+ * `NEW` settings:
1015
+ * `type.weakNilCheck`
1016
+ * `CHG` allow type contravariance for `setmetatable` when initializing a class
1017
+ ```lua
1018
+ ---@class A
1019
+ local a = {}
1020
+
1021
+ ---@class B: A
1022
+ local b = setmetatable({}, { __index = a }) -- OK!
1023
+ ```
1024
+ * `FIX` [#1256](https://github.com/LuaLS/lua-language-server/issues/1256)
1025
+ * `FIX` [#1257](https://github.com/LuaLS/lua-language-server/issues/1257)
1026
+ * `FIX` [#1267](https://github.com/LuaLS/lua-language-server/issues/1267)
1027
+ * `FIX` [#1269](https://github.com/LuaLS/lua-language-server/issues/1269)
1028
+ * `FIX` [#1273](https://github.com/LuaLS/lua-language-server/issues/1273)
1029
+ * `FIX` [#1275](https://github.com/LuaLS/lua-language-server/issues/1275)
1030
+ * `FIX` [#1279](https://github.com/LuaLS/lua-language-server/issues/1279)
1031
+
1032
+ ## 3.4.0
1033
+ `2022-6-29`
1034
+ * `NEW` diagnostics:
1035
+ * `cast-local-type`
1036
+ * `assign-type-mismatch`
1037
+ * `param-type-mismatch`
1038
+ * `unknown-cast-variable`
1039
+ * `cast-type-mismatch`
1040
+ * `missing-return-value`
1041
+ * `redundant-return-value`
1042
+ * `missing-return`
1043
+ * `return-type-mismatch`
1044
+ * `NEW` settings:
1045
+ * `diagnostics.groupSeverity`
1046
+ * `diagnostics.groupFileStatus`
1047
+ * `type.castNumberToInteger`
1048
+ * `type.weakUnionCheck`
1049
+ * `hint.semicolon`
1050
+ * `CHG` infer `nil` as redundant return value
1051
+ ```lua
1052
+ local function f() end
1053
+ local x = f() -- `x` is `nil` instead of `unknown`
1054
+ ```
1055
+ * `CHG` infer called function by params num
1056
+ ```lua
1057
+ ---@overload fun(x: number, y: number):string
1058
+ ---@overload fun(x: number):number
1059
+ ---@return boolean
1060
+ local function f() end
1061
+
1062
+ local n1 = f() -- `n1` is `boolean`
1063
+ local n2 = f(0) -- `n2` is `number`
1064
+ local n3 = f(0, 0) -- `n3` is `string`
1065
+ ```
1066
+ * `CHG` semicolons and parentheses can be used in `DocTable`
1067
+ ```lua
1068
+ ---@type { (x: number); (y: boolean) }
1069
+ ```
1070
+ * `CHG` return names and parentheses can be used in `DocFunction`
1071
+ ```lua
1072
+ ---@type fun():(x: number, y: number, ...: number)
1073
+ ```
1074
+ * `CHG` supports `---@return boolean ...`
1075
+ * `CHG` improve experience for diagnostics and semantic-tokens
1076
+ * `FIX` diagnostics flash when opening a file
1077
+ * `FIX` sometimes workspace diagnostics are not triggered
1078
+ * `FIX` [#1228](https://github.com/LuaLS/lua-language-server/issues/1228)
1079
+ * `FIX` [#1229](https://github.com/LuaLS/lua-language-server/issues/1229)
1080
+ * `FIX` [#1242](https://github.com/LuaLS/lua-language-server/issues/1242)
1081
+ * `FIX` [#1243](https://github.com/LuaLS/lua-language-server/issues/1243)
1082
+ * `FIX` [#1249](https://github.com/LuaLS/lua-language-server/issues/1249)
1083
+
1084
+ ## 3.3.1
1085
+ `2022-6-17`
1086
+ * `FIX` [#1213](https://github.com/LuaLS/lua-language-server/issues/1213)
1087
+ * `FIX` [#1215](https://github.com/LuaLS/lua-language-server/issues/1215)
1088
+ * `FIX` [#1217](https://github.com/LuaLS/lua-language-server/issues/1217)
1089
+ * `FIX` [#1218](https://github.com/LuaLS/lua-language-server/issues/1218)
1090
+ * `FIX` [#1220](https://github.com/LuaLS/lua-language-server/issues/1220)
1091
+ * `FIX` [#1223](https://github.com/LuaLS/lua-language-server/issues/1223)
1092
+
1093
+ ## 3.3.0
1094
+ `2022-6-15`
1095
+ * `NEW` `LuaDoc` supports `` `CODE` ``
1096
+ ```lua
1097
+ ---@type `CONST.X` | `CONST.Y`
1098
+ local x
1099
+
1100
+ if x == -- suggest `CONST.X` and `CONST.Y` here
1101
+ ```
1102
+ * `CHG` infer type by `error`
1103
+ ```lua
1104
+ ---@type integer|nil
1105
+ local n
1106
+
1107
+ if not n then
1108
+ error('n is nil')
1109
+ end
1110
+
1111
+ print(n) -- `n` is `integer` here
1112
+ ```
1113
+ * `CHG` infer type by `t and t.x`
1114
+ ```lua
1115
+ ---@type table|nil
1116
+ local t
1117
+
1118
+ local s = t and t.x or 1 -- `t` in `t.x` is `table`
1119
+ ```
1120
+ * `CHG` infer type by `type(x)`
1121
+ ```lua
1122
+ local x
1123
+
1124
+ if type(x) == 'string' then
1125
+ print(x) -- `x` is `string` here
1126
+ end
1127
+
1128
+ local tp = type(x)
1129
+
1130
+ if tp == 'boolean' then
1131
+ print(x) -- `x` is `boolean` here
1132
+ end
1133
+ ```
1134
+ * `CHG` infer type by `>`/`<`/`>=`/`<=`
1135
+ * `FIX` with clients that support LSP 3.17 (VSCode), workspace diagnostics are triggered every time when opening a file.
1136
+ * `FIX` [#1204](https://github.com/LuaLS/lua-language-server/issues/1204)
1137
+ * `FIX` [#1208](https://github.com/LuaLS/lua-language-server/issues/1208)
1138
+
1139
+ ## 3.2.5
1140
+ `2022-6-9`
1141
+ * `NEW` provide config docs in `LUA_LANGUAGE_SERVER/doc/`
1142
+ * `FIX` [#1148](https://github.com/LuaLS/lua-language-server/issues/1148)
1143
+ * `FIX` [#1149](https://github.com/LuaLS/lua-language-server/issues/1149)
1144
+ * `FIX` [#1192](https://github.com/LuaLS/lua-language-server/issues/1192)
1145
+
1146
+ ## 3.2.4
1147
+ `2022-5-25`
1148
+ * `NEW` settings:
1149
+ + `workspace.supportScheme`: `["file", "untitled", "git"]`
1150
+ + `diagnostics.disableScheme`: `["git"]`
1151
+ * `NEW` folding: support folding `---@alias`
1152
+ * `CHG` if `rootUri` or `workspaceFolder` is set to `ROOT` or `HOME`, this extension will refuse to load these directories and show an error message.
1153
+ * `CHG` show warning message when scanning more than 100,000 files.
1154
+ * `CHG` upgrade [LSP](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/) to `3.17`
1155
+ * `FIX` hover: can not union `table` with other basic types
1156
+ * `FIX` [#1125](https://github.com/LuaLS/lua-language-server/issues/1125)
1157
+ * `FIX` [#1131](https://github.com/LuaLS/lua-language-server/issues/1131)
1158
+ * `FIX` [#1134](https://github.com/LuaLS/lua-language-server/issues/1134)
1159
+ * `FIX` [#1141](https://github.com/LuaLS/lua-language-server/issues/1141)
1160
+ * `FIX` [#1144](https://github.com/LuaLS/lua-language-server/issues/1144)
1161
+ * `FIX` [#1150](https://github.com/LuaLS/lua-language-server/issues/1150)
1162
+ * `FIX` [#1155](https://github.com/LuaLS/lua-language-server/issues/1155)
1163
+
1164
+ ## 3.2.3
1165
+ `2022-5-16`
1166
+ * `CHG` parse `.luarc.json` as jsonc. In order to please the editor, it also supports `.luarc.jsonc` as the file name.
1167
+ * `CHG` dose not load files in symbol links
1168
+ * `FIX` memory leak with symbol links
1169
+ * `FIX` diagnostic: send empty results to every file after startup
1170
+ * `FIX` [#1103](https://github.com/LuaLS/lua-language-server/issues/1103)
1171
+ * `FIX` [#1107](https://github.com/LuaLS/lua-language-server/issues/1107)
1172
+
1173
+ ## 3.2.2
1174
+ `2022-4-26`
1175
+ * `FIX` diagnostic: `unused-function` cannot handle recursion correctly
1176
+ * `FIX` [#1092](https://github.com/LuaLS/lua-language-server/issues/1092)
1177
+ * `FIX` [#1093](https://github.com/LuaLS/lua-language-server/issues/1093)
1178
+ * `FIX` runtime errors reported by telemetry, see [#1091](https://github.com/LuaLS/lua-language-server/issues/1091)
1179
+
1180
+ ## 3.2.1
1181
+ `2022-4-25`
1182
+ * `FIX` broken in VSCode
1183
+
1184
+ ## 3.2.0
1185
+ `2022-4-25`
1186
+ * `NEW` supports infer of callback parameter
1187
+ ```lua
1188
+ ---@type string[]
1189
+ local t
1190
+
1191
+ table.sort(t, function (a, b)
1192
+ -- `a` and `b` is `string` here
1193
+ end)
1194
+ ```
1195
+ * `NEW` using `---@overload` as class constructor
1196
+ ```lua
1197
+ ---@class Class
1198
+ ---@overload fun():Class
1199
+ local mt
1200
+
1201
+ local x = mt() --> x is `Class` here
1202
+ ```
1203
+ * `NEW` add `--[[@as type]]`
1204
+ ```lua
1205
+ local x = true
1206
+ local y = x--[[@as integer]] -- y is `integer` here
1207
+ ```
1208
+ * `NEW` add `---@cast`
1209
+ * `---@cast localname type`
1210
+ * `---@cast localname +type`
1211
+ * `---@cast localname -type`
1212
+ * `---@cast localname +?`
1213
+ * `---@cast localname -?`
1214
+ * `NEW` generic: resolve `T[]` by `table<integer, type>` or `---@field [integer] type`
1215
+ * `NEW` resolve `class[1]` by `---@field [integer] type`
1216
+ * `NEW` diagnostic: `missing-parameter`
1217
+ * `NEW` diagnostic: `need-check-nil`
1218
+ * `CHG` diagnostic: no longer mark `redundant-parameter` as `Unnecessary`
1219
+ * `FIX` diagnostic: `unused-function` does not recognize recursion
1220
+ * `FIX` [#1051](https://github.com/LuaLS/lua-language-server/issues/1051)
1221
+ * `FIX` [#1072](https://github.com/LuaLS/lua-language-server/issues/1072)
1222
+ * `FIX` [#1077](https://github.com/LuaLS/lua-language-server/issues/1077)
1223
+ * `FIX` [#1088](https://github.com/LuaLS/lua-language-server/issues/1088)
1224
+ * `FIX` runtime errors
1225
+
1226
+ ## 3.1.0
1227
+ `2022-4-17`
1228
+ * `NEW` support find definition in method
1229
+ * `CHG` hint: move to LSP. Its font is now controlled by the client.
1230
+ * `CHG` hover: split `local` into `local` / `parameter` / `upvalue` / `self`.
1231
+ * `CHG` hover: added parentheses to some words, such as `global` / `field` / `class`.
1232
+ * `FIX` definition of `table<k, v>`
1233
+ * `FIX` [#994](https://github.com/LuaLS/lua-language-server/issues/994)
1234
+ * `FIX` [#1057](https://github.com/LuaLS/lua-language-server/issues/1057)
1235
+ * `FIX` runtime errors reported by telemetry, see [#1058](https://github.com/LuaLS/lua-language-server/issues/1058)
1236
+
1237
+ ## 3.0.2
1238
+ `2022-4-15`
1239
+ * `FIX` `table<string, boolean>[string] -> boolean`
1240
+ * `FIX` goto `type definition`
1241
+ * `FIX` [#1050](https://github.com/LuaLS/lua-language-server/issues/1050)
1242
+
1243
+ ## 3.0.1
1244
+ `2022-4-11`
1245
+ * `FIX` [#1033](https://github.com/LuaLS/lua-language-server/issues/1033)
1246
+ * `FIX` [#1034](https://github.com/LuaLS/lua-language-server/issues/1034)
1247
+ * `FIX` [#1035](https://github.com/LuaLS/lua-language-server/issues/1035)
1248
+ * `FIX` [#1036](https://github.com/LuaLS/lua-language-server/issues/1036)
1249
+ * `FIX` runtime errors reported by telemetry, see [#1037](https://github.com/LuaLS/lua-language-server/issues/1037)
1250
+
1251
+ ## 3.0.0
1252
+ `2022-4-10`
1253
+ * `CHG` [break changes](https://github.com/LuaLS/lua-language-server/issues/980)
1254
+ * `CHG` diagnostic:
1255
+ + `type-check`: removed for now
1256
+ + `no-implicit-any`: renamed to `no-unknown`
1257
+ * `CHG` formatter: no longer need` --preview`
1258
+ * `CHG` `LuaDoc`: supports `---@type (string|integer)[]`
1259
+ * `FIX` semantic: color of `function`
1260
+ * `FIX` [#1027](https://github.com/LuaLS/lua-language-server/issues/1027)
1261
+ * `FIX` [#1028](https://github.com/LuaLS/lua-language-server/issues/1028)
1262
+
1263
+ ## 2.6.8
1264
+ `2022-4-9`
1265
+ * `CHG` completion: call snippet shown as `Function` instead of `Snippet` when `Lua.completion.callSnippet` is `Replace`
1266
+ * `FIX` [#976](https://github.com/LuaLS/lua-language-server/issues/976)
1267
+ * `FIX` [#995](https://github.com/LuaLS/lua-language-server/issues/995)
1268
+ * `FIX` [#1004](https://github.com/LuaLS/lua-language-server/issues/1004)
1269
+ * `FIX` [#1008](https://github.com/LuaLS/lua-language-server/issues/1008)
1270
+ * `FIX` [#1009](https://github.com/LuaLS/lua-language-server/issues/1009)
1271
+ * `FIX` [#1011](https://github.com/LuaLS/lua-language-server/issues/1011)
1272
+ * `FIX` [#1014](https://github.com/LuaLS/lua-language-server/issues/1014)
1273
+ * `FIX` [#1016](https://github.com/LuaLS/lua-language-server/issues/1016)
1274
+ * `FIX` [#1017](https://github.com/LuaLS/lua-language-server/issues/1017)
1275
+ * `FIX` runtime errors reported by telemetry
1276
+
1277
+ ## 2.6.7
1278
+ `2022-3-9`
1279
+ * `NEW` diagnosis report, [read more](https://luals.github.io/wiki/diagnosis-report/)
1280
+ * `CHG` `VSCode`: 1.65 has built in new `Lua` syntax files, so this extension no longer provides syntax files, which means you can install other syntax extensions in the marketplace. If you have any suggestions or issues, please [open issues here](https://github.com/LuaLS/lua.tmbundle).
1281
+ * `CHG` telemetry: the prompt will only appear in VSCode to avoid repeated prompts in other platforms due to the inability to automatically modify the settings.
1282
+ * `FIX` [#965](https://github.com/LuaLS/lua-language-server/issues/965)
1283
+ * `FIX` [#975](https://github.com/LuaLS/lua-language-server/issues/975)
1284
+
1285
+ ## 2.6.6
1286
+ `2022-2-21`
1287
+ * `NEW` formatter preview, use `--preview` to enable this feature, [read more](https://github.com/LuaLS/lua-language-server/issues/960)
1288
+ * `FIX` [#958](https://github.com/LuaLS/lua-language-server/issues/958)
1289
+ * `FIX` runtime errors
1290
+
1291
+ ## 2.6.5
1292
+ `2022-2-17`
1293
+ * `FIX` telemetry is not disabled by default (since 2.6.0)
1294
+ * `FIX` [#934](https://github.com/LuaLS/lua-language-server/issues/934)
1295
+ * `FIX` [#952](https://github.com/LuaLS/lua-language-server/issues/952)
1296
+
1297
+ ## 2.6.4
1298
+ `2022-2-9`
1299
+ * `CHG` completion: reduced sorting priority for postfix completion
1300
+ * `FIX` [#936](https://github.com/LuaLS/lua-language-server/issues/936)
1301
+ * `FIX` [#937](https://github.com/LuaLS/lua-language-server/issues/937)
1302
+ * `FIX` [#940](https://github.com/LuaLS/lua-language-server/issues/940)
1303
+ * `FIX` [#941](https://github.com/LuaLS/lua-language-server/issues/941)
1304
+ * `FIX` [#941](https://github.com/LuaLS/lua-language-server/issues/942)
1305
+ * `FIX` [#943](https://github.com/LuaLS/lua-language-server/issues/943)
1306
+ * `FIX` [#946](https://github.com/LuaLS/lua-language-server/issues/946)
1307
+
1308
+ ## 2.6.3
1309
+ `2022-1-25`
1310
+ * `FIX` new files are not loaded correctly
1311
+ * `FIX` [#923](https://github.com/LuaLS/lua-language-server/issues/923)
1312
+ * `FIX` [#926](https://github.com/LuaLS/lua-language-server/issues/926)
1313
+
1314
+ ## 2.6.2
1315
+ `2022-1-25`
1316
+ * `FIX` [#925](https://github.com/LuaLS/lua-language-server/issues/925)
1317
+
1318
+ ## 2.6.1
1319
+ `2022-1-24`
1320
+ * `CHG` default values of settings:
1321
+ + `Lua.diagnostics.workspaceDelay`: `0` sec -> `3` sec
1322
+ + `Lua.workspace.maxPreload`: `1000` -> `5000`
1323
+ + `Lua.workspace.preloadFileSize`: `100` KB -> `500` KB
1324
+ * `CHG` improve performance
1325
+ * `FIX` modify luarc failed
1326
+ * `FIX` library files not recognized correctly
1327
+ * `FIX` [#903](https://github.com/LuaLS/lua-language-server/issues/903)
1328
+ * `FIX` [#906](https://github.com/LuaLS/lua-language-server/issues/906)
1329
+ * `FIX` [#920](https://github.com/LuaLS/lua-language-server/issues/920)
1330
+
1331
+ ## 2.6.0
1332
+ `2022-1-13`
1333
+ * `NEW` supports multi-workspace in server side, for developers of language clients, please [read here](https://luals.github.io/wiki/developing/#multiple-workspace-support) to learn more.
1334
+ * `NEW` setting:
1335
+ + `Lua.hint.arrayIndex`
1336
+ + `Lua.semantic.enable`
1337
+ + `Lua.semantic.variable`
1338
+ + `Lua.semantic.annotation`
1339
+ + `Lua.semantic.keyword`
1340
+ * `CHG` completion: improve response speed
1341
+ * `CHG` completion: can be triggered in `LuaDoc` and strings
1342
+ * `CHG` diagnostic: smoother
1343
+ * `CHG` settings `Lua.color.mode` removed
1344
+ * `FIX` [#876](https://github.com/LuaLS/lua-language-server/issues/876)
1345
+ * `FIX` [#879](https://github.com/LuaLS/lua-language-server/issues/879)
1346
+ * `FIX` [#884](https://github.com/LuaLS/lua-language-server/issues/884)
1347
+ * `FIX` [#885](https://github.com/LuaLS/lua-language-server/issues/885)
1348
+ * `FIX` [#886](https://github.com/LuaLS/lua-language-server/issues/886)
1349
+ * `FIX` [#902](https://github.com/LuaLS/lua-language-server/issues/902)
1350
+
1351
+ ## 2.5.6
1352
+ `2021-12-27`
1353
+ * `CHG` diagnostic: now syntax errors in `LuaDoc` are shown as `Warning`
1354
+ * `FIX` [#863](https://github.com/LuaLS/lua-language-server/issues/863)
1355
+ * `FIX` return type of `math.floor`
1356
+ * `FIX` runtime errors
1357
+
1358
+ ## 2.5.5
1359
+ `2021-12-16`
1360
+ * `FIX` dose not work in VSCode
1361
+
1362
+ ## 2.5.4
1363
+ `2021-12-16`
1364
+ * `FIX` [#847](https://github.com/LuaLS/lua-language-server/issues/847)
1365
+ * `FIX` [#848](https://github.com/LuaLS/lua-language-server/issues/848)
1366
+ * `FIX` completion: incorrect cache
1367
+ * `FIX` hover: always view string
1368
+
1369
+ ## 2.5.3
1370
+ `2021-12-6`
1371
+ * `FIX` [#842](https://github.com/LuaLS/lua-language-server/issues/844)
1372
+ * `FIX` [#844](https://github.com/LuaLS/lua-language-server/issues/844)
1373
+
1374
+ ## 2.5.2
1375
+ `2021-12-2`
1376
+ * `FIX` [#815](https://github.com/LuaLS/lua-language-server/issues/815)
1377
+ * `FIX` [#825](https://github.com/LuaLS/lua-language-server/issues/825)
1378
+ * `FIX` [#826](https://github.com/LuaLS/lua-language-server/issues/826)
1379
+ * `FIX` [#827](https://github.com/LuaLS/lua-language-server/issues/827)
1380
+ * `FIX` [#831](https://github.com/LuaLS/lua-language-server/issues/831)
1381
+ * `FIX` [#837](https://github.com/LuaLS/lua-language-server/issues/837)
1382
+ * `FIX` [#838](https://github.com/LuaLS/lua-language-server/issues/838)
1383
+ * `FIX` postfix
1384
+ * `FIX` runtime errors
1385
+
1386
+ ## 2.5.1
1387
+ `2021-11-29`
1388
+ * `FIX` incorrect syntax error
1389
+
1390
+ ## 2.5.0
1391
+ `2021-11-29`
1392
+ * `NEW` settings:
1393
+ + `Lua.runtime.pathStrict`: not check subdirectories when using `runtime.path`
1394
+ + `Lua.hint.await`: display `await` when calling a function marked as async
1395
+ + `Lua.completion.postfix`: the symbol that triggers postfix, default is `@`
1396
+ * `NEW` add supports for `lovr`
1397
+ * `NEW` file encoding supports `utf16le` and `utf16be`
1398
+ * `NEW` full IntelliSense supports for literal tables, see [#720](https://github.com/LuaLS/lua-language-server/issues/720) and [#727](https://github.com/LuaLS/lua-language-server/issues/727)
1399
+ * `NEW` `LuaDoc` annotations:
1400
+ + `---@async`: mark a function as async
1401
+ + `---@nodiscard`: the return value of the marking function cannot be discarded
1402
+ * `NEW` diagnostics:
1403
+ + `await-in-sync`: check whether calls async function in sync function. disabled by default.
1404
+ + `not-yieldable`: check whether the function supports async functions as parameters. disabled by default.
1405
+ + `discard-returns`: check whether the return value is discarded.
1406
+ * `NEW` locale `pt-br`, thanks [Jeferson Ferreira](https://github.com/jefersonf)
1407
+ * `NEW` supports [utf-8-offsets](https://clangd.llvm.org/extensions#utf-8-offsets)
1408
+ * `NEW` supports quickfix for `.luarc.json`
1409
+ * `NEW` completion postifx: `@function`, `@method`, `@pcall`, `@xpcall`, `@insert`, `@remove`, `@concat`, `++`, `++?`
1410
+ * `CHG` `LuaDoc`:
1411
+ + `---@class` can be re-declared
1412
+ + supports unicode
1413
+ + supports `---@param ... number`, equivalent to `---@vararg number`
1414
+ + supports `fun(...: string)`
1415
+ + supports `fun(x, y, ...)`, equivalent to `fun(x: any, y: any, ...: any)`
1416
+ * `CHG` settings from `--configpath`, `.luarc.json`, `client` no longer prevent subsequent settings, instead they are merged in order
1417
+ * `CHG` no longer asks to trust plugin in VSCode, because VSCode already provides the workspace trust feature
1418
+ * `CHG` skip huge files (>= 10 MB)
1419
+ * `CHG` after using `Lua.runtime.nonstandardSymbol` to treat `//` as a comment, `//` is no longer parsed as an operator
1420
+
1421
+ ## 2.4.11
1422
+ `2021-11-25`
1423
+ * `FIX` [#816](https://github.com/LuaLS/lua-language-server/issues/816)
1424
+ * `FIX` [#817](https://github.com/LuaLS/lua-language-server/issues/817)
1425
+ * `FIX` [#818](https://github.com/LuaLS/lua-language-server/issues/818)
1426
+ * `FIX` [#820](https://github.com/LuaLS/lua-language-server/issues/820)
1427
+
1428
+ ## 2.4.10
1429
+ `2021-11-23`
1430
+ * `FIX` [#790](https://github.com/LuaLS/lua-language-server/issues/790)
1431
+ * `FIX` [#798](https://github.com/LuaLS/lua-language-server/issues/798)
1432
+ * `FIX` [#804](https://github.com/LuaLS/lua-language-server/issues/804)
1433
+ * `FIX` [#805](https://github.com/LuaLS/lua-language-server/issues/805)
1434
+ * `FIX` [#806](https://github.com/LuaLS/lua-language-server/issues/806)
1435
+ * `FIX` [#807](https://github.com/LuaLS/lua-language-server/issues/807)
1436
+ * `FIX` [#809](https://github.com/LuaLS/lua-language-server/issues/809)
1437
+
1438
+ ## 2.4.9
1439
+ `2021-11-18`
1440
+ * `CHG` for performance reasons, some of the features that are not cost-effective in IntelliSense have been disabled by default, and you can re-enable them through the following settings:
1441
+ + `Lua.IntelliSense.traceLocalSet`
1442
+ + `Lua.IntelliSense.traceReturn`
1443
+ + `Lua.IntelliSense.traceBeSetted`
1444
+ + `Lua.IntelliSense.traceFieldInject`
1445
+
1446
+ [read more](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features)
1447
+
1448
+ ## 2.4.8
1449
+ `2021-11-15`
1450
+ * `FIX` incorrect IntelliSense in specific situations
1451
+ * `FIX` [#777](https://github.com/LuaLS/lua-language-server/issues/777)
1452
+ * `FIX` [#778](https://github.com/LuaLS/lua-language-server/issues/778)
1453
+ * `FIX` [#779](https://github.com/LuaLS/lua-language-server/issues/779)
1454
+ * `FIX` [#780](https://github.com/LuaLS/lua-language-server/issues/780)
1455
+
1456
+ ## 2.4.7
1457
+ `2021-10-27`
1458
+ * `FIX` [#762](https://github.com/LuaLS/lua-language-server/issues/762)
1459
+
1460
+ ## 2.4.6
1461
+ `2021-10-26`
1462
+ * `NEW` diagnostic: `redundant-return`
1463
+ * `FIX` [#744](https://github.com/LuaLS/lua-language-server/issues/744)
1464
+ * `FIX` [#748](https://github.com/LuaLS/lua-language-server/issues/748)
1465
+ * `FIX` [#749](https://github.com/LuaLS/lua-language-server/issues/749)
1466
+ * `FIX` [#752](https://github.com/LuaLS/lua-language-server/issues/752)
1467
+ * `FIX` [#753](https://github.com/LuaLS/lua-language-server/issues/753)
1468
+ * `FIX` [#756](https://github.com/LuaLS/lua-language-server/issues/756)
1469
+ * `FIX` [#758](https://github.com/LuaLS/lua-language-server/issues/758)
1470
+ * `FIX` [#760](https://github.com/LuaLS/lua-language-server/issues/760)
1471
+
1472
+ ## 2.4.5
1473
+ `2021-10-18`
1474
+ * `FIX` accidentally load lua files from user workspace
1475
+
1476
+ ## 2.4.4
1477
+ `2021-10-15`
1478
+ * `CHG` improve `.luarc.json`
1479
+ * `FIX` [#722](https://github.com/LuaLS/lua-language-server/issues/722)
1480
+
1481
+ ## 2.4.3
1482
+ `2021-10-13`
1483
+ * `FIX` [#713](https://github.com/LuaLS/lua-language-server/issues/713)
1484
+ * `FIX` [#718](https://github.com/LuaLS/lua-language-server/issues/718)
1485
+ * `FIX` [#719](https://github.com/LuaLS/lua-language-server/issues/719)
1486
+ * `FIX` [#725](https://github.com/LuaLS/lua-language-server/issues/725)
1487
+ * `FIX` [#729](https://github.com/LuaLS/lua-language-server/issues/729)
1488
+ * `FIX` [#730](https://github.com/LuaLS/lua-language-server/issues/730)
1489
+ * `FIX` runtime errors
1490
+
1491
+ ## 2.4.2
1492
+ `2021-10-8`
1493
+ * `FIX` [#702](https://github.com/LuaLS/lua-language-server/issues/702)
1494
+ * `FIX` [#706](https://github.com/LuaLS/lua-language-server/issues/706)
1495
+ * `FIX` [#707](https://github.com/LuaLS/lua-language-server/issues/707)
1496
+ * `FIX` [#709](https://github.com/LuaLS/lua-language-server/issues/709)
1497
+ * `FIX` [#712](https://github.com/LuaLS/lua-language-server/issues/712)
1498
+
1499
+ ## 2.4.1
1500
+ `2021-10-2`
1501
+ * `FIX` broken with single file
1502
+ * `FIX` [#698](https://github.com/LuaLS/lua-language-server/issues/698)
1503
+ * `FIX` [#699](https://github.com/LuaLS/lua-language-server/issues/699)
1504
+
1505
+ ## 2.4.0
1506
+ `2021-10-1`
1507
+ * `NEW` loading settings from `.luarc.json`
1508
+ * `NEW` settings:
1509
+ + `Lua.diagnostics.libraryFiles`
1510
+ + `Lua.diagnostics.ignoredFiles`
1511
+ + `Lua.completion.showWord`
1512
+ + `Lua.completion.requireSeparator`
1513
+ * `NEW` diagnostics:
1514
+ + `different-requires`
1515
+ * `NEW` `---@CustomClass<string, number>`
1516
+ * `NEW` supports `$/cancelRequest`
1517
+ * `NEW` `EventEmitter`
1518
+ ```lua
1519
+ --- @class Emit
1520
+ --- @field on fun(eventName: string, cb: function)
1521
+ --- @field on fun(eventName: '"died"', cb: fun(i: integer))
1522
+ --- @field on fun(eventName: '"won"', cb: fun(s: string))
1523
+ local emit = {}
1524
+
1525
+ emit:on(--[[support autocomplete fr "died" and "won"]])
1526
+
1527
+ emit:on("died", function (i)
1528
+ -- should be i: integer
1529
+ end)
1530
+
1531
+ emit:on('won', function (s)
1532
+ -- should be s: string
1533
+ end)
1534
+ ```
1535
+ * `NEW` `---@module 'moduleName'`
1536
+ ```lua
1537
+ ---@module 'mylib'
1538
+ local lib -- the same as `local lib = require 'mylib'`
1539
+ ```
1540
+ * `NEW` add supports of `skynet`
1541
+ * `CHG` hover: improve showing multi defines
1542
+ * `CHG` hover: improve showing multi comments at enums
1543
+ * `CHG` hover: shows method
1544
+ * `CHG` hint: `Lua.hint.paramName` now supports `Disable`, `Literal` and `All`
1545
+ * `CHG` only search first file by `require`
1546
+ * `CHG` no longer infer by usage
1547
+ * `CHG` no longer ignore file names case in Windows
1548
+ * `CHG` watching library changes
1549
+ * `CHG` completion: improve misspelling results
1550
+ * `CHG` completion: `Lua.completion.displayContext` default to `0`
1551
+ * `CHG` completion: `autoRequire` has better inserting position
1552
+ * `CHG` diagnostics:
1553
+ + `redundant-parameter` default severity to `Warning`
1554
+ + `redundant-value` default severity to `Warning`
1555
+ * `CHG` infer: more strict of calculation results
1556
+ * `CHG` [#663](https://github.com/LuaLS/lua-language-server/issues/663)
1557
+ * `FIX` runtime errors
1558
+ * `FIX` hint: may show param-2 as `self`
1559
+ * `FIX` semantic: may fail when scrolling
1560
+ * `FIX` [#647](https://github.com/LuaLS/lua-language-server/issues/647)
1561
+ * `FIX` [#660](https://github.com/LuaLS/lua-language-server/issues/660)
1562
+ * `FIX` [#673](https://github.com/LuaLS/lua-language-server/issues/673)
1563
+
1564
+ ## 2.3.7
1565
+ `2021-8-17`
1566
+ * `CHG` improve performance
1567
+ * `FIX` [#244](https://github.com/LuaLS/lua-language-server/issues/244)
1568
+
1569
+ ## 2.3.6
1570
+ `2021-8-9`
1571
+ * `FIX` completion: can not find global fields
1572
+ * `FIX` globals and class may lost
1573
+
1574
+ ## 2.3.5
1575
+ `2021-8-9`
1576
+ * `CHG` improve memory usage
1577
+ * `CHG` completion: call snip triggers signature (VSCode only)
1578
+ * `FIX` completion: may not find results
1579
+
1580
+ ## 2.3.4
1581
+ `2021-8-6`
1582
+ * `CHG` improve performance
1583
+ * `FIX` [#625](https://github.com/LuaLS/lua-language-server/issues/625)
1584
+
1585
+ ## 2.3.3
1586
+ `2021-7-26`
1587
+ * `NEW` config supports prop
1588
+ * `FIX` [#612](https://github.com/LuaLS/lua-language-server/issues/612)
1589
+ * `FIX` [#613](https://github.com/LuaLS/lua-language-server/issues/613)
1590
+ * `FIX` [#618](https://github.com/LuaLS/lua-language-server/issues/618)
1591
+ * `FIX` [#620](https://github.com/LuaLS/lua-language-server/issues/620)
1592
+
1593
+ ## 2.3.2
1594
+ `2021-7-21`
1595
+ * `NEW` `LuaDoc`: supports `['string']` as field:
1596
+ ```lua
1597
+ ---@class keyboard
1598
+ ---@field ['!'] number
1599
+ ---@field ['?'] number
1600
+ ---@field ['#'] number
1601
+ ```
1602
+ * `NEW` add supports of `love2d`
1603
+ * `FIX` gitignore pattern `\` broken initialization
1604
+ * `FIX` runtime errors
1605
+
1606
+ ## 2.3.1
1607
+ `2021-7-19`
1608
+ * `NEW` setting `Lua.workspace.userThirdParty`, add private user [third-parth](https://github.com/LuaLS/lua-language-server/tree/master/meta/3rd) by this setting
1609
+ * `CHG` path in config supports `~/xxxx`
1610
+ * `FIX` `autoRequire` inserted incorrect code
1611
+ * `FIX` `autoRequire` may provide dumplicated options
1612
+ * `FIX` [#606](https://github.com/LuaLS/lua-language-server/issues/606)
1613
+ * `FIX` [#607](https://github.com/LuaLS/lua-language-server/issues/607)
1614
+
1615
+ ## 2.3.0
1616
+ `2021-7-16`
1617
+ * `NEW` `VSCode`: click the status bar icon to operate:
1618
+ * run workspace diagnostics
1619
+ * `NEW` `LuaDoc`: supports `[1]` as field:
1620
+ ```lua
1621
+ ---@class position
1622
+ ---@field [1] number
1623
+ ---@field [2] number
1624
+ ---@field [3] number
1625
+ ```
1626
+ * `NEW` hover: view array `local array = {'a', 'b', 'c'}`:
1627
+ ```lua
1628
+ local array: {
1629
+ [1]: string = "a",
1630
+ [2]: string = "b",
1631
+ [3]: string = "c",
1632
+ }
1633
+ ```
1634
+ * `NEW` completion: supports enums in `fun()`
1635
+ ```lua
1636
+ ---@type fun(x: "'aaa'"|"'bbb'")
1637
+ local f
1638
+
1639
+ f(--[[show `'aaa'` and `'bbb'` here]])
1640
+ ```
1641
+ * `FIX` loading workspace may hang
1642
+ * `FIX` `debug.getuservalue` and `debug.setuservalue` should not exist in `Lua 5.1`
1643
+ * `FIX` infer of `---@type class[][]`
1644
+ * `FIX` infer of `---@type {}[]`
1645
+ * `FIX` completion: displaying `@fenv` in `Lua 5.1`
1646
+ * `FIX` completion: incorrect at end of line
1647
+ * `FIX` when a file is renamed, the file will still be loaded even if the new file name has been set to ignore
1648
+ * `FIX` [#596](https://github.com/LuaLS/lua-language-server/issues/596)
1649
+ * `FIX` [#597](https://github.com/LuaLS/lua-language-server/issues/597)
1650
+ * `FIX` [#598](https://github.com/LuaLS/lua-language-server/issues/598)
1651
+ * `FIX` [#601](https://github.com/LuaLS/lua-language-server/issues/601)
1652
+
1653
+ ## 2.2.3
1654
+ `2021-7-9`
1655
+ * `CHG` improve `auto require`
1656
+ * `CHG` will not sleep anymore
1657
+ * `FIX` incorrect doc: `debug.getlocal`
1658
+ * `FIX` completion: incorrect callback
1659
+ * `FIX` [#592](https://github.com/LuaLS/lua-language-server/issues/592)
1660
+
1661
+ ## 2.2.2
1662
+ `2021-7-9`
1663
+ * `FIX` incorrect syntax color
1664
+ * `FIX` incorrect type infer
1665
+
1666
+ ## 2.2.1
1667
+ `2021-7-8`
1668
+ * `FIX` change setting may failed
1669
+
1670
+ ## 2.2.0
1671
+ `2021-7-8`
1672
+ * `NEW` detect and apply third-party libraries, including:
1673
+ * OpenResty
1674
+ * Cocos4.0
1675
+ * Jass
1676
+ * `NEW` `LuaDoc`: supports literal table:
1677
+ ```lua
1678
+ ---@generic T
1679
+ ---@param x T
1680
+ ---@return { x: number, y: T, z?: boolean}
1681
+ local function f(x) end
1682
+
1683
+ local t = f('str')
1684
+ -- hovering "t" shows:
1685
+ local t: {
1686
+ x: number,
1687
+ y: string,
1688
+ z?: boolean,
1689
+ }
1690
+ ```
1691
+ * `CHG` improve changing config from server side
1692
+ * `CHG` improve hover color
1693
+ * `CHG` improve performance
1694
+ * `CHG` telemetry: sends version of this extension
1695
+ * `FIX` supports for file with LF
1696
+ * `FIX` may infer a custom class as a string
1697
+
1698
+ ## 2.1.0
1699
+ `2021-7-2`
1700
+ * `NEW` supports local config file, using `--configpath="config.json"`, [learn more here](https://luals.github.io/wiki/usage/#--configpath)
1701
+ * `NEW` goto `type definition`
1702
+ * `NEW` infer type by callback param:
1703
+ ```lua
1704
+ ---@param callback fun(value: string)
1705
+ local function work(callback)
1706
+ end
1707
+
1708
+ work(function (value)
1709
+ -- value is string here
1710
+ end)
1711
+ ```
1712
+ * `NEW` optional field `---@field name? type`
1713
+ * `CHG` [#549](https://github.com/LuaLS/lua-language-server/issues/549)
1714
+ * `CHG` diagnostics: always ignore the ignored files even if they are opened
1715
+ * `FIX` completion: `type() ==` may does not work
1716
+
1717
+ ## 2.0.5
1718
+ `2021-7-1`
1719
+ * `NEW` `hover` and `completion` reports initialization progress
1720
+ * `CHG` `class field` consider implicit definition
1721
+ ```lua
1722
+ ---@class Class
1723
+ local mt = {}
1724
+
1725
+ function mt:init()
1726
+ self.xxx = 1
1727
+ end
1728
+
1729
+ function mt:func()
1730
+ print(self.xxx) -- self.xxx is defined
1731
+ end
1732
+ ```
1733
+ * `CHG` improve performance
1734
+ * `FIX` [#580](https://github.com/LuaLS/lua-language-server/issues/580)
1735
+
1736
+ ## 2.0.4
1737
+ `2021-6-25`
1738
+ * `FIX` [#550](https://github.com/LuaLS/lua-language-server/issues/550)
1739
+ * `FIX` [#555](https://github.com/LuaLS/lua-language-server/issues/555)
1740
+ * `FIX` [#574](https://github.com/LuaLS/lua-language-server/issues/574)
1741
+
1742
+ ## 2.0.3
1743
+ `2021-6-24`
1744
+ * `CHG` improve memory usage
1745
+ * `FIX` some dialog boxes block the initialization process
1746
+ * `FIX` diagnostics `undefined-field`: blocks main thread
1747
+ * `FIX` [#565](https://github.com/LuaLS/lua-language-server/issues/565)
1748
+
1749
+ ## 2.0.2
1750
+ `2021-6-23`
1751
+ * `NEW` supports literal table in `pairs`
1752
+ ```lua
1753
+ local t = { a = 1, b = 2, c = 3 }
1754
+ for k, v in pairs(t) do
1755
+ -- `k` is string and `v` is integer here
1756
+ end
1757
+ ```
1758
+ * `CHG` view `local f ---@type fun(x:number):boolean`
1759
+ ```lua
1760
+ ---before
1761
+ function f(x: number)
1762
+ -> boolean
1763
+ ---after
1764
+ local f: fun(x: number): boolean
1765
+ ```
1766
+ * `FIX` [#558](https://github.com/LuaLS/lua-language-server/issues/558)
1767
+ * `FIX` [#567](https://github.com/LuaLS/lua-language-server/issues/567)
1768
+ * `FIX` [#568](https://github.com/LuaLS/lua-language-server/issues/568)
1769
+ * `FIX` [#570](https://github.com/LuaLS/lua-language-server/issues/570)
1770
+ * `FIX` [#571](https://github.com/LuaLS/lua-language-server/issues/571)
1771
+
1772
+ ## 2.0.1
1773
+ `2021-6-21`
1774
+ * `FIX` [#566](https://github.com/LuaLS/lua-language-server/issues/566)
1775
+
1776
+ ## 2.0.0
1777
+ `2021-6-21`
1778
+ * `NEW` implement
1779
+ * `CHG` diagnostics `undefined-field`, `deprecated`: default by `Opened` instead of `None`
1780
+ * `CHG` setting `Lua.runtime.plugin`: default by `""` instead of `".vscode/lua/plugin.lua"` (for security)
1781
+ * `CHG` setting `Lua.intelliSense.searchDepth`: removed
1782
+ * `CHG` setting `Lua.misc.parameters`: `string array` instead of `string`
1783
+ * `CHG` setting `Lua.develop.enable`, `Lua.develop.debuggerPort`, `Lua.develop.debuggerWait`: removed, use `Lua.misc.parameters` instead
1784
+ * `FIX` [#441](https://github.com/LuaLS/lua-language-server/issues/441)
1785
+ * `FIX` [#493](https://github.com/LuaLS/lua-language-server/issues/493)
1786
+ * `FIX` [#531](https://github.com/LuaLS/lua-language-server/issues/531)
1787
+ * `FIX` [#542](https://github.com/LuaLS/lua-language-server/issues/542)
1788
+ * `FIX` [#543](https://github.com/LuaLS/lua-language-server/issues/543)
1789
+ * `FIX` [#553](https://github.com/LuaLS/lua-language-server/issues/553)
1790
+ * `FIX` [#562](https://github.com/LuaLS/lua-language-server/issues/562)
1791
+ * `FIX` [#563](https://github.com/LuaLS/lua-language-server/issues/563)
1792
+
1793
+ ## 1.21.3
1794
+ `2021-6-17`
1795
+ * `NEW` supports `untrusted workspaces`
1796
+ * `FIX` performance issues, thanks to [folke](https://github.com/folke)
1797
+
1798
+ ## 1.21.2
1799
+ `2021-5-18`
1800
+ * `FIX` loaded new file with ignored filename
1801
+ * `FIX` [#536](https://github.com/LuaLS/lua-language-server/issues/536)
1802
+ * `FIX` [#537](https://github.com/LuaLS/lua-language-server/issues/537)
1803
+ * `FIX` [#538](https://github.com/LuaLS/lua-language-server/issues/538)
1804
+ * `FIX` [#539](https://github.com/LuaLS/lua-language-server/issues/539)
1805
+
1806
+ ## 1.21.1
1807
+ `2021-5-8`
1808
+ * `FIX` [#529](https://github.com/LuaLS/lua-language-server/issues/529)
1809
+
1810
+ ## 1.21.0
1811
+ `2021-5-7`
1812
+ * `NEW` setting: `completion.showParams`
1813
+ * `NEW` `LuaDoc`: supports multiline comments
1814
+ * `NEW` `LuaDoc`: tail comments support lua string
1815
+
1816
+ ## 1.20.5
1817
+ `2021-4-30`
1818
+ * `NEW` setting: `completion.autoRequire`
1819
+ * `NEW` setting: `hover.enumsLimit`
1820
+ * `CHG` folding: supports `-- #region`
1821
+ * `FIX` completion: details may be suspended
1822
+ * `FIX` [#522](https://github.com/LuaLS/lua-language-server/issues/522)
1823
+ * `FIX` [#523](https://github.com/LuaLS/lua-language-server/issues/523)
1824
+
1825
+ ## 1.20.4
1826
+ `2021-4-13`
1827
+ * `NEW` diagnostic: `deprecated`
1828
+ * `FIX` [#464](https://github.com/LuaLS/lua-language-server/issues/464)
1829
+ * `FIX` [#497](https://github.com/LuaLS/lua-language-server/issues/497)
1830
+ * `FIX` [#502](https://github.com/LuaLS/lua-language-server/issues/502)
1831
+
1832
+ ## 1.20.3
1833
+ `2021-4-6`
1834
+ * `FIX` [#479](https://github.com/LuaLS/lua-language-server/issues/479)
1835
+ * `FIX` [#483](https://github.com/LuaLS/lua-language-server/issues/483)
1836
+ * `FIX` [#485](https://github.com/LuaLS/lua-language-server/issues/485)
1837
+ * `FIX` [#487](https://github.com/LuaLS/lua-language-server/issues/487)
1838
+ * `FIX` [#488](https://github.com/LuaLS/lua-language-server/issues/488)
1839
+ * `FIX` [#490](https://github.com/LuaLS/lua-language-server/issues/490)
1840
+ * `FIX` [#495](https://github.com/LuaLS/lua-language-server/issues/495)
1841
+
1842
+ ## 1.20.2
1843
+ `2021-4-2`
1844
+ * `CHG` `LuaDoc`: supports `---@param self TYPE`
1845
+ * `CHG` completion: does not show suggests after `\n`, `{` and `,`, unless your setting `editor.acceptSuggestionOnEnter` is `off`
1846
+ * `FIX` [#482](https://github.com/LuaLS/lua-language-server/issues/482)
1847
+
1848
+ ## 1.20.1
1849
+ `2021-3-27`
1850
+ * `FIX` telemetry window blocks initializing
1851
+ * `FIX` [#468](https://github.com/LuaLS/lua-language-server/issues/468)
1852
+
1853
+ ## 1.20.0
1854
+ `2021-3-27`
1855
+ * `CHG` telemetry: change to opt-in, see [#462](https://github.com/LuaLS/lua-language-server/issues/462) and [Privacy-Policy](https://luals.github.io/privacy/#language-server)
1856
+ * `FIX` [#467](https://github.com/LuaLS/lua-language-server/issues/467)
1857
+
1858
+ ## 1.19.1
1859
+ `2021-3-22`
1860
+ * `CHG` improve performance
1861
+ * `FIX` [#457](https://github.com/LuaLS/lua-language-server/issues/457)
1862
+ * `FIX` [#458](https://github.com/LuaLS/lua-language-server/issues/458)
1863
+
1864
+ ## 1.19.0
1865
+ `2021-3-18`
1866
+ * `NEW` VSCode: new setting `Lua.misc.parameters`
1867
+ * `NEW` new setting `Lua.runtime.builtin`, used to disable some built-in libraries
1868
+ * `NEW` quick fix: disable diagnostic in line/file
1869
+ * `NEW` setting: `Lua.runtime.path` supports absolute path
1870
+ * `NEW` completion: field in table
1871
+ ```lua
1872
+ ---@class A
1873
+ ---@field x number
1874
+ ---@field y number
1875
+ ---@field z number
1876
+
1877
+ ---@type A
1878
+ local t = {
1879
+ -- provide `x`, `y` and `z` here
1880
+ }
1881
+ ```
1882
+ * `NEW` `LuaDoc`: supports multi-line comment before resume
1883
+ ```lua
1884
+ ---this is
1885
+ ---a multi line
1886
+ ---comment
1887
+ ---@alias XXXX
1888
+ ---comment 1
1889
+ ---comment 1
1890
+ ---| '1'
1891
+ ---comment 2
1892
+ ---comment 2
1893
+ ---| '2'
1894
+
1895
+ ---@param x XXXX
1896
+ local function f(x)
1897
+ end
1898
+
1899
+ f( -- view comments of `1` and `2` in completion
1900
+ ```
1901
+ * `CHG` intelli-scense: search from generic param to return
1902
+ * `CHG` intelli-scense: search across vararg
1903
+ * `CHG` text-document-synchronization: refactored
1904
+ * `CHG` diagnostic: improve `newline-call`
1905
+ * `CHG` completion: improve `then .. end`
1906
+ * `CHG` improve initialization speed
1907
+ * `CHG` improve performance
1908
+ * `FIX` missed syntax error `function m['x']() end`
1909
+ * `FIX` [#452](https://github.com/LuaLS/lua-language-server/issues/452)
1910
+
1911
+ ## 1.18.1
1912
+ `2021-3-10`
1913
+ * `CHG` semantic-tokens: improve colors of `const` and `close`
1914
+ * `CHG` type-formating: improve execution conditions
1915
+ * `FIX` [#444](https://github.com/LuaLS/lua-language-server/issues/444)
1916
+
1917
+ ## 1.18.0
1918
+ `2021-3-9`
1919
+ * `NEW` `LuaDoc`: supports `---@diagnostic disable`
1920
+ * `NEW` code-action: convert JSON to Lua
1921
+ * `NEW` completion: provide `then .. end` snippet
1922
+ * `NEW` type-formating:
1923
+ ```lua
1924
+ -- press `enter` at $
1925
+ local function f() $ end
1926
+ -- formating result:
1927
+ local function f()
1928
+ $
1929
+ end
1930
+
1931
+ -- as well as
1932
+ do $ end
1933
+ -- formating result
1934
+ do
1935
+ $
1936
+ end
1937
+ ```
1938
+ * `CHG` `Windows`: dose not provide `ucrt` any more
1939
+ * `CHG` `Lua.workspace.library`: use `path[]` instead of `<path, true>`
1940
+ * `FIX` missed syntax error `local a <const>= 1`
1941
+ * `FIX` workspace: preload blocked when hitting `Lua.workspace.maxPreload`
1942
+ * `FIX` [#443](https://github.com/LuaLS/lua-language-server/issues/443)
1943
+ * `FIX` [#445](https://github.com/LuaLS/lua-language-server/issues/445)
1944
+
1945
+ ## 1.17.4
1946
+ `2021-3-4`
1947
+ * `FIX` [#437](https://github.com/LuaLS/lua-language-server/issues/437) again
1948
+ * `FIX` [#438](https://github.com/LuaLS/lua-language-server/issues/438)
1949
+
1950
+ ## 1.17.3
1951
+ `2021-3-3`
1952
+ * `CHG` intelli-scense: treat `V[]` as `table<integer, V>` in `pairs`
1953
+ * `FIX` completion: `detail` disappears during continuous input
1954
+ * `FIX` [#435](https://github.com/LuaLS/lua-language-server/issues/435)
1955
+ * `FIX` [#436](https://github.com/LuaLS/lua-language-server/issues/436)
1956
+ * `FIX` [#437](https://github.com/LuaLS/lua-language-server/issues/437)
1957
+
1958
+ ## 1.17.2
1959
+ `2021-3-2`
1960
+ * `FIX` running in Windows
1961
+
1962
+ ## 1.17.1
1963
+ `2021-3-1`
1964
+ * `CHG` intelli-scense: improve infer across `table<K, V>` and `V[]`.
1965
+ * `CHG` intelli-scense: improve infer across `pairs` and `ipairs`
1966
+ * `FIX` hover: shows nothing when hovering unknown function
1967
+ * `FIX` [#398](https://github.com/LuaLS/lua-language-server/issues/398)
1968
+ * `FIX` [#421](https://github.com/LuaLS/lua-language-server/issues/421)
1969
+ * `FIX` [#422](https://github.com/LuaLS/lua-language-server/issues/422)
1970
+
1971
+ ## 1.17.0
1972
+ `2021-2-24`
1973
+ * `NEW` diagnostic: `duplicate-set-field`
1974
+ * `NEW` diagnostic: `no-implicit-any`, disabled by default
1975
+ * `CHG` completion: improve field and table
1976
+ * `CHG` improve infer cross `ipairs`
1977
+ * `CHG` cache globals when loading
1978
+ * `CHG` completion: remove trigger character `\n` for now, see [#401](https://github.com/LuaLS/lua-language-server/issues/401)
1979
+ * `FIX` diagnositc: may open file with wrong uri case
1980
+ * `FIX` [#406](https://github.com/LuaLS/lua-language-server/issues/406)
1981
+
1982
+ ## 1.16.1
1983
+ `2021-2-22`
1984
+ * `FIX` signature: parameters may be misplaced
1985
+ * `FIX` completion: interface in nested table
1986
+ * `FIX` completion: interface not show after `,`
1987
+ * `FIX` [#400](https://github.com/LuaLS/lua-language-server/issues/400)
1988
+ * `FIX` [#402](https://github.com/LuaLS/lua-language-server/issues/402)
1989
+ * `FIX` [#403](https://github.com/LuaLS/lua-language-server/issues/403)
1990
+ * `FIX` [#404](https://github.com/LuaLS/lua-language-server/issues/404)
1991
+ * `FIX` runtime errors
1992
+
1993
+ ## 1.16.0
1994
+ `2021-2-20`
1995
+ * `NEW` file encoding supports `ansi`
1996
+ * `NEW` completion: supports interface, see [#384](https://github.com/LuaLS/lua-language-server/issues/384)
1997
+ * `NEW` `LuaDoc`: supports multiple class inheritance: `---@class Food: Burger, Pizza, Pie, Pasta`
1998
+ * `CHG` rename `table*` to `tablelib`
1999
+ * `CHG` `LuaDoc`: revert compatible with `--@`, see [#392](https://github.com/LuaLS/lua-language-server/issues/392)
2000
+ * `CHG` improve performance
2001
+ * `FIX` missed syntax error `f() = 1`
2002
+ * `FIX` missed global `bit` in `LuaJIT`
2003
+ * `FIX` completion: may insert error text when continuous inputing
2004
+ * `FIX` completion: may insert error text after resolve
2005
+ * `FIX` [#349](https://github.com/LuaLS/lua-language-server/issues/349)
2006
+ * `FIX` [#396](https://github.com/LuaLS/lua-language-server/issues/396)
2007
+
2008
+ ## 1.15.1
2009
+ `2021-2-18`
2010
+ * `CHG` diagnostic: `unused-local` excludes `doc.param`
2011
+ * `CHG` definition: excludes values, see [#391](https://github.com/LuaLS/lua-language-server/issues/391)
2012
+ * `FIX` not works on Linux and macOS
2013
+
2014
+ ## 1.15.0
2015
+ `2021-2-9`
2016
+ * `NEW` LUNAR YEAR, BE HAPPY!
2017
+ * `CHG` diagnostic: when there are too many errors, the main errors will be displayed first
2018
+ * `CHG` main thread no longer loop sleeps, see [#329](https://github.com/LuaLS/lua-language-server/issues/329) [#386](https://github.com/LuaLS/lua-language-server/issues/386)
2019
+ * `CHG` improve performance
2020
+
2021
+ ## 1.14.3
2022
+ `2021-2-8`
2023
+ * `CHG` hint: disabled by default, see [#380](https://github.com/LuaLS/lua-language-server/issues/380)
2024
+ * `FIX` [#381](https://github.com/LuaLS/lua-language-server/issues/381)
2025
+ * `FIX` [#382](https://github.com/LuaLS/lua-language-server/issues/382)
2026
+ * `FIX` [#388](https://github.com/LuaLS/lua-language-server/issues/388)
2027
+
2028
+ ## 1.14.2
2029
+ `2021-2-4`
2030
+ * `FIX` [#356](https://github.com/LuaLS/lua-language-server/issues/356)
2031
+ * `FIX` [#375](https://github.com/LuaLS/lua-language-server/issues/375)
2032
+ * `FIX` [#376](https://github.com/LuaLS/lua-language-server/issues/376)
2033
+ * `FIX` [#377](https://github.com/LuaLS/lua-language-server/issues/377)
2034
+ * `FIX` [#378](https://github.com/LuaLS/lua-language-server/issues/378)
2035
+ * `FIX` [#379](https://github.com/LuaLS/lua-language-server/issues/379)
2036
+ * `FIX` a lot of runtime errors
2037
+
2038
+ ## 1.14.1
2039
+ `2021-2-2`
2040
+ * `FIX` [#372](https://github.com/LuaLS/lua-language-server/issues/372)
2041
+
2042
+ ## 1.14.0
2043
+ `2021-2-2`
2044
+ * `NEW` `VSCode` hint
2045
+ * `NEW` flush cache after 5 min
2046
+ * `NEW` `VSCode` help semantic color with market theme
2047
+ * `CHG` create/delete/rename files no longer reload workspace
2048
+ * `CHG` `LuaDoc`: compatible with `--@`
2049
+ * `FIX` `VSCode` settings
2050
+ * `FIX` [#368](https://github.com/LuaLS/lua-language-server/issues/368)
2051
+ * `FIX` [#371](https://github.com/LuaLS/lua-language-server/issues/371)
2052
+
2053
+ ## 1.13.0
2054
+ `2021-1-28`
2055
+ * `NEW` `VSCode` status bar
2056
+ * `NEW` `VSCode` options in some window
2057
+ * `CHG` performance optimization
2058
+ * `FIX` endless loop
2059
+
2060
+ ## 1.12.2
2061
+ `2021-1-27`
2062
+ * `CHG` performance optimization
2063
+ * `FIX` modifying the code before loading finish makes confusion
2064
+ * `FIX` signature: not works
2065
+
2066
+ ## 1.12.1
2067
+ `2021-1-27`
2068
+ * `FIX` endless loop
2069
+
2070
+ ## 1.12.0
2071
+ `2021-1-26`
2072
+ * `NEW` progress
2073
+ * `NEW` [#340](https://github.com/LuaLS/lua-language-server/pull/340): supports `---@type table<string, number>`
2074
+ * `FIX` [#355](https://github.com/LuaLS/lua-language-server/pull/355)
2075
+ * `FIX` [#359](https://github.com/LuaLS/lua-language-server/issues/359)
2076
+ * `FIX` [#361](https://github.com/LuaLS/lua-language-server/issues/361)
2077
+
2078
+ ## 1.11.2
2079
+ `2021-1-7`
2080
+ * `FIX` [#345](https://github.com/LuaLS/lua-language-server/issues/345): not works with unexpect args
2081
+ * `FIX` [#346](https://github.com/LuaLS/lua-language-server/issues/346): dont modify the cache
2082
+
2083
+ ## 1.11.1
2084
+ `2021-1-5`
2085
+ * `CHG` performance optimization
2086
+
2087
+ ## 1.11.0
2088
+ `2021-1-5`
2089
+ * `NEW` `Lua.runtime.plugin`
2090
+ * `NEW` intelli-scense: improved `m.f = function (self) end` from `self` to `m`
2091
+ * `CHG` performance optimization
2092
+ * `CHG` completion: improve performance of workspace words
2093
+ * `FIX` hover: tail comments may be cutted
2094
+ * `FIX` runtime errors
2095
+
2096
+ ## 1.10.0
2097
+ `2021-1-4`
2098
+ * `NEW` workspace: supports `.dll`(`.so`) in `require`
2099
+ * `NEW` folding: `---@class`, `--#region` and docs of function
2100
+ * `NEW` diagnostic: `count-down-loop`
2101
+ * `CHG` supports `~` in command line
2102
+ * `CHG` completion: improve workspace words
2103
+ * `CHG` completion: show words in string
2104
+ * `CHG` completion: split `for .. in` to `for .. ipairs` and `for ..pairs`
2105
+ * `CHG` diagnostic: `unused-function` checks recursive
2106
+ * `FIX` [#339](https://github.com/LuaLS/lua-language-server/issues/339)
2107
+
2108
+ ## 1.9.0
2109
+ `2020-12-31`
2110
+ * `NEW` YEAR! Peace and love!
2111
+ * `NEW` specify path of `log` and `meta` by `--logpath=xxx` and `--metapath=XXX` in command line
2112
+ * `NEW` completion: worksapce word
2113
+ * `NEW` completion: show words in comment
2114
+ * `NEW` completion: generate function documentation
2115
+ * `CHG` got arg after script name: `lua-language-server.exe main.lua --logpath=D:\log --metapath=D:\meta --develop=false`
2116
+ * `FIX` runtime errors
2117
+
2118
+ ## 1.8.2
2119
+ `2020-12-29`
2120
+ * `CHG` performance optimization
2121
+
2122
+ ## 1.8.1
2123
+ `2020-12-24`
2124
+ * `FIX` telemetry: connect failed caused not working
2125
+
2126
+ ## 1.8.0
2127
+ `2020-12-23`
2128
+ * `NEW` runtime: support nonstandard symbol
2129
+ * `NEW` diagnostic: `close-non-object`
2130
+ * `FIX` [#318](https://github.com/LuaLS/lua-language-server/issues/318)
2131
+
2132
+ ## 1.7.4
2133
+ `2020-12-20`
2134
+ * `FIX` workspace: preload may failed
2135
+
2136
+ ## 1.7.3
2137
+ `2020-12-20`
2138
+ * `FIX` luadoc: typo of `package.config`
2139
+ * `FIX` [#310](https://github.com/LuaLS/lua-language-server/issues/310)
2140
+
2141
+ ## 1.7.2
2142
+ `2020-12-17`
2143
+ * `CHG` completion: use custom tabsize
2144
+ * `FIX` [#307](https://github.com/LuaLS/lua-language-server/issues/307)
2145
+ * `FIX` a lot of runtime errors
2146
+
2147
+ ## 1.7.1
2148
+ `2020-12-16`
2149
+ * `NEW` setting: `diagnostics.neededFileStatus`
2150
+ * `FIX` scan workspace may fails
2151
+ * `FIX` quickfix: `newline-call` failed
2152
+ * `FIX` a lot of other runtime errors
2153
+
2154
+ ## 1.7.0
2155
+ `2020-12-16`
2156
+ * `NEW` diagnostic: `undefined-field`
2157
+ * `NEW` telemetry:
2158
+ + [What data will be sent](https://github.com/LuaLS/lua-language-server/blob/master/script/service/telemetry.lua)
2159
+ + [How to use this data](https://github.com/LuaLS/lua-telemetry-server/tree/master/method)
2160
+ * `CHG` diagnostic: `unused-function` ignores function with `<close>`
2161
+ * `CHG` semantic: not cover local call
2162
+ * `CHG` language client: update to [7.0.0](https://github.com/microsoft/vscode-languageserver-node/commit/20681d7632bb129def0c751be73cf76bd01f2f3a)
2163
+ * `FIX` semantic: tokens may not be updated correctly
2164
+ * `FIX` completion: require path broken
2165
+ * `FIX` hover: document uri
2166
+ * `FIX` [#291](https://github.com/LuaLS/lua-language-server/issues/291)
2167
+ * `FIX` [#294](https://github.com/LuaLS/lua-language-server/issues/294)
2168
+
2169
+ ## 1.6.0
2170
+ `2020-12-14`
2171
+ * `NEW` completion: auto require local modules
2172
+ * `NEW` completion: support delegate
2173
+ * `NEW` hover: show function by keyword `function`
2174
+ * `NEW` code action: swap params
2175
+ * `CHG` standalone: unbind the relative path between binaries and scripts
2176
+ * `CHG` hover: `LuaDoc` also catchs `--` (no need `---`)
2177
+ * `CHG` rename: support doc
2178
+ * `CHG` completion: keyword considers expression
2179
+ * `FIX` [#297](https://github.com/LuaLS/lua-language-server/issues/297)
2180
+
2181
+ ## 1.5.0
2182
+ `2020-12-5`
2183
+ * `NEW` setting `runtime.unicodeName`
2184
+ * `NEW` fully supports `---@generic T`
2185
+ * `FIX` [#274](https://github.com/LuaLS/lua-language-server/issues/274)
2186
+ * `FIX` [#276](https://github.com/LuaLS/lua-language-server/issues/276)
2187
+ * `FIX` [#279](https://github.com/LuaLS/lua-language-server/issues/279)
2188
+ * `FIX` [#280](https://github.com/LuaLS/lua-language-server/issues/280)
2189
+
2190
+ ## 1.4.0
2191
+ `2020-12-3`
2192
+ * `NEW` setting `hover.previewFields`: limit how many fields are shown in table hover
2193
+ * `NEW` fully supports `---@type Object[]`
2194
+ * `NEW` supports `---@see`
2195
+ * `NEW` diagnostic `unbalanced-assignments`
2196
+ * `CHG` resolves infer of `string|table`
2197
+ * `CHG` `unused-local` ignores local with `---@class`
2198
+ * `CHG` locale file format changes to `lua`
2199
+
2200
+ ## 1.3.0
2201
+ `2020-12-1`
2202
+
2203
+ * `NEW` provides change logs, I think it's good idea for people knowing what's new ~~(bugs)~~
2204
+ * `NEW` meta files of LuaJIT
2205
+ * `NEW` support completion of `type(o) == ?`
2206
+ * `CHG` now I think it's a bad idea as it took me nearly an hour to complete the logs started from version `1.0.0`
2207
+ * `FIX` closing ignored or library file dose not clean diagnostics
2208
+ * `FIX` searching of `t.f1` when `t.f1 = t.f2`
2209
+ * `FIX` missing signature help of global function
2210
+
2211
+ ## 1.2.1
2212
+ `2020-11-27`
2213
+
2214
+ * `FIX` syntaxes tokens: [#272](https://github.com/LuaLS/lua-language-server/issues/272)
2215
+
2216
+ ## 1.2.0
2217
+ `2020-11-27`
2218
+
2219
+ * `NEW` hover shows comments from `---@param` and `---@return`: [#135](https://github.com/LuaLS/lua-language-server/issues/135)
2220
+ * `NEW` support `LuaDoc` as tail comment
2221
+ * `FIX` `---@class` inheritance
2222
+ * `FIX` missed syntaxes token: `punctuation.definition.parameters.finish.lua`
2223
+
2224
+ ## 1.1.4
2225
+ `2020-11-25`
2226
+
2227
+ * `FIX` wiered completion suggests for require paths in `Linux` and `macOS`: [#269](https://github.com/LuaLS/lua-language-server/issues/269)
2228
+
2229
+ ## 1.1.3
2230
+ `2020-11-25`
2231
+
2232
+ * `FIX` extension not works in `Ubuntu`: [#268](https://github.com/LuaLS/lua-language-server/issues/268)
2233
+
2234
+ ## 1.1.2
2235
+ `2020-11-24`
2236
+
2237
+ * `NEW` auto completion finds globals from `Lua.diagnostics.globals`
2238
+ * `NEW` support tail `LuaDoc`
2239
+ * `CHG` no more `Lua.intelliScense.fastGlobal`, now globals always fast and accurate
2240
+ * `CHG` `LuaDoc` supports `--- @`
2241
+ * `CHG` `find reference` uses extra `Lua.intelliSense.searchDepth`
2242
+ * `CHG` diagnostics are limited by `100` in each file
2243
+ * `FIX` library files are under limit of `Lua.workspace.maxPreload`: [#266](https://github.com/LuaLS/lua-language-server/issues/266)
2244
+
2245
+ ## 1.1.1
2246
+ `2020-11-23`
2247
+
2248
+ * `NEW` auto completion special marks deprecated items
2249
+ * `FIX` diagnostics may push wrong uri in `Linux` and `macOS`
2250
+ * `FIX` diagnostics not cleaned up when closing ignored lua file
2251
+ * `FIX` reload workspace remains old caches
2252
+ * `FIX` incorrect hover of local attribute
2253
+
2254
+ ## 1.1.0
2255
+ `2020-11-20`
2256
+
2257
+ * `NEW` no longer `BETA`
2258
+ * `NEW` use `meta.lua` instead of `meta.lni`, now you can find the definition of builtin function
2259
+ * `CHG` Lua files outside of workspace no longer launch a new server
2260
+
2261
+ ## 1.0.6
2262
+ `2020-11-20`
2263
+
2264
+ * `NEW` diagnostic `code-after-break`
2265
+ * `CHG` optimize performance
2266
+ * `CHG` updated language client
2267
+ * `CHG` `unused-function` ignores global functions (may used out of Lua)
2268
+ * `CHG` checks if client supports `Lua.completion.enable`: [#259](https://github.com/LuaLS/lua-language-server/issues/259)
2269
+ * `FIX` support for single Lua file
2270
+ * `FIX` [#257](https://github.com/LuaLS/lua-language-server/issues/257)
2271
+
2272
+ ## 1.0.5
2273
+ `2020-11-14`
2274
+
2275
+ * `NEW` `LuaDoc` supports more `EmmyLua`
2276
+
2277
+ ## 1.0.4
2278
+ `2020-11-12`
2279
+
2280
+ * `FIX` extension not works
2281
+
2282
+ ## 1.0.3
2283
+ `2020-11-12`
2284
+
2285
+ * `NEW` server kills itself when disconnecting
2286
+ * `NEW` `LuaDoc` supports more `EmmyLua`
2287
+ * `FIX` `Lua.diagnostics.enable` not works: [#251](https://github.com/LuaLS/lua-language-server/issues/251)
2288
+
2289
+ ## 1.0.2
2290
+ `2020-11-11`
2291
+
2292
+ * `NEW` supports `---|` after `doc.type`
2293
+ * `CHG` `lowcase-global` ignores globals with `---@class`
2294
+ * `FIX` endless loop
2295
+ * `FIX` [#244](https://github.com/LuaLS/lua-language-server/issues/244)
2296
+
2297
+ ## 1.0.1
2298
+ `2020-11-10`
2299
+
2300
+ * `FIX` autocompletion not works.
2301
+
2302
+ ## 1.0.0
2303
+ `2020-11-9`
2304
+
2305
+ * `NEW` implementation, NEW start!
2306
+
2307
+ <!-- contributors -->
2308
+ [lizho]: (https://github.com/lizho)
2309
+ [fesily]: (https://github.com/fesily)
2310
+ [Andreas Matthias]: (https://github.com/AndreasMatthias)
2311
+ [Daniel Farrell]: (https://github.com/danpf)
2312
+ [Paul Emmerich]: (https://github.com/emmericp)
2313
+ [Artem Dzhemesiuk]: (https://github.com/zziger)
2314
+ [clay-golem]: (https://github.com/clay-golem)