Перейти к содержимому
Aback Tools Logo

Лучшие расширения форматирования Lua для VS Code

Сравнение лучших расширений форматирования Lua для VS Code: Lua Language Server, StyLua и LuaFormatter - настройка, форматирование при сохранении и браузерный запасной вариант.

DH
Tips & Best Practices11 мин чтения2,600 слов

Неформатированный код Lua быстро накапливает проблемы - непоследовательные отступы, разное расстояние вокруг операторов и блоки, различающиеся у разных участников команды. Правильное расширение VS Code устраняет всё это автоматически. Это руководство охватывает лучшие расширения форматирования Lua для VS Code в 2026 году, как настроить каждое из них, как включить форматирование при сохранении и что использовать, когда установить расширения вообще невозможно.

3+Крупных форматировщика LuaДля VS Code в 2026 году
1M+Установок Lua LSСамое популярное расширение Lua
< 5 сВремя настройкиОт нуля до форматирования при сохранении

Почему форматирование важно для Lua

В Lua нет обязательного стандарта оформления. Парсер языка принимает любые допустимые отступы, любые пробелы вокруг операторов и любую структуру блоков - а это значит, что каждый разработчик по умолчанию следует собственным привычкам. В сольном проекте это нормально. В общем коде, игровом моде или репозитории командных скриптов непоследовательное форматирование создаёт шум в каждом диффе, замедляет проверку кода и усложняет отладку.

Цена непоследовательного стиля Lua

Когда два человека пишут на Lua по-разному - один использует отступы в четыре пробела, другой - табуляцию; один ставит пробелы вокруг операторов, другой нет - каждый коммит содержит изменения форматирования вперемешку с изменениями логики. Рецензенты тратят время на чтение диффов стиля вместо диффов логики. Количество конфликтов слияния растёт. Форматировщик решает эту проблему, нормализуя каждый файл к одному стилю при сохранении, делая диффы чистыми и удобными для проверки.

  • Постоянные отступы - блоки `do`/`end`, `if`/`end`, `function`/`end` всегда оформляются одинаково
  • Единообразные пробелы - пробелы вокруг `=`, `+`, `-`, `..` и других операторов применяются последовательно
  • Дисциплина пустых строк - лишние пустые строки между функциями и внутри циклов нормализуются автоматически
  • Предсказуемая работа со строками - длинные конкатенации строк и многострочные строки раскладываются предсказуемо
  • Общекомандное принудительное применение - общий `.luarc.json` или `stylua.toml` в системе контроля версий гарантирует одинаковые правила для всех

Note

Форматирование отличается от линтинга. Форматировщик меняет только пробелы и компоновку - он никогда не изменяет логику. Линтер вроде [Lua Syntax Validator](/tools/data/validators/lua-syntax-validator) выявляет семантические ошибки, неопределённые переменные и логические проблемы. Нужны оба инструмента.

Лучшие расширения форматирования Lua для VS Code

В Marketplace VS Code есть несколько расширений Lua, но лишь некоторые из них активно поддерживаются и обеспечивают надёжное форматирование. Вот три, которые стоит знать в 2026 году, в порядке рекомендации.

1. Lua Language Server (sumneko.lua) - рекомендуемый вариант

Lua Language Server, опубликованный как `sumneko.lua` в Marketplace VS Code, - самый полный инструмент разработки на Lua, доступный для VS Code. Он устанавливает полноценную реализацию Language Server Protocol (LSP), которая предоставляет диагностику, вывод типов, переход к определению, документацию при наведении, поиск ссылок по всему проекту и встроенный форматировщик - всё в одном расширении.

  • Издатель: sumneko (Tang Liu)
  • ID в Marketplace: `sumneko.lua`
  • Активные установки: 1M+ (по состоянию на 2026 год)
  • Поддерживаемые версии Lua: 5.1, 5.2, 5.3, 5.4, LuaJIT
  • Форматировщик: встроенный, настраивается через `.luarc.json`
  • Форматирование при сохранении: поддерживается нативно
  • Лучше всего подходит: большинству рабочих процессов Lua - игровым скриптам, автономным инструментам, встраиваемым системам

