Qt QML依赖性/可重用性(静态代码)检查器

Qt 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 ...

为了编写可重用的QML代码,我正在寻找一个(静态代码)检查器,它可以检测不同QML文件之间不需要的依赖关系

要给出B.qml依赖于A.qml标识符的示例:

A.qml

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选项,以将其合并到我的构建中。