Provides tools for static analysis on QML programs. More...
| Header: | #include <QQmlSA> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS QmlCompiler)target_link_libraries(mytarget PRIVATE Qt6::QmlCompiler) |
| Status: | Technical Preview |
| class | Binding |
| class | Element |
| class | ElementPass |
| class | FixSuggestion |
| class | GenericPass |
| class | LintPlugin |
| class | LoggerWarningId |
| class | Method |
| class | PassManager |
| class | Property |
| class | PropertyPass |
| class | SourceLocation |
| enum class | AccessSemantics { Reference, Value, None, Sequence } |
| enum class | BindingType { Invalid, BoolLiteral, NumberLiteral, StringLiteral, RegExpLiteral, …, GroupProperty } |
| enum class | MethodType { Signal, Slot, Method, StaticMethod } |
| enum class | ScopeType { JSFunctionScope, JSLexicalScope, QMLScope, GroupedPropertyScope, AttachedPropertyScope, EnumScope } |
| enum class | ScriptBindingKind { Invalid, PropertyBinding, SignalHandler, ChangeHandler } |
Represents a single QML property binding for a specific type. More...
Represents a QML type. More...
Base class for all static analysis passes on elements. More...
Represents a suggested fix for an issue in the source code. More...
The base class for static analysis passes. More...
Base class for all static analysis plugins. More...
A wrapper around a string literal to uniquely identify warning categories in the QQmlSA framework. More...
Represents a QML method. More...
Can analyze an element and its children with static analysis passes. More...
Represents a QML property. More...
Base class for all static analysis passes on properties. More...
Represents a location or region in the source code. More...
Describes how a type is accessed and shared.
| Constant | Value | Description |
|---|---|---|
QQmlSA::AccessSemantics::Reference |
0 |
The type behaves like an Object type |
QQmlSA::AccessSemantics::Value |
1 |
The type behaves like a Value type |
QQmlSA::AccessSemantics::None |
2 |
The type is a namespace, or is invalid |
QQmlSA::AccessSemantics::Sequence |
3 |
The type behaves like a Sequence type |
See also The QML Type System.
Describes the type of a QQmlSA::Binding.
| Constant | Value | Description |
|---|---|---|
QQmlSA::BindingType::Invalid |
0 |
There is no binding |
QQmlSA::BindingType::BoolLiteral |
1 |
The binding is a bool literal |
QQmlSA::BindingType::NumberLiteral |
2 |
The binding is a number literal |
QQmlSA::BindingType::StringLiteral |
3 |
The binding is a string literal |
QQmlSA::BindingType::RegExpLiteral |
4 |
The binding is a regular expression literal |
QQmlSA::BindingType::Null |
5 |
The binding is a null literal |
QQmlSA::BindingType::Translation |
6 |
The binding is a translation |
QQmlSA::BindingType::TranslationById |
7 |
The binding is a translation by id |
QQmlSA::BindingType::Script |
8 |
The binding is a regular script |
QQmlSA::BindingType::Object |
9 |
The binging is an Object |
QQmlSA::BindingType::Interceptor |
10 |
The binding is an interceptor that can intercept writes to properties such as Behavior |
QQmlSA::BindingType::ValueSource |
11 |
The binging is a property value source |
QQmlSA::BindingType::AttachedProperty |
12 |
The binding is an attached object |
QQmlSA::BindingType::GroupProperty |
13 |
The binding is a grouped property |
Describes the type of a QQmlSA::Method.
| Constant | Value | Description |
|---|---|---|
QQmlSA::MethodType::Signal |
0 |
The method is a signal |
QQmlSA::MethodType::Slot |
1 |
The method is a slot |
QQmlSA::MethodType::Method |
2 |
The method is a Q_INVOKABLE method |
QQmlSA::MethodType::StaticMethod |
3 |
The method is a Q_INVOKABLE static method |
Describes the type of QML scope.
| Constant | Value | Description |
|---|---|---|
QQmlSA::ScopeType::JSFunctionScope |
0 |
The scope is a JavaScript function:
Item {
function f() : int { <- begin
return 1
} <- end
}
|
QQmlSA::ScopeType::JSLexicalScope |
1 |
The scope is a JavaScript lexical scope:
property int i: { <- begin
let a = 1
{ <- begin
console.log("hello")
} <- end
return a
} <- end
|
QQmlSA::ScopeType::QMLScope |
2 |
The scope is a QML Object:
Item { <- begin
x: 50
} <- end
|
QQmlSA::ScopeType::GroupedPropertyScope |
3 |
The scope is a grouped property:
Text {
font { <- begin
pixelSize: 12
bold: true
} <- end
}
|
QQmlSA::ScopeType::AttachedPropertyScope |
4 |
The scope is an attached property:
Item {
Component.onCompleted: console.log("Hello")
^^^^^^^^^
\ Scope of attached property Component
}
|
QQmlSA::ScopeType::EnumScope |
5 |
The scope is a QML enum:
enum E { <- begin
A,
B,
C
} <- end
|
Each entry is shown with an example scope of the matching type in QML code.
Describes the script type of a QQmlSA::Binding of type Script.
| Constant | Value | Description |
|---|---|---|
QQmlSA::ScriptBindingKind::Invalid |
0 |
The binding has an invalid script |
QQmlSA::ScriptBindingKind::PropertyBinding |
1 |
The binding is bound to a property |
QQmlSA::ScriptBindingKind::SignalHandler |
2 |
The binding is a signal handler |
QQmlSA::ScriptBindingKind::ChangeHandler |
3 |
The binding is a change handler |