Tip

Lua Language Server также является рекомендуемой основой для разработки под Roblox в сочетании с пакетом определений типов `roblox-lua-lsp`, который добавляет сервисы Roblox, инстансы и глобальные переменные Luau в проверку типов.

2. StyLua (jq-steuersoftware.stylua) - самоуверенная альтернатива

StyLua - это принципиальный форматировщик кода Lua, написанный на Rust и вдохновлённый Prettier. Расширение VS Code оборачивает бинарный файл StyLua и интегрирует его как форматировщик документов. В отличие от Lua Language Server, StyLua - инструмент только для форматирования: он не предоставляет диагностику, документацию при наведении или автодополнение. Зато он даёт детерминированный стиль без споров: вы соглашаетесь со стилем и следуете ему, так же как работает Prettier для JavaScript.

  • Издатель: jq-steuersoftware
  • ID в Marketplace: `jq-steuersoftware.stylua`
  • Поддерживаемые версии Lua: 5.1, 5.2, 5.3, 5.4, LuaJIT, Luau (Roblox)
  • Файл конфигурации: `stylua.toml` (необязателен - хорошо работает с настройками по умолчанию)
  • Форматирование при сохранении: поддерживается нативно
  • Лучше всего подходит: новым проектам, командам, которым нужно форматирование в стиле Prettier без настройки, разработке Roblox Luau

3. LuaFormatter (Koihik.vscode-lua-format) - настраиваемый устаревший вариант

LuaFormatter - более старое расширение, оборачивающее утилиту командной строки `lua-format`. Оно предоставляет обширную конфигурацию - можно по отдельности настроить ширину отступа, максимальную длину строки, пробелы вокруг операторов, отступ продолжения и многие другие правила. Такой уровень контроля полезен при миграции существующего кода, в котором уже есть устоявшийся стиль, который форматировщик должен соблюдать. Однако разработка замедлилась после появления StyLua, а бинарный файл `lua-format` на некоторых платформах требует отдельной установки.

  • Издатель: Koihik
  • ID в Marketplace: `Koihik.vscode-lua-format`
  • Файл конфигурации: `.lua-format` (формат YAML)
  • Лучше всего подходит: существующему коду со сложными требованиями к стилю, детальному по-правиловому контролю
  • Предупреждение: требует отдельной установки бинарного файла `lua-format` на Linux/Mac

Warning

LuaFormatter (Koihik.vscode-lua-format) с 2023 года поддерживается всё хуже. Для новых проектов начинайте с Lua Language Server или StyLua. Обращайтесь к LuaFormatter, только если вашей команде специально нужны его гранулярные параметры конфигурации.

Как настроить Lua LS в VS Code

Установка Lua Language Server занимает меньше двух минут. Вот полный путь настройки от чистой установки VS Code до работающего форматирования при сохранении.

1

Установите Lua Language Server из Marketplace

Откройте VS Code и нажмите Ctrl+P (Cmd+P на Mac), чтобы открыть панель быстрого открытия. Введите `ext install sumneko.lua` и нажмите Enter. VS Code автоматически скачает и установит расширение. Дополнительные бинарные файлы не требуются - бинарник language server поставляется вместе с расширением.

2

Откройте файл .lua и запустите форматирование

Откройте любой файл `.lua` в вашем проекте. Нажмите Shift+Alt+F (Shift+Option+F на Mac), чтобы выполнить Format Document. При первом использовании VS Code покажет запрос на выбор форматировщика по умолчанию для файлов Lua - выберите Lua Language Server. Файл отформатируется сразу, а выбор сохранится в ваших пользовательских настройках.

3

Создайте .luarc.json для конфигурации уровня проекта

