为了编写可重用的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中Item的id不会改变,这段代码就会编译/运行,因此不会注意到依赖关系。 我尝试了 QmlLint ,但这没有错误。
是否有可用于QML的静态代码检查程序可以检查?
答案 0 :(得分:2)
在每个* .qml文件中运行qmlscene的sourceDirectory中添加了一个自定义构建步骤,仅针对“引用”错误过滤结果。
感谢derM提供有关使用qmlscene的提示。
命令:查找
参数:。 -name'* .qml'-exec qmlscene --quit {} \; 2>& 1 | grep -rnis'reference'
工作目录:%{sourceDir}
(需要2& 1来解析stderr,这是显示错误消息的位置)