Releases: JohnnyMorganz/luau-lsp
Releases · JohnnyMorganz/luau-lsp
1.61.0
Immutable
release. Only release title and notes can be modified.
[1.61.0] - 2026-01-24
Added
- Go To Definition on the original local function definition now works. This means Ctrl/Cmd+Click on the local function declaration will now open the references panel in VSCode (#1122)
- Go To Definition and Documentation is now available on named types inside of inlay hints (#876, #877)
InlayHintsDemo.mov
Changed
- Sync to upstream Luau 0.706
Fixed
- Hover information is no longer shown when hovering over symbols inside a comment (#1337)
luau-lsp analyzewill now process@robloxdefinition files before others, matching the behavior of the language server (#1341)- Studio plugin no longer crashes when lacking script injection permission (#1343)
External Contributions
- Process Roblox definitions before others in analyze CLI by @Crystalflxme in #1341
- Fix plugin crashing on first installation by @zovits in #1343
- Fix editor guide by @diamo-dev in #1345
New Contributors
- @Crystalflxme made their first contribution in #1341
- @diamo-dev made their first contribution in #1345
Full Changelog: 1.60.1...1.61.0
1.60.1
Immutable
release. Only release title and notes can be modified.
[1.60.1] - 2026-01-15
Changed
- Sync to upstream Luau 0.704
Fixed
- Fixed use-after-free in cached DataModel types after a Studio Plugin update with an existing sourcemap, leading to server crashes (#1331)
External Contributions
Full Changelog: 1.60.0...1.60.1
1.60.0
Immutable
release. Only release title and notes can be modified.
[1.60.0] - 2026-01-04
Added
luau-lsp analyzewill now respectluau-lsp.fflags.enableNewSolverif enabled in the provided--settingsfile (#1321)- Added
luau-lsp.completion.showAnonymousAutofilledFunctionsetting (enabled by default) to control whether the "function (anonymous autofilled)" completion item is shown when autocompleting callback arguments - Added
luau-lsp.completion.showDeprecatedItemssetting (enabled by default) to control whether deprecated items are shown in autocomplete suggestions - Added language server support for the upcoming Studio Script Sync release, via the Studio Plugin. (#1295)
- When the Studio Plugin is enabled alongside Studio Script Sync, it will also populate file path information for synced instances, enabling require functionality.
- The synced tree with file path information will be written to the
sourcemap.jsonfile, giving access for external tools. - External editors will need to implement the
GET /get-file-pathsendpoint for the local HTTP server to support Studio Script Sync
Changed
- VSCode: the extension will now automatically activate when your opened folder contains any
.luaufiles, not just when you explicitly open a Luau file. This allows the Studio Plugin to start up and connect quicker (#1278) - Entries marked as deprecated will now be sorted to the bottom of the autocomplete items list (#1318)
Fixed
- VSCode: fixed cursor being positioned outside of the string after performing automatic quote conversion to backticks (#1317)
- VSCode: fixed builtin documentation files (api-docs.json) not being downloaded, leading to an error that documentation files do not exist
External Contributions
- Activate VSC extension if the opened workspace contains Luau by @zovits in #1278
- Script Sync sourcemap support by @zovits in #1295
Full Changelog: 1.59.0...1.60.0
1.59.0
Immutable
release. Only release title and notes can be modified.
[1.59.0] - 2025-12-28
Added
- Added command
Luau: Compute CodeGen instructions for fileto emit annotated codegen instructions, similar to the bytecode command. External editors can implement this by using theluau-lsp/codeGenrequest. (#617) - Added support for requiring YAML files (
.yamland.yml) as Luau data modules, similar to existing JSON and TOML support (#1267) - Implemented quick fix code actions for common diagnostics (#439):
GlobalUsedAsLocal: Addlocalkeyword to fix accidental global variableLocalUnused,FunctionUnused,ImportUnused: Prefix with_to silence, or remove the unused declarationUnreachableCode: Remove unreachable code after early return/errorRedundantNativeAttribute: Remove redundant@nativeattribute- Unknown symbol errors now have a quick fix to auto-import missing modules (both string requires and Roblox instance-based requires) and services
- Misspelled property names (case mismatches) now have a quick fix to rename to the correct property
- Added source file actions "Remove all unused code" and "Add all missing requires" to perform bulk quick fixes at once
- Added support for automatic quote conversion to backticks when typing
{inside strings. This can be enabled with theluau-lsp.format.convertQuotesconfiguration option. You may need to enable on-type formatting in your editor (e.g.,format.onTypein VSCode) (#1298)
Changed
- Aliases defined in a root-level
.luaurc/.config.luauwill now be indexed at startup. As such, external alias files will now show up as part of string-require auto-imports if the file has not previously been required (#1043) - Find All References and Rename now correctly track property references through metatable
__indexchains, enabling proper support for Luau class patterns usingsetmetatableinheritance (#961) - VSCode: expanding a single line block (e.g.,
function foo() end, adding a newline to start writing the block) will now move the cursor to the correct indentation (#220)
Fixed
- Fixed non-adjacent comments (such as section headers separated by blank lines) being incorrectly included in hover documentation (#310)
- Function entries correctly show as deprecated in autocomplete if they are marked with
@deprecatedattribute (#1302) - Fixed
sourcemapFileconfiguration not supporting relative paths from the workspace root (e.g.,subdir/sourcemap.json) (#1288) - Fixed auto-imports not showing up when autocompleting in array-like tables (i.e., before the
=sign has been written for a property) (#1062) - Fixed improper and missing escaping when converting JSON files to Luau data modules. Object keys and string values containing special characters (quotes, newlines, etc.) are now properly escaped (#426)
- Fixed Find All References not including properties accessed via bracket notation (e.g.,
obj["property"]) (#1084) - Fixed Rename not supporting properties accessed via bracket notation. Renaming now correctly updates both dot notation (
obj.property) and bracket notation (obj["property"]) references (#1084) - Fixed definitions or documentation files not loading when the path to the file contains non-ASCII characters (#1191)
- Ignored files that are changed externally are correctly marked as dirty internally to ensure the next typecheck will use updated source contents (#1144)
- Fixed documentation not being shown when hovering over shared properties of unioned table types. Go to Definition now also returns multiple locations when the property is defined in different union members (#1018)
External Contributions
- Sync ignoreGlobs default options by @lopi-py in #1304
- Support @deprecated and Client Tracker's LuauTypes by @MaximumADHD in #1299
- Update Roblox Plugin Icons by @Barocena in #1301
- feat: convert quotes to backticks on
{inside strings by @lopi-py in #1298
Full Changelog: 1.58.0...1.59.0
1.58.0
Immutable
release. Only release title and notes can be modified.
[1.58.0] - 2025-12-14
Added
Instance:IsPropertyModified()andInstance:ResetPropertyToDefault()will now typecheck and autocomplete against real properties (#1273)- Studio Plugin: You can now configure
hostin Settings to change from localhost (#1280)
Changed
- Sync to upstream Luau 0.703
- VSCode: add more pointers towards using the Studio Plugin when Rojo information is not available (#1279)
- Studio Plugin:
Settings.debugis replaced withSettings.logLevel(#1280)
Fixed
- Fixed missing newline in log messages when using
luau-lsp analyze(#1284) - Fixed crash when configuring
luau-lsp.types.disabledGlobalson a global extern type property (#1286) - Changes to
.config.luauwill now correctly reset the configuration cache and reload configuration (#1277) - Studio Plugin: fixed some issues with untracking where connections are not cleaned up (#1280)
- Fixed incorrect old solver mode configured for the null workspace (default workspace when a Luau file is not part of an opened folder) when
FFlag::LuauUseWorkspacePropToChooseSolverand new solver is enabled. This would lead to features such as autocompletion not working. (#1292)
External Contributions
- Sync to Luau 0.702, remove deprecated usages by @checkraisefold in #1282
- fix(cli): add missing newline to log messages by @zoon in #1284
- fix: correct variable in clearDisabledGlobals for ExternType by @zoon in #1286
- fix: enable automatic imports server side by @lopi-py in #1290
- Make plugin installation easy and discoverable by @zovits in #1279
- Refactor studio plugin by @zovits in #1280
New Contributors
Full Changelog: 1.57.1...1.58.0
1.57.1
Immutable
release. Only release title and notes can be modified.
[1.57.1] - 2025-11-30
Fixed
- Fixed builtin Roblox definitions no longer loading into the language server on VSCode
Full Changelog: 1.57.0...1.57.1
1.57.0
Immutable
release. Only release title and notes can be modified.
[1.57.0] - 2025-11-30
Added
.config.luauresolution now respects resolution limits and timeouts (#1246)- Added
luau-lsp.completion.showKeywords(default:true) to configure whether keywords (if/then/andetc.) are shown during autocomplete (#1243) - In VSCode, You can now override the built-in Roblox definitions by configuring an entry for
@robloxinluau-lsp.types.definitionFiles - In VSCode,
luau-lsp.types.definitionFilesandluau-lsp.types.documentationFilesnow support external URLs (beginning withhttps:///http://). When an external link is used, the VSCode extension will download the types from the server. Types are cached for 1 day. You can force a redownload by runningLuau: Redownload API Typescommand (#970) - In VSCode, added
luau-lsp.server.baseLuaurcto configure a path to the baseline.luaurcfile to load across all workspaces. External editors can already access this by using the--base-luaurccommand line flag. (#1262)
Changed
- Sync to upstream Luau 0.701
Fixed
- Fixed Signature Help not skipping the first 'self' argument when calling a function with method syntax (
:), where the function type was generated by a type function (#1250)
Full Changelog: 1.56.2...1.57.0
1.56.2
Immutable
release. Only release title and notes can be modified.
[1.56.2] - 2025-11-19
Changed
- Sync to upstream Luau 0.700
Fixed
- Fix type mismatch issue for 'types.definitionsFiles' setting in VSCode
External Contributions
- Update Luau to release 0.700 by @aatxe in #1257
- Fix default value for 'types.definitionFiles' setting in vscode extension by @sircfenner in #1254
New Contributors
- @sircfenner made their first contribution in #1254
Full Changelog: 1.56.1...1.56.2
1.56.1
Immutable
release. Only release title and notes can be modified.
[1.56.1] - 2025-11-04
Fixed
- Reverted "Fixed auto-imports not showing up when autocompleting in array-like tables" due to it incorrectly suggesting auto-imports when indexing tables (e.g.,
local x = tbl.pro|)
1.56.0
Immutable
release. Only release title and notes can be modified.
[1.56.0] - 2025-11-02
Added
- The server now accepts DataModel information from the Studio Plugin even when there is no sourcemap present (#1216)
- Added
luau-lsp.completion.imports.includedServicesandluau-lsp.completion.imports.excludedServicesto configure what services show up during auto-importing. If non-empty, only the services listed inincludedServiceswill show up. None of the services listed inexcludedServiceswill ever show up. - Added support for inline documentation comments in global type definition files (relies on name being provided in settings, see below) (#271)
- Support processing
.config.luaufile as per Luau-syntax configuration files RFC
Changed
- Sync to upstream Luau 0.698
- Auto-imports are now enabled by default. Configure
luau-lsp.completion.imports.enabledif you wish to disable it (#619) - Definitions files must now provide a name for the file in settings and command line: i.e.
--definitions:@roblox=path/to/globalTypes.d.luau. This is to support mapping global types back to their original
definitions file for documentation features. Please update your LSP settings (luau-lsp.types.definitionFiles) and command line arguments.
Backwards compatibility has been temporarily preserved, with random names generated. - Table properties are now prioritised above other autocomplete entries (again, fixing a dormant bug)
- Contextual keywords (
else/elseif/end) are prioritised over other autocomplete entries when inside of the relevant statement
Fixed
- Fixed auto-indentation in VSCode when entering a block if there is a comment after the introduction token (e.g.,
if true then -- comment) (#1222) - Fixed auto-imports not showing up when autocompleting in array-like tables (i.e., before the
=sign has been written for a property) (#1062)
External Contributions
- Fix typo in CMakeLists by @checkraisefold in #1234
- Add missing C++ exception header by @theoparis in #1236
- Feature: Support DM info from companion plugin even if no sourcemap.json exists by @zovits in #1216
New Contributors
- @theoparis made their first contribution in #1236
- @zovits made their first contribution in #1216
Full Changelog: 1.55.0...1.56.0