Создайте файл `.luarc.json` в корне проекта, чтобы последовательно управлять правилами форматирования и поведением language server для всей команды. Зафиксируйте этот файл в системе контроля версий, чтобы каждый участник получал одинаковые настройки. Минимальная стартовая конфигурация ориентирована на Lua 5.4 и отключает диагностику неопределённых глобальных переменных для проектов с собственными глобалами.

.luarc.json
json
{
  "Lua.runtime.version": "Lua 5.4",
  "Lua.diagnostics.globals": ["myGlobal", "anotherGlobal"],
  "Lua.format.enable": true,
  "Lua.format.defaultConfig": {
    "indent_style": "space",
    "indent_size": "4",
    "max_line_length": "120",
    "trailing_table_separator": "smart"
  }
}
4

Включите форматирование при сохранении

Откройте настройки VS Code с помощью Ctrl+, (Cmd+, на Mac), найдите `format on save` и включите параметр Editor: Format On Save. С этого момента при каждом сохранении файла `.lua` форматировщик будет запускаться автоматически. Чтобы ограничить эту настройку только файлами Lua, не включая её глобально, добавьте её в `.vscode/settings.json` проекта.

.vscode/settings.json
json
{
  "editor.formatOnSave": true,
  "[lua]": {
    "editor.defaultFormatter": "sumneko.lua"
  }
}

Lua Форматировщик - в браузере

Форматируйте код Lua мгновенно в браузере без расширений и установок - вставьте код и получите чистый, структурированный результат за секунды.

Open tool

Настройка форматирования при сохранении

Форматирование при сохранении - самая значимая настройка для разработки на Lua в VS Code. После активации вам никогда не придётся запускать форматировщик вручную - он срабатывает при каждом Ctrl+S. Вот как настроить его правильно для разных командных сценариев.

Пользовательские и рабочие настройки

В VS Code два уровня настроек: пользовательские (применяются ко всем проектам) и рабочие (применяются только к текущему проекту). Для форматирования рабочий уровень почти всегда правильный выбор - он гарантирует, что каждый участник проекта использует один и тот же форматировщик, независимо от личных пользовательских предпочтений. Рабочие настройки находятся в `.vscode/settings.json` в корне проекта и должны быть зафиксированы в системе контроля версий.

Форматирование при сохранении для StyLua

Расширение StyLua для VS Code использует тот же механизм форматирования при сохранении. Установите форматировщик по умолчанию `jq-steuersoftware.stylua` в рабочих настройках. StyLua читает конфигурационный файл `stylua.toml`, если он есть - именно там задаются column_width, indent_type, indent_width и quote_style. Без `stylua.toml` StyLua применяет правила по умолчанию (отступ в два пробела, длина строки 120 символов, двойные кавычки).

stylua.toml
toml
column_width = 120
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 4
quote_style = "AutoPreferDouble"
call_parentheses = "Always"

Tip

Фиксация в репозитории как `.vscode/settings.json`, так и конфигурационного файла форматировщика (`.luarc.json` или `stylua.toml`) гарантирует, что любой участник, открывший проект в VS Code, получит одинаковое поведение форматирования с первого сохранения файла - никаких инструкций по адаптации не требуется.

Исключение файлов из форматирования

Некоторые файлы Lua переформатировать не следует - библиотеки поставщиков, сгенерированный код или минифицированные скрипты. В StyLua добавьте файл `.styluaignore` (с синтаксисом как у `.gitignore`) для исключения путей. В Lua Language Server можно ограничить форматировщик конкретными каталогами с помощью параметра `Lua.workspace.ignoreDir` в `.luarc.json`.

Сравнение LuaFormatter и StyLua

Два наиболее обсуждаемых форматировщика Lua - это LuaFormatter и StyLua. Они придерживаются принципиально разных подходов к философии форматирования, и правильный выбор зависит от контекста вашего проекта. Вот прямое сравнение.

