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,21 +871,13 @@ 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")) TextEditor::CompletionItem item(this);
continue; item.text = componentIt.key();
else if (fileInfo.absolutePath() != currentFilePath) // ### FIXME includ `imported' components item.icon = componentIcon;
continue; m_completions.append(item);
const QString componentName = fileInfo.baseName();
if (! componentName.isEmpty() && componentName.at(0).isUpper()) {
TextEditor::CompletionItem item(this);
item.text = componentName;
item.icon = componentIcon;
m_completions.append(item);
}
} }
EnumerateProperties enumerateProperties; EnumerateProperties enumerateProperties;