QmlJS: Add CompletionContextFinder to allow context sensitive completion

The plan is to use this to reduce the number of applicable
completion options, for instance for enum completion or property
names.

Done-with: Erik Verbruggen
This commit is contained in:
Christian Kamm
2010-04-28 13:28:36 +02:00
parent bd71243407
commit 722ba33770
6 changed files with 202 additions and 9 deletions

View File

@@ -37,6 +37,7 @@
#include <qmljs/qmljsinterpreter.h>
#include <qmljs/qmljsscanner.h>
#include <qmljs/qmljsevaluate.h>
#include <qmljs/qmljscompletioncontextfinder.h>
#include <texteditor/basetexteditor.h>
@@ -638,6 +639,12 @@ int CodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
if (completionOperator.isSpace() || completionOperator.isNull() || isDelimiter(completionOperator) ||
(completionOperator == QLatin1Char('(') && m_startPosition != editor->position())) {
/*
QTextCursor startPositionCursor(edit->document());
startPositionCursor.setPosition(m_startPosition);
CompletionContextFinder contextFinder(startPositionCursor);
qDebug() << "Qml type name" << contextFinder.qmlObjectTypeName();
*/
// It's a global completion.
EnumerateProperties enumerateProperties(&context);
enumerateProperties.setGlobalCompletion(true);