Releases: JohnnyMorganz/luau-lsp
Releases Β· JohnnyMorganz/luau-lsp
1.38.0
[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, ...)
) ifself
is the first
argument (#456)
Changed
- The server no longer computes
relatedDocuments
in atextDocument/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.
- Initial indexing: ~3.32x to ~7.1x speedup (43.60s -> 13.12s and 9.42s ->
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
1.37.0
[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
[1.36.0] - 2024-11-30
Deprecated
luau-lsp.require.fileAliases
andluau-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
andluau-lsp.diagnostics.pullOnSave
to configure when document diagnostics updates for a file (default:true
)
Changed
workspace/diagnostic
call is ~98% faster whenluau-lsp.diagnostics.workspace
is disabled on large projects (#826)- Sync to upstream Luau 0.653
1.35.0
[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"
sinceObject
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
- Add CFrame.fromRotationBetweenVectors by @Barocena in #803
- Fix outdated github username in dumpRobloxTypes by @checkraisefold in #807
- Sync to upstream Luau 0.650 by @checkraisefold in #811
- Add Content Datatype types by @Barocena in #817
- Refactor for new solver by @checkraisefold in #783
- Add sourcemap.sourcemapFile configuration by @TRHeliad in #665
New Contributors
- @checkraisefold made their first contribution in #807
- @TRHeliad made their first contribution in #665
Full Changelog: 1.34.0...1.35.0
1.34.0
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
1.33.0
[1.33.0] - 2024-09-27
Changed
- Sync to upstream Luau 0.644
- The VSCode extension will now sync flags beginning with
FIntLuau
,DFFlagLuau
andDFIntLuau
(previously it would only syncFFlagLuau
)
1.32.4
[1.32.4] - 2024-09-11
Changed
- Sync to upstream Luau 0.642
1.32.3
1.32.2
[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
andluau-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)