QML dependency/reuseability(静态代码)检查器

QML dependency/reuseability (static code) 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中的Item的id不变,这段代码就会compile/run,所以不会注意到依赖关系。 我尝试了 QmlLint,但这没有给出任何错误。

是否有 QML 的静态代码检查器可以检查这个?

在 sourceDirectory 运行 qmlscene 中为每个 *.qml 文件添加了自定义构建步骤,仅在 "reference" 错误时过滤结果。

感谢 关于使用 qmlscene 的提示。

命令: 查找

参数:。 -name '*.qml' -exec qmlscene --quit {} \; 2>&1 | grep -rnis 'reference'

工作目录: %{sourceDir}

截图:

(需要 2>&1 来解析 stderr,这是显示错误消息的地方)