v2.0.0 #924
JohnnyMorganz
started this conversation in
General
v2.0.0
#924
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
StyLua has officially stabilised to v2.0.0. With this, we make a commitment that the formatting output is fairly stable across minor version bumps. More details: #459
Key Changes
This release updates the internal Lua parser, bringing performance improvements and new Luau syntax features.
LuaJIT is now separate from Lua5.2, with its own feature flag.
Runtime syntax selection
By default, StyLua runs with a parser that is able to handle a variety of different Lua syntaxes at once, with a goal of being easily usable on different codebases. However, there are times where 2 different syntax definitions conflict, introducing ambiguity. For example, Lua 5.2 label syntax (
::label::
) conflicts with Luau's type assertion syntax (x :: number
), and the latter ends up taking priority.Now, you can select a particular style of syntax at runtime to deal with these ambiguities.
In your
stylua.toml
file, add:Or, specify
--syntax lua52
on the command line.The default remains "All" to handle all syntaxes as much as possible.
More details: #407
Updated Configuration Resolution
Previously, StyLua would only search for a
stylua.toml
(or.stylua.toml
) file in the directory where the binary was executed - the current working directory (or its ancestors, if--search-parent-directories
is enabled). This means that any configuration files present in subdirectories are not taken into account.This release changes config resolution to pick up
stylua.toml
files in subdirectories. Now, a file will format based on thestylua.toml
configuration closest to its location. StyLua will search backwards from the file location to the current working directory for a configuration file. By default, searching will stop at the current working directory, however it will continue if--search-parent-directories
is enabled.More details: #916
[2.0.0] - 2024-11-17
Breaking Changes
stylua-win64.zip
,stylua-linux.zip
andstylua-macos.zip
are no longer produced in GitHub releases, in favour of more specific names (e.g.,stylua-windows-x86_64
,stylua-linux-x86_64
andstylua-macos-x86_64
).--stdin-filepath
no longer respects ignore files by default, in line with passing files directly to the command line. Now,stylua --stdin-filepath foo.lua -
will still format the stdin even iffoo.lua
was in a.styluaignore
file. Use--respect-ignores
to preserve the original behaviour.Config
struct in stylua Rust libraryAdded
syntax
to help handle ambiguous syntax. By default, StyLua builds and runs with a parser to handle all Lua versions. However, the syntax of some Lua versions conflict with eachother: most notably, Lua 5.2+ goto label syntax::label::
and Luau type assertion operator::
. This option allows choosing what syntax to parse, to handle these conflicts. (#407)space_after_function_names
to specify whether to include a space between a function name and parentheses (#839)Changed
.stylua.toml
config resolution now supports looking up config files next to files being formatted, recursively goingupwards until reaching the current working directory, then stopping (unless
--search-parent-directories
was specified).For example, for a file
./src/test.lua
, executingstylua src/
will look for./src/stylua.toml
and then./stylua.toml
.collapse_simple_statement
is enabled, if the enclosing block is a return, we will check if the return expression is "simple" (currently, not containing a function definition) (#898)Fixed
:
and the function name (#890)--verify
panicing due to overflow for very large Hex numbers (#875, #889)This discussion was created from the release v2.0.0.
Beta Was this translation helpful? Give feedback.
All reactions