Об этом проекте

GDScript Formatter — это инструмент командной строки для форматирования и линтинга файлов GDScript для Godot 4. Он построен на парсере Tree-sitter GDScript и стремится следовать официальному руководству по стилю GDScript. Проект заявляет, что используется для тестирования и улучшения парсера, обеспечивающего поддержку GDScript в таких редакторах, как Zed, Helix, Neovim и Emacs. Возможности форматирования включают работу с отдельными файлами, папками или несколькими путями, форматирование на месте или вывод в stdout, автоматический перенос строк с настраиваемой максимальной длиной строки и переупорядочивание кода в соответствии с руководством по стилю (сначала переменные, затем функции и т. д.). Режим проверки возвращает код выхода 1, когда требуются изменения, для использования в системах сборки. Безопасный режим и флаг --verify-structure повторно разбирают отформатированный вывод и отклоняют его, если структура отличается от входной; в README отмечается, что это несовершенная проверка, а не гарантия семантической эквивалентности. Конфигурация поддерживает пробелы или табуляцию, размер отступа, пустые строки вокруг определений, нормализацию стиля кавычек и многое другое. Настройки можно совместно использовать через файл .editorconfig, используя стандартные ключи плюс ключи с префиксом gdscript_formatter_; флаги командной строки переопределяют значения EditorConfig. Файлы или каталоги можно исключить с помощью --exclude или через gdscript_formatter_exclude. Участки кода можно сохранить с помощью комментариев # fmt: off и # fmt: on. Встроенный линтер проверяет проблемы стиля и соглашений и выводит filepath:line:rule:severity: description. Правила охватывают соглашения об именовании (функции, классы, сигналы, переменные, аргументы, переменные циклов, перечисления, константы), дублированные вызовы load, отдельно стоящие выражения, ненужный pass, неиспользуемые аргументы, самосравнение, приватный доступ, максимальную длину строки и ненужный else после return. Правила можно отключать, а конкретные строки игнорировать с помощью комментариев gdlint-ignore. Флаг --pretty обеспечивает более читаемый вывод. Установка выполняется через готовые бинарные файлы для Windows, macOS и Linux со страницы релизов, с пакетами сообщества для Arch Linux (AUR), Windows (Scoop, WinGet) и действием настройки GitHub Actions. Доступен аддон для Godot 4 для использования непосредственно в редакторе, включая форматирование при сохранении, управляемое через EditorConfig. Интеграции с редакторами документированы для VSCode, Zed, Helix, JetBrains Rider и Sublime Text. Предоставлена конфигурация pre-commit хука для запуска форматтера и линтера перед коммитами. Проект написан на Rust и собирается с помощью cargo. Его структура разделяет правила форматирования, рендеринг и перенос строк, переупорядочивание кода, безопасный режим, поддержку EditorConfig и правила линтера. Тесты используют пары файлов вход/ожидаемый результат, включены бенчмарки и скрипты профилирования. В README описан трёхэтапный конвейер: разбор с помощью Tree-sitter, построение промежуточного представления и рендеринг итогового вывода. Проект распространяется под лицензией MIT.