@codingame/monaco-editor-wrapper 27.0.0 → 28.0.0

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