This is my fork of stravant's LuaMinify. It is identical to the original LuaMinify, but includes a few open pull requests that I consider very useful, but that have not been merged for years (stravant no longer seems to actively maintain LuaMinify):
- #17: fix import on case-sensitive filesystems
- #16: Significantly more efficient local variable naming
- #12: allow running from outside of the script dir
A collection of tools for working with Lua source code. Primarily a Lua source code minifier, but also includes some static analysis tools and a general Lua lexer and parser.
Currently the minifier performs:
- Stripping of all comments and whitespace
- True semantic renaming of all local variables to a reduced form
- Reduces the source to the minimal spacing, spaces are only inserted where actually needed.
The LuaMinify
shell and batch files are given as shortcuts to running a command line instance of the minifier with the following usage:
LuaMinify sourcefile [destfile]
Which will minify to a given destination file, or to a copy of the source file with _min appended to the filename if no output file is given.
First, download the source code, which you can do by hitting this button:
Then copy the RobloxPlugin
folder from the source into your Roblox Plugins directory, which can be found by hitting Tools->Open Plugins Folder
in Roblox Studio.
Features:
- Lua scanner/parser, which generates a full AST
- Lua reconstructor
- minimal
- full reconstruction (TODO: options, comments)
- TODO: exact reconstructor
- support for embedded long strings/comments e.g. [[abc [[ def ]] ghi]]
Todo: - use table.concat instead of appends in the reconstructors