/LuaMinify

Lua source code minifier.

Primary LanguageLuaMIT LicenseMIT

Lua Parsing and Refactorization tools

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.

LuaMinify Command Line Utility Usage

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.

LuaMinify Roblox Plugin Usage

First, download the source code, which you can do by hitting this button:

Click That

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/Todo

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