В настоящее время я разрабатываю плагин для Qt Creator, который должен давать мне семантическую информацию
в зависимости от местоположения пользователя в файле QML, открытом в текстовом редакторе (где установлен курсор).
Например, если у нас есть следующий файл QML:
Rectangle {
width: 200
height: 200
color: "blue"
Image {
source: "pics/logo.png"
anchors.centerIn: parent
}
}
и пользователь нажимает на плагин 'color', чтобы указать, что он находится внутри объекта Rectangle.
Я пытался использовать следующий код:
const QmlJS::Snapshot snapshot = modelManager->snapshot();
const QmlJS::Document::Ptr doc = snapshot.document(fileName);
QmlJS::AST::Node *node = doc->ast();
const QmlJS::Interpreter::ObjectValue *scopeObject = doc->bind()->findQmlObject(node);
qDebug() << "QML class" << scopeObject->className();
но scopeObject вернул значение null. ast () и bind () документа также имеют значение null, хотя document-> source показывает правильный исходный файл, и он анализируется.
Вопрос в том, как получить scopeObject или есть другие способы сделать это.
Приветствия