不喜欢广告? 无广告 今天

Lua Code Formatter

开发人员文本
广告 移除?
广告 移除?

指导

Lua Code Formatter

Lua Code Formatter

Paste your Lua code and get a cleanly indented, evenly spaced version in one click. The formatter understands Lua block structure (if/then/end, do/end, function/end, repeat/until) and normalizes operator spacing without sending your code anywhere — everything runs in your browser, so it works for proprietary game scripts, embedded device firmware, and config snippets.

如何使用

  1. Paste your Lua source into the input area, or click 尝试一个示例 加载示例。
  2. Pick your indent style: 2 spaces (default), 4 spaces, or tabs.
  3. 切换 Preserve comments if you want to strip both line and block comments instead of keeping them.
  4. 切换 合并多个空行 to merge runs of empty lines into a single break.
  5. 点击 格式. Use the copy or download icon to grab the result.

特征

  • Block-aware indentation – Tracks Lua keywords (then, do, repeat, function, end, until, else, elseif) to produce consistent nesting.
  • 操作符间距 – Normalizes spacing around =, ==, ~=, .., arithmetic, and comparison operators while leaving table indexing (t.x) and method calls (obj:m()) tight.
  • 字符串与注释安全 – Long strings ([[...]], [=[...]=]) and block comments are preserved verbatim; nothing inside them is reformatted.
  • Indent style choice – 2 spaces, 4 spaces, or tabs.
  • Comment control – Keep your comments or strip them all.
  • Blank-line cleanup – Optional collapse of long stretches of empty lines.
  • Privacy by default – 100% client-side, no upload, no AI round-trip.

Who It Is For

Lua shows up in game scripting (Roblox, Love2D, World of Warcraft addons, Garry’s Mod), embedded environments (OpenWrt, Redis modules, Neovim configs), and many CI pipelines. If you write or review Lua often, you want a fast, deterministic formatter that does not need a local toolchain. Drop in a snippet from a forum post, a co-worker’s pull request, or a generated config and clean it up instantly.

广告 移除?

常问问题

  1. Why does Lua use end instead of curly braces?

    Lua was designed for embeddability and readability, so its authors chose keyword-delimited blocks (then/do/repeat ... end, until) over symbols. Keywords are easier to scan in short scripts and avoid clashes with host-language braces when Lua source is embedded in C strings. The trade-off is verbosity — every block must explicitly close, which is exactly why a formatter that gets the open/close pairing right is useful.

  2. What is the difference between short and long strings in Lua?

    Short strings are wrapped in single or double quotes and support escape sequences like \n and \t. Long strings use double square brackets ([[...]]) and an optional equals-sign level ([==[...]==]) so they can contain unescaped quotes and newlines. The bracket level lets you nest content that itself contains closing brackets — pick the smallest level that does not appear in your text.

  3. How does the .. concatenation operator differ from + in other languages?

    In Lua, + is strictly numeric — concatenating strings with + raises an error. The .. operator concatenates strings (auto-coercing numbers to their string form) and is right-associative, which means a..b..c is parsed as a..(b..c). For large concatenations, table.concat is faster because .. allocates a new string on every step.

  4. Why does Lua have both pairs and ipairs?

    ipairs iterates over the array part of a table — keys 1, 2, 3, ... until it hits nil. pairs iterates over every key, including string keys and any holes in the integer sequence. Iteration order with pairs is not guaranteed, while ipairs always proceeds in numeric order. Using the right one is both a correctness and a performance decision.

想要享受无广告的体验吗? 立即无广告

安装我们的扩展

将 IO 工具添加到您最喜欢的浏览器,以便即时访问和更快地搜索

添加 Chrome 扩展程序 添加 边缘延伸 添加 Firefox 扩展 添加 Opera 扩展

记分板已到达!

记分板 是一种有趣的跟踪您游戏的方式,所有数据都存储在您的浏览器中。更多功能即将推出!

广告 移除?
广告 移除?
广告 移除?

新闻角 包含技术亮点

参与其中

帮助我们继续提供有价值的免费工具

给我买杯咖啡
广告 移除?