Это локальный студийный форк graydwarf/godot-gdscript-linter, адаптированный под рабочий стиль AbyssMoth/RimuruDev: меньше магии через строки, больше типизированных связей, русская панель в редакторе и компактный UI для нижней панели Godot.
- Добавлена проверка
reflection-callдля динамических Object API:call(),call_deferred(),has_method(),has_signal(),emit_signal(),set_deferred(),get_indexed(),set_indexed(). Dictionary.get()и обычныйget()/set()не входят в дефолтную проверку, чтобы не шуметь на миграциях сейвов и JSON-подобных данных.- Панель стала компактнее: JSON/HTML/Markdown экспорт спрятан в одно меню
Экспорт. - Настройки Claude Code и CLI убраны из студийного UI форка.
- Добавлена локализация интерфейса:
Auto,Русский,English. reflection-callотображается в фильтре типов, отчёте и HTML-экспорте.- CLI теперь умеет анализировать одиночный
.gdфайл, а не только директории. - Добавлен путь анализа: можно сканировать
res://addons/my_addonбез полного прохода поaddons/. - Исправлены ложные срабатывания
unused-variable/unused-parameterдля propertyget/setи generic-типов с запятыми.
- Скопируйте
addons/gdscript-linterв проект Godot. - Включите плагин:
Проект > Настройки проекта > Плагины. - Откройте нижнюю вкладку
Code Quality. - Нажмите
Сканировать. - В настройках выберите язык
Auto,РусскийилиEnglish.
Если редактор Godot уже на русском, режим Auto сам выберет русский интерфейс.
| Проверка | Уровень | Что ищет |
|---|---|---|
| Длина файла | Warning/Critical | Файлы длиннее настроенных лимитов |
| Длина функции | Warning/Critical | Слишком длинные функции |
| Сложность | Warning/Critical | Высокую цикломатическую сложность |
| Количество параметров | Warning | Слишком много параметров функции |
| Вложенность | Warning | Слишком глубокие блоки |
| TODO/FIXME | Info/Warning | Маркеры техдолга |
| Print-вызовы | Warning | Оставленные debug print |
| Магические числа | Info | Числа без именованных констант |
| Закомментированный код | Info | Мёртвый код в комментариях |
| Пропущенные типы | Info | Переменные без type hints |
| Рефлексия | Warning | Динамические вызовы call()/has_method() и похожие API |
| God Class | Warning | Классы со слишком большим числом членов |
| Naming | Info/Warning | Нарушения соглашений имён |
| Unused | Info/Warning | Неиспользуемые переменные и параметры |
| ASCII/Strict/Sealed | Warning/Critical | Дополнительные защитные правила |
Для осознанных исключений используйте директивы:
# gdlint:ignore-line:reflection-call
target.call("method_name")Поддерживаются:
| Директива | Область |
|---|---|
gdlint:ignore-file |
весь файл |
gdlint:ignore-below |
от строки до конца файла |
gdlint:ignore-function |
вся функция |
gdlint:ignore-block-start/end |
блок кода |
gdlint:ignore-next-line |
следующая строка |
gdlint:ignore-line |
текущая строка |
Для длинных конфигов можно использовать pinned exceptions:
# gdlint:ignore-file:file-length=340Так линтер не будет ругаться, пока файл не станет длиннее зафиксированного значения.
Панель автоматически синхронизирует настройки в gdlint.json. Также можно использовать .gdlint.cfg:
[limits]
file_lines_soft = 200
file_lines_hard = 300
function_lines = 30
function_lines_critical = 60
max_parameters = 4
max_nesting = 3
cyclomatic_warning = 10
cyclomatic_critical = 15
[checks]
file_length = true
function_length = true
cyclomatic_complexity = true
parameters = true
nesting = true
todo_comments = true
print_statements = true
empty_functions = true
magic_numbers = true
commented_code = true
missing_types = true
reflection_calls = true
god_class = true
naming_conventions = true
unused_variables = true
unused_parameters = true
ascii_only = true
strict_limits = true
sealed = true
[scanning]
scan_addons = false
included_addons = gdscript-linter, my-other-addon
excluded_addons = some-third-party-addon
[exclude]
paths = addons/, .godot/, tests/mocks/Форк сохраняет MIT-лицензию оригинального проекта. Локальные изменения поддерживаются для студии AbyssMoth/RimuruDev.