АспектLuaFormatter (Koihik)StyLua
ФилософияВысокая настраиваемостьПринципиальный (в стиле Prettier)
Файл конфигурации`.lua-format` (YAML)`stylua.toml` (TOML, необязателен)
Правила конфигурации30+ отдельных параметров~6 основных параметров
Luau / Roblox✗ Не поддерживается✓ Нативная поддержка Luau
Установка бинарника✗ Отдельный шаг на некоторых ОС✓ Входит в расширение VS Code
Использование в CI/CD✓ Через CLI lua-format✓ Автономный бинарник
Активная поддержка✗ Замедлилась с 2023 года✓ Активно поддерживается
Лучше всего дляСуществующего кода с готовым стилемНовых проектов, Roblox Luau

Если вы начинаете новый проект, выберите StyLua и зафиксируйте конфигурацию. Если вы наследуете код с устоявшимся стилем, настройте LuaFormatter так, чтобы он ему соответствовал. Никогда не смешивайте оба форматировщика в одном проекте.

- Практическое правило форматирования Lua

Lua Language Server и StyLua: могут ли они сосуществовать?

Lua Language Server и StyLua выполняют разные основные задачи - Lua LS это полноценный language server для диагностики и intellisense, StyLua - только форматировщик. Они могут сосуществовать в одной настройке VS Code: установите Lua LS для диагностики и код-интеллекта, а StyLua назначьте форматировщиком по умолчанию для форматирования документов. Эта комбинация даёт лучшее из обоих инструментов. Настройте её в .vscode/settings.json, задав defaultFormatter для [lua] как jq-steuersoftware.stylua, сохранив при этом установленный Lua LS ради его функций LSP.


Встроенный форматировщик Lua LS: когда его достаточно

Для большинства разработчиков встроенного форматировщика Lua Language Server достаточно, и он избавляет от необходимости устанавливать второе расширение. Он справляется со всеми стандартными задачами форматирования и чисто интегрируется с `.luarc.json`. Главная причина добавить StyLua сверху - если ваша команда хочет более строгого принудительного соблюдения стиля (например, конкретного стиля кавычек или соглашений о скобках вызовов), который форматировщик Lua LS сейчас не поддерживает.

Онлайн-форматировщик Lua как запасной вариант

Расширения VS Code - правильное решение для повседневной разработки. Но бывают сценарии, когда нужно отформатировать код Lua, ничего не устанавливая, - и здесь браузерный инструмент изящно закрывает пробел.

Когда вы не можете установить расширения

  • Общие или заблокированные машины - корпоративные рабочие станции, компьютеры в лабораториях или среды CI, где нельзя устанавливать расширения VS Code
  • Быстрая разовая чистка - коллега прислал фрагмент кода Lua на проверку, а вы хотите отформатировать его без переключения контекста
  • Проверка кода без среды разработки - рецензирование pull request на машине, где ваша полная настройка Lua не сконфигурирована
  • Проверки при адаптации - убедиться, что файл правильно отформатирован перед коммитом, не дожидаясь установки полного инструментария
  • Осмотр минифицированного кода - у вас есть результат работы Lua-минификатора, и вы хотите переформатировать его для читаемости

Lua-форматировщик Aback Tools справляется со всеми этими случаями. Вставьте код Lua в редактор, и форматировщик применит единообразные отступы, нормализует пробелы вокруг операторов и приведёт в порядок пустые строки прямо в браузере - без регистрации, без установки, и данные никогда не покидают ваше устройство.

Дополнительные онлайн-инструменты для Lua

Форматирование - лишь один шаг в полном процессе обеспечения качества кода Lua. Несколько других браузерных инструментов покрывают смежные задачи, которые регулярно нужны вместе с форматированием:

  • **Lua Beautifier** - улучшает визуальную компоновку синтаксически корректного, но трудного для чтения кода
  • **Lua Syntax Validator** - проверяет код на ошибки парсинга с построчной диагностикой до запуска
  • **Lua Minifier** - удаляет комментарии, пробелы и пустые строки для развёртывания в продакшене, уменьшая размер файлов скриптов
  • **Lua Obfuscator** - переименовывает переменные и кодирует строки, защищая игровые скрипты от поверхностного реверс-инжиниринга
  • **Lua Deobfuscator Helper** - повышает читаемость обфусцированных скриптов для отладки и анализа

