Added the user components to the global completion and fixed completion for the `parent' property.

This commit is contained in:
Roberto Raggi
2010-01-26 09:54:02 +01:00
parent aec314b276
commit c65a028f74

View File

@@ -855,7 +855,7 @@ int QmlCodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
else if (AST::UiObjectBinding *binding = AST::cast<AST::UiObjectBinding *>(parentMember)) else if (AST::UiObjectBinding *binding = AST::cast<AST::UiObjectBinding *>(parentMember))
parentItemName = qualifiedNameId(binding->qualifiedTypeNameId); parentItemName = qualifiedNameId(binding->qualifiedTypeNameId);
Interpreter::ObjectValue *parentItem = newComponent(&interp, declaringItemName, userComponents); Interpreter::ObjectValue *parentItem = newComponent(&interp, parentItemName, userComponents);
if (! parentItem) if (! parentItem)
parentItem = interp.newQmlObject(QLatin1String("Item")); parentItem = interp.newQmlObject(QLatin1String("Item"));
@@ -871,22 +871,14 @@ int QmlCodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
m_startPosition != editor->position())) { m_startPosition != editor->position())) {
// It's a global completion. // It's a global completion.
// Process the visible user defined components. // Process the visible user defined components.
foreach (QmlJS::Document::Ptr doc, snapshot) { QHashIterator<QString, Document::Ptr> componentIt(userComponents);
const QFileInfo fileInfo(doc->fileName()); while (componentIt.hasNext()) {
componentIt.next();
if (fileInfo.suffix() != QLatin1String("qml"))
continue;
else if (fileInfo.absolutePath() != currentFilePath) // ### FIXME includ `imported' components
continue;
const QString componentName = fileInfo.baseName();
if (! componentName.isEmpty() && componentName.at(0).isUpper()) {
TextEditor::CompletionItem item(this); TextEditor::CompletionItem item(this);
item.text = componentName; item.text = componentIt.key();
item.icon = componentIcon; item.icon = componentIcon;
m_completions.append(item); m_completions.append(item);
} }
}
EnumerateProperties enumerateProperties; EnumerateProperties enumerateProperties;
QHashIterator<QString, const Interpreter::Value *> it(enumerateProperties(scope, /* lookAtScope = */ true)); QHashIterator<QString, const Interpreter::Value *> it(enumerateProperties(scope, /* lookAtScope = */ true));