2017-01-11 14 views
4

Для написания повторно используемого кода QML я ищу (статический код) checker, который может обнаруживать нежелательные зависимости в разных qml-файлах.Проверка зависимости/повторного использования QML (статический код)

Для того, чтобы привести пример, когда B.qml зависит от идентификаторов от A.qml:

A.qml

Item { 
    id: dependencyId 
    ... 
    delegate: B {} 
} 

B.qml

Item { 
    id: delegateB 
    ... 
    text: dependencyId.text 
} 

в качестве текстовый элемент B.qml зависит от идентификатора от A.qml, этот код не может быть повторно использован правильно.

Пока идентификатор элемента в A.qml не изменится, этот код будет скомпилирован/запущен, и, следовательно, зависимость не будет замечена. Я пробовал QmlLint, но это не дает никаких ошибок.

Есть ли статические проверки кода для QML, которые могут это проверить?

+1

Вы можете использовать 'qmlscene' для каждого файла. Если есть такая зависимость, она поднимет «ReferenceError» – derM

+0

Точно, что я искал (для выполнения с qmllint), спасибо! Добавлен параметр --quit, чтобы включить его в мою сборку. – Bartel

ответ

2

Добавлен пользовательский шаг сборки в sourceDirectory, в котором запущен qmlscene для каждого файла * .qml, фильтруя результаты только по «опорным» ошибкам.

спасибо derM за подсказку по использованию qmlscene.

Команда: найти

Аргументы:. -name '* .qml' -exec qmlscene --quit {} \; 2> & 1 | Grep -rnis 'ссылка'

Рабочий каталог:% {} SourceDir

Скриншот: enter image description here

(2> & 1 необходим для разбора поток ошибок, который где сообщения об ошибках отображается)

 Смежные вопросы

  • Нет связанных вопросов^_^