Lua Beautifier

Приведите код Lua в порядок с правильными отступами, пробелами и переносами строк прямо в браузере - без расширений, установки и загрузок на сервер.

Open tool

Лучшие практики форматирования Lua

Форматировщик работает с пробелами, но качество кода Lua этим не ограничивается. Эти практики дополняют ваш форматировщик, поддерживая кодовые базы Lua согласованными, читаемыми и сопровождаемыми в любом масштабе.

Фиксируйте конфигурацию форматировщика в системе контроля версий

`.luarc.json` для Lua LS, `stylua.toml` для StyLua или `.lua-format` для LuaFormatter должны находиться в корне проекта и быть зафиксированы в репозитории. Это гарантирует, что каждый участник - и каждый запуск CI - использует одинаковые правила форматирования. Без зафиксированной конфигурации каждый разработчик откатывается к собственным настройкам расширения, и расхождение форматирования со временем возвращается.

Добавьте проверку форматирования в CI

Форматирование при сохранении в VS Code помогает только тем, кто использует VS Code с установленным расширением. Проверка в CI ловит всё, что проскользнуло мимо: участников с другими редакторами, быстро исправленные файлы или сгенерированный код Lua. Флаг `--check` у StyLua завершается ненулевым кодом, если какой-либо файл отформатирован неверно, - это позволяет легко прерывать задание GitHub Actions или GitLab CI при нарушениях стиля.

Отделяйте коммиты форматирования от коммитов логики

Если вы впервые вводите форматировщик в существующий код, прогоните его по всем файлам одним выделенным коммитом без других изменений. Подпишите его явно (например, `chore: apply lua formatter to all files`). Так весь шум от форматирования останется в одном коммите, а все последующие коммиты будут содержать только изменения логики - и `git blame` останется полезным на каждой строке.

Tip

Проверяйте синтаксис Lua до и после первого запуска нового форматировщика. [Lua Syntax Validator](/tools/data/validators/lua-syntax-validator) сразу покажет любые ошибки парсинга, и вы будете уверены, что результат форматировщика безопасно фиксировать.

Используйте согласованные имена локальных переменных

Форматировщики не переименовывают переменные - это ваша ответственность. Сообщество Lua в основном использует `snake_case` для переменных и функций и `PascalCase` для таблиц уровня модуля и конструкций, подобных классам. Договоритесь о соглашении с командой и задокументируйте его в `CONTRIBUTING.md` проекта. Если вы работаете с Roblox Luau, руководство по стилю Roblox предписывает `PascalCase` для инстансов и сервисов и `camelCase` для локальных переменных - учитывайте это различие, прежде чем слепо применять соглашения сообщества Lua.

Warning

Будьте осторожны, запуская форматировщики на обфусцированных файлах Lua. Обфусцированные скрипты намеренно используют необычное форматирование и именование, чтобы сопротивляться анализу. Их переформатирование может изменить кодирование строк или сломать намеренно сжатые однострочные блоки. Если вам нужно прочитать обфусцированный код Lua, сначала используйте [Lua Deobfuscator Helper](/tools/data/obfuscators/lua-deobfuscator-helper) - а не форматировщик.

