StyLua обеспечивает единый, детерминированный стиль кода Lua для всех проектов
Форматирует исходный код Lua в детерминированный стиль из разобранного AST, производя одинаковый вывод независимо от исходного пробела или разрывов строк. Создано JohnnyMorganz для разработки на настольных ПК, инструмент нацелен на проекты Lua, Luau и LuaJIT и интегрируется на уровне редактора или CI. Он предлагает интеграцию LSP, CLI с режимами проверки и различий, а также конфигурацию TOML для каждого проекта, что делает его подходящим для разработчиков и создателей Roblox, которым нужно предсказуемое, автоматизированное форматирование.
Что это делает и кто получает выгоду
StyLua переписывает код Lua из разобранного представления, так что файлы следуют единому, предвзятому стилю после форматирования. Он поддерживает несколько диалектов Lua, включая Luau и LuaJIT, и предоставляет CLI, а также поддержку протокола языка сервера для интеграции с редакторами. Команды, которые хотят единого обязательного стиля, могут добавить файл TOML на уровне проекта или .editorconfig, чтобы определить отступы, ширину столбцов и предпочтения кавычек.
Как это взаимодействует с системами разработки
Инструмент предназначен для быстрых, повторяемых запусков в локальных и автоматизированных рабочих процессах. Его реализация на Rust обеспечивает низкую задержку форматирования, подходящую для действий редактора при сохранении или для задач по всему репозиторию. Он предоставляет режимы проверки и разницы для CI и поддерживает .styluaignore для исключения путей. Форматирование диапазона ограничивает изменения выбранными регионами кода, что уменьшает количество изменений в больших файлах во время инкрементальных правок.
Безопасность, конфигурация и удобство использования
StyLua работает детерминированно и предлагает хуки редактора для уменьшения ручных шагов. Опция LSP предоставляет форматирование в реальном времени внутри поддерживаемых редакторов, в то время как флаги CLI позволяют проверять стиль без изменения файлов. Конфигурация через stylua.toml сохраняет правила в корне проекта, а файлы игнорирования предотвращают нежелательные переписывания. Пользователи с минимальным опытом Lua могут полагаться на значения по умолчанию; опытные пользователи могут настраивать правила через схему TOML.
Рекомендуется для команд, которым требуется автоматическое, повторяемое форматирование Lua
StyLua подходит разработчикам и создателям Roblox, которым требуется согласованное форматирование по всему коду и быстрое средство для редактора или CI-процессов. Ожидайте одноразовых усилий по настройке, чтобы соответствовать вашему предпочтительному стилю, затем автоматизируйте форматирование как шаг перед коммитом или CI, чтобы обеспечить его соблюдение. Рекомендуется.