Spec-Zone.ru › Qt

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API