Key takeaways

  • Lua Language Server (sumneko.lua) - лучшее универсальное расширение Lua для VS Code: форматирование, диагностика, вывод типов и код-интеллект в одной установке.
  • StyLua - лучший форматировщик для новых проектов и разработки Roblox Luau, обеспечивающий принципиальное единообразие в стиле Prettier с минимальной настройкой.
  • LuaFormatter - настраиваемый устаревший вариант для существующих кодовых баз, которым нужен гранулярный контроль стиля, но он поддерживается хуже альтернатив.
  • Фиксируйте конфигурацию форматировщика (.luarc.json или stylua.toml) в системе контроля версий, чтобы все участники автоматически получали одинаковое поведение форматирования.
  • Добавьте проверку форматирования в CI с помощью StyLua --check, чтобы ловить неформатированные файлы до слияния независимо от редактора участников.
  • Lua-форматировщик Aback Tools решает разовые задачи форматирования во вкладке браузера - без расширений, установок и загрузок на сервер.
  • Никогда не запускайте обычный форматировщик на обфусцированном коде Lua; сначала восстановите читаемость с помощью Lua Deobfuscator Helper.

Частые вопросы

The best Lua formatter for VS Code in 2026 is the Lua Language Server (sumneko.lua), published by sumneko. It is the most actively maintained, installs a full LSP with diagnostics, type inference, and formatting built in. It supports .luarc.json for project-level configuration and works out of the box for most Lua workflows including Roblox, LÖVE, and standalone scripting. StyLua (jq-steuersoftware.stylua) is a strong alternative if you want an opinionated, deterministic formatter focused purely on style consistency.

Open VS Code settings with Ctrl+, (Cmd+, on Mac), search for "format on save", and enable Editor: Format On Save. Then confirm that the Lua Language Server (or your preferred Lua formatter extension) is set as the default formatter for .lua files. You can also set this per-workspace in your .vscode/settings.json file by adding: "editor.formatOnSave": true and "[lua]": {"editor.defaultFormatter": "sumneko.lua"}.

Yes. The Lua Language Server (sumneko.lua) includes a built-in formatter that handles indentation, spacing around operators, blank line management, and consistent block structure. It is configured via .luarc.json in your project root. The formatter is not as opinionated as StyLua but gives you much more control over individual rules, which makes it preferred for teams with existing Lua codebases that have established style conventions.

StyLua is an opinionated Lua code formatter inspired by Prettier. It enforces a consistent style with minimal configuration - you don't configure individual rules, you accept the style. This makes it ideal for new projects and teams that want zero formatting debates. LuaFormatter is an older, more configurable tool that lets you fine-tune indent size, max line width, operator spacing, and more. Use StyLua for new greenfield projects; use LuaFormatter when you need granular control over an existing codebase.

Yes. The Aback Tools Lua Formatter runs entirely in your browser with no installation required. Paste your Lua code into the editor and the formatted output is ready instantly - no extension, no terminal command, no VS Code needed. This is especially useful on shared or locked-down machines, in CI workflows where you just need a quick check, or when reviewing someone else's Lua code on a machine where you have not set up your development environment.

The standard Lua Language Server extension (sumneko.lua) supports Lua 5.1-5.4 and LuaJIT. For Roblox Luau specifically, the recommended approach is to install the "Roblox LSP" extension or use Rojo with the roblox-lua-lsp setup, which extends the Lua Language Server with Roblox-specific globals, services, and Luau type syntax. Formatting for Roblox scripts works with StyLua as well, since StyLua supports Luau syntax natively.

A .luarc.json file is the project-level configuration file for the Lua Language Server extension. It sits at the root of your project and tells the language server how to behave: which Lua version to target (5.1, 5.2, 5.3, 5.4, or LuaJIT), which globals exist, what workspace libraries to load, and what formatting rules to apply. Committing .luarc.json to version control ensures every team member gets identical language server and formatter behaviour regardless of their local VS Code settings.

StyLua is the best choice for CI because it is available as a standalone binary with no runtime dependency. Download the StyLua binary for your CI platform, add a step that runs "stylua --check ." to verify formatting, and fail the pipeline on any style violations. LuaFormatter can also be used via the command line with "lua-format --check". For a quick no-install check during code review, the Aback Tools Lua Formatter at abacktools.com/tools/data/formatters/lua-formatter handles the job in a browser tab.

ShareXLinkedIn