qmllint
qmllint — это инструмент, поставляемый с Qt, который проверяет синтаксическую корректность файлов QML. Он также предупреждает о некоторых антипаттернах QML. Если вы хотите отключить определённый тип предупреждения, вы можете найти соответствующий флаг, передав --help в командной строке.
По умолчанию некоторые проблемы приведут к предупреждениям, которые будут выведены, и приведут к ненулевому коду выхода. Однако незначительные проблемы (например, неиспользуемые импорты) по умолчанию являются просто информационными сообщениями и не повлияют на код выхода. qmllint очень настраиваемый и позволяет отключать предупреждения или изменять их обработку. Пользователи могут свободно превратить любую проблему в предупреждение, информационное сообщение или полностью отключить её.
qmllint предупреждает о:
- Неквалифицированных обращениях к свойствам.
- Использовании обработчиков сигналов без соответствующего сигнала.
- Использовании оператора with в QML.
- Неиспользуемых импортах.
- Устаревших компонентах и свойствах.
- И многих других вещах.
Примечание: Для корректной работы qmllint требуется информация о типах. Эта информация предоставляется модулями QML в путях импорта. По умолчанию в качестве путей импорта используются текущая директория, а также пути импорта для встроенных типов Qt. Чтобы добавить дополнительные пути импорта, не включенные в стандартные, добавьте их с помощью флага -I.
Для получения обзора и объяснений всех доступных параметров командной строки запустите qmllint --help.
Отключение предупреждений в строке
Вы можете в любой момент временно отключить предупреждения в файле, используя // qmllint disable.
Вы можете сделать это в конце строки, когда одна строка вызывает предупреждения:
Item {
property string foo
Item {
property string bar: foo // qmllint disable unqualified
}
} В качестве альтернативы вы можете отключить комментарии для блока строк, поместив комментарий в строку, содержащую только // qmllint disable, завершив блок // qmllint enable:
Item {
property string foo
Item {
// qmllint disable unqualified
property string bar: foo
property string bar2: foo
// qmllint enable unqualified
}
} qmllint интерпретирует все однострочные комментарии, начинающиеся с qmllint, как директивы. Таким образом, вы не можете начать комментарий таким образом, если не хотите включить или отключить предупреждения.
Примечание: Как показано в примерах выше, предпочтительно явно указать предупреждение или список предупреждений, которые вы хотите отключить, вместо отключения всех предупреждений. Это можно сделать, просто перечислив категории предупреждений после qmllint disable (названия совпадают с опциями, перечисленными в --help).
Настройки
Помимо передачи параметров командной строки, вы также можете настроить qmllint с помощью файла настроек. Командная строка --write-defaults сгенерирует его для вас.
Файлы настроек имеют имя .qmllint.ini и выглядят так:
[General] AdditionalQmlImportPaths= DisableDefaultImports=false OverwriteImportTypes= ResourcePath= [Warnings] BadSignalHandler=warning Deprecated=warning ImportFailure=warning InheritanceCycle=warning MultilineStrings=info PropertyAlias=warning RequiredProperty=warning TypeError=warning UnknownProperty=warning UnqualifiedAccess=warning UnusedImports=info WithStatement=warning
Уровни предупреждений могут быть установлены в info, warning или disable так же, как и параметры командной строки.
qmllint автоматически будет искать файл настроек в местоположении файла qml, который проходит проверку. Он также проверяет все родительские директории, чтобы найти этот файл и автоматически применить настройки. Вы можете отключить это поведение, используя --ignore-settings. Вы всегда можете переопределить эти значения по умолчанию, указав параметры командной строки, которые имеют приоритет над уровнями предупреждений в настройках.
Скриптинг
qmllint может выводить JSON с помощью опции --json , которая вернёт корректный JSON с сообщениями о предупреждениях, местоположением файла и строки предупреждений и их уровнем серьезности. Это можно использовать для более легкой интеграции qmllint в ваши пре-коммит-хуки или тесты CI.
См. также Файлы описания типов.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qtquick-tool-qmllint.html