Releases: JohnnyMorganz/luau-lsp
Releases · JohnnyMorganz/luau-lsp
1.29.0
[1.29.0] - 2024-05-11
Added
- Bytecode display will now show type info information. Added setting
luau-lsp.bytecode.typeInfoLevel
(default: 1) to configure the type info level shown. - Added "magic functions / refinements" support under the New Solver (i.e., special handling of :IsA, :FindFirstChildWhichIsA, :Clone, etc.)
Changed
- Sync to upstream Luau 0.625
- Improved memory usage of document and workspace diagnostics by no longer storing type graphs
- Rewritten the Luau grammar syntax: https://github.com/JohnnyMorganz/Luau.tmLanguage
Fixed
- Fixed autocompletion of strings with '/' characters causing the prefix to be duplicated rather than replaced (#607)
- Fixed bug with string requires where a required files types may not correctly update when the file contents changed
1.28.1
[1.28.1] - 2024-03-04
Fixed
- Fixed macos release build
1.28.0
[1.28.0] - 2024-03-03
Changed
- Sync to upstream Luau 0.615
- Non-function properties will now no longer be shown by default when autocompleting a method call (e.g.,
foo:bar
).
To revert back to the original behaviour, enableluau-lsp.completion.showPropertiesOnMethodCall
- Support Ubuntu 20.04
Fixed
- Autocompletion of variables that hold a class type will now correctly have a kind of "variable" rather than "class"
- Introduced a fix for orphaned
rojo
processes after VSCode has closed FindFirstAncestor
method now correctly finds the project root in non-DataModel projects- Fixed bad handling of unicode in filesystem paths causing crashes on server startup
- Gracefully handle filesystem errors when visiting directories for indexing / workspace diagnostics
1.27.1
[1.27.1] - 2024-01-20
Changed
- Sync to upstream Luau 0.609
Fixed
- Switched to memory-efficient implementation of workspace diagnostics (currently behind FFlag
LuauStacklessTypeClone3
) - Improved handling of configuration info received from non-VSCode clients
- Functions with explicitly defined
self
parameters are correctly marked with themethod
semantic token
1.27.0
[1.27.0] - 2023-12-25
Important Note
Heads up! In VSCode, this release changes the registered language ID from lua
to luau
. If you have any configuration based on the old language ID (e.g. themes / file icons / semantic highlighting overrides / language-specific settings overrides), you may need to update them.
Added
- Marking an item as
@deprecated
via documentation comments will now reflect its deprecated status in autocomplete (currently no diagnostics support)
- Show string literal byte length and utf8 characters on hover
- Added support for viewing textual bytecode and compiler remarks using commands
Luau: Compute Bytecode for file
andLuau: Compute Compiler Remarks for file
.
This opens up a new view with bytecode/remarks inlined as comments in the source file- Added configuration
luau-lsp.bytecode.vectorLib
,luau-lsp.bytecode.vectorCtor
andluau-lsp.bytecode.vectorType
to configure compiler options when generating bytecode - Custom editors should handle the
luau-lsp/bytecode
andluau-lsp/compilerRemarks
LSP message to integrate compiler remarks info in their editor
- Added configuration
Code_kAxxymJYpX.mp4
- Added
luau-lsp.types.robloxSecurityLevel
to select what security level to use for the API types, out of:None
,LocalUserSecurity
,PluginSecurity
andRobloxScriptSecurity
- Support passing
--settings
toluau-lsp lsp
configuring the default global settings to use
Changed
- Sync to upstream Luau 0.607
- Made rename operation fully backed by find all references, to ensure both return results that are consistent with each other
- Hide return type hints for no-op functions
- Changed the VSCode registered language and grammar ID from
lua
toluau
. NOTE: this may affect existing custom themes! - Renamed
script/globalTypes.d.lua
toscript/globalTypes.d.luau
(the old file will be kept temporarily for compatibility)- Please update your references to the file in custom scripts
- Default security level of API types changed from
RobloxScriptSecurity
toPluginSecurity
- setluau-lsp.types.robloxSecurityLevel
toRobloxScriptSecurity
to see original behaviour - Improved warning message when Rojo not found when attempting to generate sourcemap, with option to configure settings to disable autogeneration
Fixed
- Fixed Find All References / Rename not working on a table property defined inline, such as
name
in:
local T = {
name = "string"
}
- Fixed methods and events showing up in "GetPropertyChangedSignal" autocomplete
- Fixed requiring a directory containing "init.lua" not working
- Fixed go to definition on a property of a table that stores a cross-module type value (e.g. the result of a function defined in another module)
Full Changelog: 1.26.0...1.27.0
1.26.0
[1.26.0] - 2023-11-19
Added
- Added support for documentation comments on table type properties:
type Foo = {
--- A documentation comment
map: () -> ()
}
- We now show the file path in the completion description when auto-requiring files
Changed
- Sync to upstream Luau 0.604
- Overhauled command line argument parsing system to be more consistent and flexible
- Deprioritized
loadstring
in autocomplete luau-lsp.diagnostics.strictDatamodelTypes
now defaults tofalse
on the language server side (note, it was already defaultfalse
in VSCode).
Defaulting totrue
was unintentional. This will affect external language client users (e.g. neovim)- Analyze CLI tool now respects
luau-lsp.diagnostics.strictDatamodelTypes
if set in the provided configuration.
The flag--no-strict-dm-types
still remains for backwards compatibility reasons, but is now deprecated.
Fixed
- Attempting to rename a generic type parameter now correctly renames it in all locations
- Fixed renaming a local variable not appropriately renaming any imported types
- Auto-import requires will now show the full codeblock that will be inserted, rather than just the first line if also inserting a service
1.25.0
[1.25.0] - 2023-10-14
Changed
- Sync to upstream Luau 0.599
- Prioritise
game:GetService()
as the first autocompletion entry when typinggame:
- Code blocks in hover and documentation now use
luau
as the syntax highlighting
Fixed
- Do not add line separator in hover when there is no text documentation
- Fixed init files not working with directory aliases (e.g.
require("@dir")
orrequire("@dir/subdir")
)
1.24.1
[1.24.1] - 2023-09-09
Changed
- Sync to upstream Luau 0.594
- Support autocomplete end on
do
blocks
Fixed
- Fixed crash when attempting to Go To Definition of an imported type
1.24.0
[1.24.0] - 2023-08-26
Changed
- Sync to upstream Luau 0.592
- Simplified Instance.new and game:GetService calls internally and in the definitions file to reduce complexity issues in the typechecker.
Fixed
- Fixed cleanup of rojo sourcemap generation process when VSCode exits
- Fixed color presentations values being unclamped causing errors in other editors
- Fixed newline not added to separate services and requires when the suggestion imports both at the same time
1.23.0
[1.23.0] - 2023-08-06
NOTE: For automatic sourcemap generation users, this release now requires Rojo v7.3.0+ is installed, with rojo sourcemap --watch
support
Added
- Added command
luau-lsp.reloadServer
to restart the language server without having to reload the workspace
Changed
- Sync to upstream Luau 0.589
- Changes to settings which require server restart will now reload the server instead of having to reload the whole VSCode workspace
- Switch to Rojo
rojo sourcemap --watch
command for sourcemap autogeneration. Note that on rojo error, you must manually restart sourcemap regeneration. Requires Rojo v7.3.0+
Fixed
- Reverted change to type checking in 1.22.0 that reduced memory footprint. This should resolve the problems where diagnostics aren't showing with an InternalCompilerError, at the cost of increased memory use if
luau-lsp.diagnostics.workspace
is enabled. - Fixed string require resolution when the string had a secondary extension:
Module.mod
will be resolved asModule.mod.luau
- Fixed resolution of directory aliases pointing to relative paths