Skip to main content
https://travis-ci.org/boolangery/py-lua-style.svg?branch=master https://img.shields.io/pypi/v/luastyle.svg https://img.shields.io/pypi/pyversions/luastyle.svg

A Lua code formatter written in Python.

Installation:

The package can be installed through pip:

$ python3.6 -m pip install luastyle

It will install the shell command ‘luastyle’.

Options

These are the command-line flags:

Usage: luastyle [options] file_or_dir1 file_or_dir2 …

CLI Options:
  --version                       Show program's version number and exit
  -h, --help                      Show this help message and exit
  -i, --in-place                  Write output in-place, replacing input
  --config=F                      Path to config file
  --config-generate               Generate a default config file
  --type=EXT                      File extension to indent (can be repeated) [lua]
  -d, --debug                     Enable debugging messages
  -j N, --jobs=N                  Number of parallel jobs in recursive mode
  -C, --check-bytecode            Check lua bytecode with luac, $LUAC can also be set to
                                  use a specific compiler


Beautifier Options:
  -a, --space-around-assign       Ensure one space before and after assign op "="
  -c S, --indent-char=S           Indentation character [" "]
  -f, --check-field-list          Format field-list (table)
  -l N, --indent-level=N          Initial indentation level [0]
  -p, --check-param-list          Format var-list, name-list and expr-list
  -s N, --indent-size=N           Indentation size [2]
  -t, --indent-with-tabs          Indent with tabs, overrides -s and -c
  --close-on-lowest-level         If several closing tokens, indent on lowest token level
  -F N, --func-cont-level=N       Continuation lines level in function arguments [2]
  -I N, --if-cont-level=N         If statement continuation line level [2]
  -M, --check-line-comment-text   Ensure that line comments text is started by at least N char
  -N N, --com-txt-space-size=N    If --check-line-comment-text is enabled, configure the number of spaces [1]
  -S, --skip-sem-colon            Skip all semi-colon after statements
  --break-if                      Break mono-line if statement
  --break-while                   In while and repeat statement, ensure newline after
                                  "do" or "repeat" and before "end" or "until" keyword
  --break-all                     Enable --break-if --break-for and --break-while and
                                  before "end" or "until" keyword
  --force-call-spaces             Force spaces before opening parenthesis in function
                                  call [0]
  --call-spaces-size=N            If --force-call-spaces is enabled, configure the
                                  number of spaces
  --strict                        Enable all features

Loading settings from environment or .luastylerc

In addition to CLI arguments, you may pass a config file via:

  • the LUASTYLE_CONF environment variables pointing to a config file

  • a .luastylerc file located in your user directory

Options examples

Continuation lines level in function arguments (-F)

-F N, --func-cont-level=N   Continuation lines level in function arguments [2]

Given:

local function process(param_1, param_2, param_3,
  param_4, param_5, param_6)
  return do_something()
end
$ luastyle -c "." -F 2 source.lua
local function process(param_1, param_2, param_3,
....param_4, param_5, param_6)
..return do_something()
end

Comments formatting options (-M, -N)

Available options are:

-M, --check-line-comment-text Ensure that line comments text is started by at least N char
-N N, --com-txt-space-size=N  If --check-line-comment-text is enabled, configure the number of spaces [1]

Given:

--Lorem ipsum dolor sit amet
local foo --In sodales elit id orci mollis varius
$ luastyle -M -N 1 source.lua
-- Lorem ipsum dolor sit amet
local foo -- In sodales elit id orci mollis varius

Break If statement option (–break-if)

Given:

if condition then return success() else return failure() end
$ luastyle --break-if source.lua
if condition then
  return success()
else
  return failure()
end

Format table field-list (-f)

This option ensure that:
  • field separator in table (‘,’ or ‘;’) are trailing

  • comma is preceded by one space and followed by two spaces

The keyword ‘@luastyle.disable’ placed in a comment just after the opening brace will disable this feature in the concerned table.

Given:

local days = {
  monday = 1,
  tuesday = 2
, wednesday = 3
}

local n = {1  , 2,3}

local t = {
  -- @luastyle.disable
  1,    2,    4,
  8,    16,   32
}
$ luastyle -f source.lua
local days = {
  monday = 1,
  tuesday = 2,
  wednesday = 3
}

local n = {1, 2, 3}

local t = {
  -- @luastyle.disable
  1,    2,    4,
  8,    16,   32
}

Indent closing token (–close-on-lowest-level )

Given:

describe('must indent', function()
  done()
end)
$ luastyle --close-on-lowest-level source.lua
describe('must indent', function()
    done()
  end)
$ luastyle source.lua
describe('must indent', function()
    done()
end)

Function call formatting options (–force-call-spaces, –call-spaces-size)

Given:

build (foo)
$ luastyle --force-call-spaces source.lua
build(foo)
$ luastyle --force-call-spaces --call-spaces-size=1 source.lua
build (foo)

Release files for luastyle 1.3.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for luastyle 1.3.5
File Size Uploaded
luastyle-1.3.5.tar.gz 119.1 kB Details

Release files / luastyle-1.3.5.tar.gz

Download URL luastyle-1.3.5.tar.gz
Size 119.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2c96c15facfa4f2546c53b40a5c31680809e2a3e62c88783d9a5d3bd1fa8370b
BLAKE2b-256 checksum
How to use checksums
0545351af7f604126ffe01bf85b7a705428debaa12022368db7ac66cb5ca5016
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.3.5 This release

1 release file

1.3.4

1 release file

1.3.3

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.4

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2

1 release file

1.1

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page