Skip to content

Releases: JohnnyMorganz/luau-lsp

1.43.0

19 Apr 17:22

Choose a tag to compare

[1.43.0] - 2025-04-19

Added

  • Added setting luau-lsp.server.communicationChannel with options stdio (default) or pipe to support communicating
    using a UNIX socket file connection instead of stdin/stdout. On the server, this is configured by passing
    --pipe=FILE to the command line. This is useful for attaching a debugger to the server on macOS. pipe is not
    supported on Windows. (#998)

Changed

  • Sync to upstream Luau 0.670
  • Linux runners for GitHub actions are bumped from the deprecated ubuntu-20.04 to ubuntu-22.04. This may mean that release artifacts no longer work on ubuntu-20.04.
  • Improved Studio plugin error message when attempting to connect to a server but it is not online (#982)
  • VSCode extension will now strip the prefix FFlag / DFFlag / FInt / DFInt if they were included in the overrides name (#981)

Fixed

  • Fixed a bug when the New Type Solver is enabled where diagnostics would not update in dependent files when a file was
    changed until the dependent file is modified

Full Changelog: 1.42.1...1.43.0

1.42.1

06 Apr 13:48

Choose a tag to compare

[1.42.1] - 2025-04-06

Changed

  • Sync to upstream Luau 0.668

Fixed

  • Don't show function types with function kind or label details when autocompleting in a type
    context (#987)
  • Fixed crash when registering a non-Roblox definitions file that contains classes named Object / Instance /
    ServiceProvider / EnumItem (#986)

Full Changelog: 1.42.0...1.42.1

1.42.0

27 Mar 19:43

Choose a tag to compare

[1.42.0] - 2025-03-27

Changed

  • Sync to upstream Luau 0.666
  • Optimized re-indexing on changed files when large number of changes processed at once
  • Watched files re-indexing now respects ignore globs specification

Fixed

  • Added a debounce of 1s on file changes triggering sourcemap generation when luau-lsp.sourcemap.useVSCodeWatcher is enabled
  • Fixed crashing due to bad memory access when hovering over an imported type reference due to documentation computation
  • Fixed sources of crashing and flakiness when hovering + go to definition on imported type references in the new solver
  • Reduced the need to run 2 type checks unnecessarily on files when the new type solver is enabled

Full Changelog: 1.41.0...1.42.0

1.41.0

16 Mar 16:45

Choose a tag to compare

[1.41.0] - 2025-03-16

Added

  • Documentation comments now attach to type alias definitions (#956)
  • VSCode: Introduced luau-lsp.sourcemap.generatorCommand to run a custom generator for updating the sourcemap. Accepts a shell command.
    If undefined (default), then falls back to using rojo. (#968)
  • VSCode: Introduced luau-lsp.sourcemap.useVSCodeWatcher (default: false). When enabled, the extension will connect to
    VSCode file added / removed events for retriggering the generator. When disabled (default), the extension delegates to
    the generator process for watching. When using rojo, this option controls the --watch flag.
  • VSCode: Documentation now supports HTML syntax (#964)

Changed

  • Sync to upstream Luau 0.665
  • VSCode: Improved error reporting when the Studio Plugin sends a result that is too large. The error now includes the
    size limit, the received size, and steps to resolve the issue (#969)
  • The language server will no longer attempt to remove HTML tags from
    documentation (#964)

External Contributions

  • Attach documentation comments to type alias definitions by @m4fh in #956
  • Enable HTML rendering in language client options by @m4fh in #964

Full Changelog: 1.40.0...1.41.0

1.40.0

02 Mar 10:45

Choose a tag to compare

[1.40.0] - 2025-03-01

Added

  • Added configuration luau-lsp.types.disabledGlobals to support removing globals from the main scope for analysis.
    Accepts a list of libraries or library methods (e.g., table, string.split,
    etc.) (#888)

Changed

  • Sync to upstream Luau 0.663
  • Improved error reporting when the studio plugin server in VSCode fails to start up (typically due to port already in use) (#936)

Fixed

  • Fixed an issue where lint warnings would suddenly disappear when typing characters / saving a file, and only reappear
    after further edits
  • Autocompleting a table property that matches a keyword will now autocomplete correctly with braces (i.e., t.then ->
    t["then"]) (#937)

External Contributions

New Contributors

Full Changelog: 1.39.2...1.40.0

1.39.2

15 Feb 11:26

Choose a tag to compare

[1.39.2] - 2025-02-15

Changed

  • Sync to upstream Luau 0.661

Fixed

  • Fixed unintended bump of minimum supported macOS version in 1.39.0 to macOS 14. The language server binary supports a minimum version of macOS 10.15
  • Single-line documentation comments (---) now correctly preserve newlines (#917).
  • Fixed stack-use-after-free crash in sourcemap definition magic functions when the new solver is
    enabled (#928)

1.39.1

15 Feb 10:46

Choose a tag to compare

[1.39.1] - 2025-02-08

Fixed

  • Fixed server failing to start up due to attempting to run an invalid path as the server binary

1.39.0

08 Feb 20:04

Choose a tag to compare

[1.39.0] - 2025-02-08

Added

  • Added configuration luau-lsp.server.path (default: "") which allows the use of locally installed luau-lsp binaries. (#897)
  • Auto-import require path information is added in CompletionItem.labelDetails.description as well as just in
    CompletionItem.detail
  • In VSCode, the opening brace { character will be automatically closed with a } character when completed within an interpolated string. This occurs when the { character is typed just before whitespace or a ` character (#916).
  • Added support for Luau's fragment autocomplete system. This can be enabled by configuring luau-lsp.completion.enableFragmentAutocomplete (default: false). This incremental system can lead to performance improvements when autocompleting.
  • The luau-lsp.ignoreGlobs and luau-lsp.types.definitionFiles configuration from a settings JSON file will now be
    applied when running luau-lsp analyze --settings file.json on the command
    line (#892)

Changed

  • Sync to upstream Luau 0.660

Fixed

  • Fixed erroneous unknown notificated method: $/plugin/full message in logs even though plugin message was handled
  • Linux ARM releases are now built on arm-based GitHub runners, and hence should support Linux ARM properly

External Contributions

  • Fix Types for Faces and Axes datatypes by @Barocena in #912
  • fix: return value in Roblox platform notification handler by @lopi-py in #910
  • Add server path configuration option to the VSCode extension by @cswimr in #897
  • feat: add require path in labelDetails.description by @lopi-py in #915
  • Load ignore globs and definition files from settings file by @Stefanuk12 in #894

New Contributors

Full Changelog: 1.38.1...1.39.0

1.38.1

12 Jan 13:35

Choose a tag to compare

[1.38.1] - 2025-01-12

Changed

  • Sync to upstream Luau 0.656

1.38.0

28 Dec 15:42

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

  • @kineticwallet made their first contribution in #872

Full Changelog: 1.37.0...1.38.0