Skip to content

Releases: JohnnyMorganz/luau-lsp

1.38.0

28 Dec 15:42
Compare
Choose a tag to compare

[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

1.37.0

14 Dec 15:34
Compare
Choose a tag to compare

[1.37.0] - 2024-12-14

Added

  • The VSCode extension now registers a JSON schema for .luaurc files, providing simple diagnostics and intellisense (#850)

Changed

  • Sync to upstream Luau 0.655

Fixed

  • Fixed luau-lsp analyze --settings=... crashing when a malformed settings JSON file is provided. Now, it will print the json error and continue assuming the settings did not exist
  • Fixed regression in require by string autocompletion failing to correctly autocomplete files under directories (#851)
  • Autocompletion in string requires will now show aliases in their original case defined in .luaurc, rather than all lowercased

1.36.0

30 Nov 13:50
Compare
Choose a tag to compare

[1.36.0] - 2024-11-30

Deprecated

  • luau-lsp.require.fileAliases and luau-lsp.require.directoryAliases are now deprecated in favour of aliases in .luaurc files. These settings will be removed in a future version.

Added

  • Added a setting to enable the new solver without having to tinker with FFlags: luau-lsp.fflags.enableNewSolver.
  • Support parsing and resolving aliases coming from .luaurc files in module resolution and autocomplete
  • Added two configuration options luau-lsp.diagnostics.pullOnChange and luau-lsp.diagnostics.pullOnSave to configure when document diagnostics updates for a file (default: true)

Changed

  • workspace/diagnostic call is ~98% faster when luau-lsp.diagnostics.workspace is disabled on large projects (#826)
  • Sync to upstream Luau 0.653

1.35.0

10 Nov 13:23
Compare
Choose a tag to compare

[1.35.0] - 2024-11-10

Removed

  • Removed luau-lsp.require.mode in preparation for Luau's new require by string semantics. The default is now relative to the file the require is from.

Added

  • Added bracket pairs colorization for <> for generic types
  • Added configuration option luau-lsp.sourcemap.sourcemapFile to specify a different name to use for the sourcemap
  • A function call on a table with a __call metamethod will now show Signature Help and documentation (#724)
  • We now warn about non-alphanumeric FFlag names, and trim any leading/trailing whitespace in FFlag configuration on the VSCode extension (#648)

Changed

  • Sync to upstream Luau 0.650

Fixed

  • Fixed autocompletion, type registration, hover types/documentation, and some crashes for cases where the new solver is enabled
  • Fixed the refinement for typeof(inst) == "Instance" since Object became the root class type (#814)
  • Fixed inlay hints incorrectly showing for first parameter in static function when the function is called as a method (with :) (#766)
  • Fixed bracket pair completion breaking inside of generic type parameter list (#741)
  • Don't show aliases after a directory separator is seen in require string autocompletion (#748)
  • Fixed crashing of overload resolution in signature help when new solver is enabled (#823)

What's Changed

New Contributors

Full Changelog: 1.34.0...1.35.0

1.34.0

27 Oct 17:05
Compare
Choose a tag to compare

Note: this release includes a fix for the new Roblox type definitions. Old versions of the Language Server will crash when the types are updated.

[1.34.0] - 2024-10-27

Changed

  • Sync to upstream Luau 0.649

Fixed

  • Fixed internal handling of Roblox datatypes segfaulting due to introduction of "Object" class

1.33.1

05 Oct 10:53
Compare
Choose a tag to compare

[1.33.1] - 2024-10-05

Changed

  • Sync to upstream Luau 0.646

Fixed

  • Fixed a regression in 1.30.0 breaking type definitions files that rely on mutations like Enum.Foo
    (#658)

1.33.0

27 Sep 09:25
Compare
Choose a tag to compare

[1.33.0] - 2024-09-27

Changed

  • Sync to upstream Luau 0.644
  • The VSCode extension will now sync flags beginning with FIntLuau, DFFlagLuau and DFIntLuau (previously it would only sync FFlagLuau)

1.32.4

11 Sep 18:13
Compare
Choose a tag to compare

[1.32.4] - 2024-09-11

Changed

  • Sync to upstream Luau 0.642

1.32.3

10 Aug 14:40
Compare
Choose a tag to compare

[1.32.3] - 2024-08-10

Fixed

  • Fixed a regression in 1.32.2 breaking resolution of virtual paths from real paths, particularly around script and relative usages of it. (#734, #735)

1.32.2

10 Aug 11:59
Compare
Choose a tag to compare

[1.32.2] - 2024-08-10

Changed

  • Sync to upstream Luau 0.638

Fixed

  • Fixed a regression in 1.32.0 causing luau-lsp.ignoreGlobs and luau-lsp.completion.imports.ignoreGlobs to not work (#719)
  • Fixed auto-imports injecting a require in the middle of a multi-line require when introducing a require with lower lexicographical ordering (#725)
  • Fixed documentation not showing for properties of an intersected type table in Hover and Autocomplete (#715)