Releases: JohnnyMorganz/luau-lsp
Releases Β· JohnnyMorganz/luau-lsp
1.48.0
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
[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
[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
[1.45.0] - 2025-05-04
Breaking Changes
- The language server now follows the new require-by-string semantics for
init.luau
files for file resolution and string require autocomplete (#1023)
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
ordo
tokens in control flow statements (e.g., pressing enter after typing justif condition
) (#999)
Changed
- Sync to upstream Luau 0.672
- Color picker will now strip redundant decimal digits (i.e.
0.0000
->0
) (#1022)
Fixed
1.44.1
[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
[1.44.0] - 2025-04-24
Removed
- The deprecated
luau-lsp.require.fileAliases
andluau-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
andluau-lsp.completion.imports.suggestRequires
are enabled. For the Roblox platform, string require auto imports must be switched on usingluau-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
1.43.0
[1.43.0] - 2025-04-19
Added
- Added setting
luau-lsp.server.communicationChannel
with optionsstdio
(default) orpipe
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
toubuntu-22.04
. This may mean that release artifacts no longer work onubuntu-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
[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
[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
[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 usingrojo
. (#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 usingrojo
, 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