Skip to content

1.38.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 28 Dec 15:42

[1.38.0] - 2024-12-28

Added

  • Auto-import requires will now show the require path in the details section rather than just "Auto-import". This will
    help to disambiguate between multiple modules with the same name but at different
    paths. (#593)
  • Added configuration luau-lsp.inlayHints.hideHintsForErrorTypes (default: false) to configure whether inlay hints
    should be shown for types that resolve to an error type (#711)
  • Added configuration luau-lsp.inlayHints.hideHintsForMatchingParameterNames (default: true) to configure whether
    inlay hints are shown where a variable name matches the
    parameter (#779)
  • Find all references of a returned function / table in a module will now return all cross-module
    references (#879)
  • Go To Definition inside of a require call will now lead to the required file, similar to Document Link. This is useful
    for editors that do not support Document Link (#612)
  • The recursive parameter in game:FindFirstChild("ClassName", true) is now supported for DataModel awareness. We
    recursively find the closest descendant based on BFS (#689)
  • We now attach a semantic token modifier to usages of self in non-colon function definitions (i.e.
    function T.foo(self, ...)) if self is the first
    argument (#456)

Changed

  • The server no longer computes relatedDocuments in a textDocument/diagnostic request unnecessarily if the client
    does not support related documents
  • Go To Definition on a cross-module function reference will now only resolve to the function definition, rather than
    also including the require statement
    local func = require(path.to.function) (#878).
  • Overhauled the globbing mechanism leading to significant performance improvements in indexing, workspace diagnostics,
    and auto suggest requires, removing globbing as a bottleneck. Some results in example codebases ranging from 190 to
    1900 KLoC:
    • Initial indexing: ~3.32x to ~7.1x speedup (43.60s -> 13.12s and 9.42s ->
      1.33s) (#829)
    • Workspace diagnostics: ~2.39x to ~4.75x speedup (164.93s -> 69.07s and 8.49s ->
      1.79s)
    • Auto-suggest requires: ~4.77x speedup (1.15s ->
      0.24s) (#749)
    • These improvements heavily depend on the amount of code you have matching ignore globs. Workspace diagnostics
      improvements depends on the performance of Luau typechecking.

Fixed

  • Fixed isIgnoredFile check failing due to mismatching case of drive letter on Windows (#752)
  • Fixed luau-lsp analyze --ignore GLOB not ignoring files matching the glob if the files are within one of the
    provided directories (#788)
  • Fixed production VSCode extension failing to find server binary when debugging another VSCode extension (#644)
  • The Studio Plugin settings configuration is now stored in TestService instead of AnalyticsService to allow it to persist across sessions (#738)
  • The Studio Plugin now correctly sends updates to the language server when an instance changes name or ancestry hierarchy (#636)
  • Fixed Studio Plugin leaking Instance connections after disconnecting from server

New Contributors

Full Changelog: 1.37.0...1.38.0