Skip to content
Snippets Groups Projects
Commit 34545eea authored by Roberto Raggi's avatar Roberto Raggi
Browse files

Add the QML user types to the completion box.

parent e20d5a82
No related branches found
No related tags found
No related merge requests found
...@@ -135,9 +135,33 @@ int QmlCodeCompletion::startCompletion(TextEditor::ITextEditable *editor) ...@@ -135,9 +135,33 @@ int QmlCodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
if (qmlDocument.isNull()) if (qmlDocument.isNull())
return -1; return -1;
if (!qmlDocument->qmlProgram()) const QmlJS::Snapshot &snapshot = m_modelManager->snapshot();
qmlDocument = m_modelManager->snapshot().value(qmlDocument->fileName());
if (! qmlDocument->qmlProgram()) {
qmlDocument = snapshot.value(qmlDocument->fileName());
if (! qmlDocument)
return -1;
}
const QIcon typeIcon = iconForColor(Qt::yellow);
foreach (QmlJS::Document::Ptr doc, snapshot) {
const QFileInfo fileInfo(doc->fileName());
if (fileInfo.suffix() != QLatin1String("qml"))
continue;
const QString typeName = fileInfo.baseName();
if (typeName.isEmpty())
continue;
if (typeName.at(0).isUpper()) {
TextEditor::CompletionItem item(this);
item.text = typeName;
item.icon = typeIcon;
m_completions.append(item);
}
}
const QIcon idIcon = iconForColor(Qt::darkGray); const QIcon idIcon = iconForColor(Qt::darkGray);
QStringList ids = qmlDocument->ids().keys(); QStringList ids = qmlDocument->ids().keys();
...@@ -180,9 +204,21 @@ int QmlCodeCompletion::startCompletion(TextEditor::ITextEditable *editor) ...@@ -180,9 +204,21 @@ int QmlCodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
} }
} }
updateSnippets(); QChar previousChar;
if (m_startPosition > 0)
previousChar = editor->characterAt(m_startPosition - 1);
if (previousChar.isNull()
|| previousChar.isSpace()
|| previousChar == QLatin1Char('{')
|| previousChar == QLatin1Char('}')
|| previousChar == QLatin1Char(':')
|| previousChar == QLatin1Char(';')) {
updateSnippets();
m_completions.append(m_snippets);
}
m_completions.append(m_snippets);
return pos; return pos;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment