@codingame/monaco-editor-wrapper 23.0.1 → 24.0.1

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