Releases: JohnnyMorganz/luau-lsp
Releases Β· JohnnyMorganz/luau-lsp
1.18.1
[1.18.1] - 2023-03-23
Fixed
- Fixed server crash when auto require imports is enabled and there is a type-asserted require present in the file (
require(location) :: any
) - Fixed additional automatic service imports when completing an automatic require import being placed before a hot comment (such as
--!strict
) - Fixed automatic require import being placed incorrectly we also autocomplete a service. This can be shown when there is a multiline comment, and the service is imported above that comment, but the require gets imported inside of the comment incorrectly.
1.18.0
[1.18.0] - 2023-03-20
Added
- Added support for changing
Color3
colors using the color picker - Added support for automatic require imports (currently only for Roblox mode). If you start typing the name of a module in your code, you can autocomplete the require statement automatically. This feature is enabled by setting
luau-lsp.completion.suggestImports
. (Thanks @HawDevelopment!)
Code_v0GdNGjzUX.mp4
Changed
- Sync to upstream Luau 0.568.
In particular, this provide improvements to control flow analysis refinements. This allows the type checker to recognise type
options that are unreachable after a conditional/unconditional code block. e.g.:
local function x(x: string?)
if not x then return end
-- x is 'string' here
end
To enable this feature, the FFlag LuauTinyControlFlowAnalysis
must currently be enabled.
- The language server will only be enabled on "file" and "untitled" schemes. This means it will be disabled in diff mode
and live share. This is because we cannot yet provide sufficient information in these contexts.
1.17.1
[1.17.1] - 2023-03-04
Changed
- Sync to upstream Luau 0.566
Fixed
- Don't autocomplete another set of parentheses on a function call if they already exist
- Fix
.luaurc
in current working directory not taken into account when callingluau-lsp analyze
- Fixed slowdown of autocompletion when at a position where a type is explicitly expected (e.g., autocompleting a return expression when a return type is specified). Currently requires
LuauAutocompleteSkipNormalization
to be enabled
1.17.0
[1.17.0] - 2023-02-12
Added
- Added two code actions:
Sort requires
andSort services
(services only enabled ifluau-lsp.types.roblox
== true).
These actions will sort their respective groups alphabetically based on a variable name set.
You can also set these actions to automatically run on save by configuring:
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
Code_OlQbWEgpWo.mp4
Equivalent functionality has also been added to StyLua
Changed
-
Sync to upstream Luau 0.563
-
Prioritised common services and Instance properties/methods in autocomplete so that they show up first. This is especially useful for services like
ReplicatedStorage
, and methods like:FindFirstChild
Before | After |
---|---|
Fixed
- Further fixes to document symbols failing due to malformed ranges
1.16.4
[1.16.4] - 2023-02-10
Fixed
- Fixed document symbols crashing due to internal malformed data
1.16.3
[1.16.3] - 2023-02-09
Fixed
- Changed internal representation of documents to reduce the likelihood of Request Failed for "No managed text document"
Please do let me know if this has improved (or worsened) the issue!
1.16.2
[1.16.2] - 2023-02-01
Fixed
- Fixed document symbol crash on incomplete functions
- Fixed
--base-luaurc
not registering for an LSP server - Fixed crashing on invalid FFlags configuration - the VSCode client will now validate the flags
1.16.1
[1.16.1] - 2023-01-30
Fixed
- Fixed error in document symbols not conforming to specification -
selectionRange
will now be fully enclosed byrange
1.16.0
[1.16.0] - 2023-01-29
Added
- Support documentation comments attached to a table and table types, e.g. on
DATA
in the following:
--- Doc comment
local DATA = {
...
}
--- Doc comment
type Contents = {
...
}
- Include documentation comments on functions and tables in autocompletion
- Added configuration option
luau-lsp.require.mode
to configure how string requires are resolved. It can either berelativeToWorkspaceRoot
(default) orrelativeToFile
- Added
luau-lsp.types.documentationFiles
to support adding extra documentation symbols to the database. These are used to support definition files, and should be in the same format as shown here - Added
luau-lsp.diagnostics.strictDatamodelTypes
(default:false
) which configures whether we use expressive DataModel types to power diagnostics.
When off,game
/script
/workspace
(and all their members) are typed asany
, which helps to prevent false positives, but may lead to false negatives. - Added CLI option
--base-luaurc=PATH
for both LSP and Analyze mode to provide a path to a.luaurc
file which is used as the default configuration - Added support for Go To Definition / Type Definition on imported type references
module.Type
(gated behind FFlagSupportTypeAliasGoToDeclaration
)
Changed
- Sync to upstream Luau 0.560
- Class symbols with no documentation present in the docs file will no longer show anything on hover/autocomplete (i.e. won't show
@luau/global/require
) Instance.new()
now accepts variables which are of type string without erroring. It will instead error when Instance.new is called with a string literal which is an unknown class name- In the CLI,
luau-lsp lsp
now supports passing multiple--docs=
parameters - The CLI will now error when an unknown option is passed to it
- Diagnostics will now be emitted on
.luaurc
files with parse errors
Fixed
- Fixed unknown require errors occurring in multi-root workspaces when in a folder which isn't the first one
- Fixed diagnostics not clearing for files which were deleted unconventionally (i.e., outside of VSCode using File Explorer, or external commands such as
git stash
)
1.15.0
[1.15.0] - 2023-01-11
Added
- Added syntax highlighting support for interpolated strings
- Added color viewers for Color3.new/fromRGB/fromHSV/fromHex (gated behind
config.types.roblox
)
- Added support for autocompleting require-by-string functions with files and folders when using base Luau
Code_TNvzk5h7Tu.mp4
- Support documentation comments on variables:
--- documentation comment
local x = "string"
--- another doc comment
local y = function()
end
- Support documentation comments on table properties, such as the following:
local tbl = {
--- This is some special information
data = "hello",
--- This is a doc comment
values = function()
end,
}
local x = tbl.values -- Should give "This is a doc comment"
local y = tbl.data -- Should give "This is some special information"
Changed
- Sync to upstream Luau 0.558
- All Luau FFlags are no longer enabled by default. This can be re-enabled by configuring
luau-lsp.fflags.enableByDefault
. It is recommended to keepluau-lsp.fflags.sync
enabled so that FFlags sync with upstream Luau - Allow variable number of
=
sign for multiline doc comments, so--[[
and--[===[
etc. are valid openers
Fixed
- Luau analyze now exits with code 0 if there are no reported errors (all errors are ignored)
require(instance:FindFirstChild("Testing", true))
will no longer resolve as an immediate child of instance due to the recursive argument- Fixed a bug where internally the wrong pointer to an Instance type was being used for DM nodes which manifested into failed unification and
never
types - Constant variables will now be syntax highlighted appropriately at definition site (
local CONSTANT
)
Full Changelog: 1.14.3...1.15.0