Qt QML依赖性/可重用性(静态代码)检查器
为了编写可重用的QML代码,我正在寻找一个(静态代码)检查器,它可以检测不同QML文件之间不需要的依赖关系 要给出B.qml依赖于A.qml标识符的示例: A.qmlQt QML依赖性/可重用性(静态代码)检查器,qt,dependencies,qml,qtquick2,reusability,Qt,Dependencies,Qml,Qtquick2,Reusability,为了编写可重用的QML代码,我正在寻找一个(静态代码)检查器,它可以检测不同QML文件之间不需要的依赖关系 要给出B.qml依赖于A.qml标识符的示例: A.qml Item { id: dependencyId ... delegate: B {} } Item { id: delegateB ... text: dependencyId.text } B.qml Item { id: dependencyId ...
Item {
id: dependencyId
...
delegate: B {}
}
Item {
id: delegateB
...
text: dependencyId.text
}
B.qml
Item {
id: dependencyId
...
delegate: B {}
}
Item {
id: delegateB
...
text: dependencyId.text
}
由于B.qml的文本元素依赖于a.qml中的标识符,因此无法正确重用此代码
只要A.qml中Item的id不变,该代码就会编译/运行,因此不会注意到依赖关系。
我试过qmlint,但没有错误
是否有可用的QML静态代码检查器可以检查这一点?在sourceDirectory中为每个*.QML文件添加了一个自定义生成步骤,仅对“引用”错误过滤结果 感谢您提供有关使用qmlscene的提示 命令:查找 参数:-名称'*.qml'-execqmlscene--quit{}\;2> &1 | grep-rnis“参考” 工作目录:%{sourceDir} 截图:
(需要2>&1来解析stderr,这是显示错误消息的地方)您可以对每个文件使用
qmlscene
。如果存在这种依赖关系,它将引发一个ReferenceError
,这正是我想要的(用qmlint实现的),谢谢!添加了--quit选项,以将其合并到我的构建中。