Skip to content

Releases: JohnnyMorganz/luau-lsp

1.48.0

28 May 19:55
Compare
Choose a tag to compare

Added

  • Internal caught but unhandled exceptions are now reported to Sentry if crash reporting is enabled
  • Added progress indicator for watched files changes
  • A Cloudflare page is now available to serve the type definition files and API documentations, due to GitHub ratelimiting (#1059)
    • https://luau-lsp.pages.dev/type-definitions/globalTypes.None.d.luau
    • https://luau-lsp.pages.dev/type-definitions/globalTypes.PluginSecurity.d.luau
    • https://luau-lsp.pages.dev/type-definitions/globalTypes.LocalUserSecurity.d.luau
    • https://luau-lsp.pages.dev/type-definitions/globalTypes.RobloxScriptSecurity.d.luau
    • https://luau-lsp.pages.dev/api-docs/en-us.json

Changed

  • Sync to upstream Luau 0.675
  • Significant performance improvements to initial workspace indexing time (~3m to ~20s on 30,000 files)
  • ~1160x performance improvement to Uri parsing time at scale (7.77s to 0.0067s for ~30,000 URIs)
  • ~10x performance improvement to require resolution for string requires and virtual (sourcemap) -> real file paths (
    3.28s to 0.322s for ~30,000 files)
  • ~1.29x performance improvement to reading files (4.5s to 3.66s for ~30,000 files)

Fixed

  • Fixed blowup of linux-arm64 release build size due to the inclusion of debug symbols
  • Fixed crash when auto imports is enabled and the file contains a require with no arguments (e.g.
    local Value = require(), typically the case when in the middle of typing a require)
  • Fixed performance regression from previous release where type checking is being performed on document change even if
    workspace diagnostics is disabled
  • Fixed crash where catch-all error handler attempts to send an error message with non-UTF 8 characters
  • Fixed find references not showing types used as return types for
    functions (#1060)
  • VSCode: if fetching API documentation / definitions fails, then we do not overwrite the existing file (#740)

Full Changelog: 1.47.0...1.48.0

1.47.0

17 May 12:46
Compare
Choose a tag to compare

[1.47.0] - 2025-05-17

Added

  • Implemented opt-in crash reporting for the language server. This is enabled via luau-lsp.server.crashReporting.enabled. This setting is not enabled by default, but you may receive a dismissible prompt to enable it if the server restarts unexpectedly. Note: crash reporting sends network requests to Sentry. Crash Reporting is only available on Windows and macOS, and is not enabled in Standalone mode (luau-lsp analyze).

Changed

  • Sync to upstream Luau 0.674

1.46.0

13 May 19:52
Compare
Choose a tag to compare

[1.46.0] - 2025-05-13

Added

  • Added progress indicator during indexing of initial startup. Currently does not provide much detail, but does provide
    some feedback to indicate the server is doing work.
  • VSCode: server binary location setting (luau-lsp.server.path) now supports relative paths (#1036)

Changed

  • Sync to upstream Luau 0.673
  • Luau FFlags are now synced from the Studio channel rather than the main channel on VSCode, which is typically updated
    earlier ([#1040])

Fixed

  • Fixed invalid variable names created for instance-based auto-imports
  • Fixed diagnostics not getting updated for dependent files when a file is edited and workspace diagnostics is
    enabled (#1042)

Full Changelog: 1.45.0...1.46.0

1.45.0

04 May 17:00
Compare
Choose a tag to compare

[1.45.0] - 2025-05-04

Breaking Changes

This changes the string require behaviour for init.lua files. Now, requires are resolved relative to the parent directory, rather than the file itself. A new alias @self is available to allow resolving relative to the current file.

Added

  • Autocomplete in string requires now respects luau-lsp.completion.imports.ignoreGlobs for filtering out files to skip (e.g., one can add *.server.luau or *.client.luau) (#1014)
  • End autocompletion now also autocompletes missing then or do tokens in control flow statements (e.g., pressing enter after typing just if condition) (#999)

Changed

  • Sync to upstream Luau 0.672
  • Color picker will now strip redundant decimal digits (i.e. 0.0000 -> 0) (#1022)

Fixed

  • Fixed string-require auto imports not using aliases correctly on Windows (#1025)
  • Instance-based auto-imports now use expression syntax when parts are not a valid identifier (e.g. require(Modules["react-spring"])) (#1026)
  • Auto-imports no longer create invalid variable names (#1026)

1.44.1

24 Apr 18:49
Compare
Choose a tag to compare

[1.44.1] - 2025-04-24

Fixed

  • Fixed incorrect serialization of maps that are keyed by a Uri, causing commands that apply edits such as Rename to fail

1.44.0

24 Apr 16:53
Compare
Choose a tag to compare

[1.44.0] - 2025-04-24

Removed

  • The deprecated luau-lsp.require.fileAliases and luau-lsp.require.directoryAliases no longer show up in autocomplete for string requires. Use aliases as part of .luaurc instead

Added

  • Auto-importing now supports string requires. In standard platform, string requires is the default when luau-lsp.completion.imports.enabled and luau-lsp.completion.imports.suggestRequires are enabled. For the Roblox platform, string require auto imports must be switched on using luau-lsp.completion.imports.stringRequires.enabled (default: false) (#494).

Changed

  • Reimplementation of string require autocomplete based off upstream Luau require work
  • Updated implementation of Uris internally to handle case-insensitive file systems correctly

Fixed

  • Fixed diagnostics not updating on windows for Neovim or Zed due to mismatched URI cases (#988)
  • Fixed "isIgnoredFile failed: relative path is default-constructed" for Neovim Windows users (#752)

1.43.0

19 Apr 17:22
Compare
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
Compare
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
Compare
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
Compare
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