diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-02-01 11:40:29 +0100 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2010-02-01 11:40:29 +0100 |
commit | cd9d13acac119f93ab4f88bf79002fb486480d31 (patch) | |
tree | d7048218bae3a33d6b95baff6201d5647f371f9f /src/plugins/qmljseditor | |
parent | 18e0777e4115d344d7bf295c7510145a49b44a59 (diff) | |
download | qt-creator-cd9d13acac119f93ab4f88bf79002fb486480d31.tar.gz |
Simplified triggerCompletion().
Diffstat (limited to 'src/plugins/qmljseditor')
-rw-r--r-- | src/plugins/qmljseditor/qmlcodecompletion.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/plugins/qmljseditor/qmlcodecompletion.cpp b/src/plugins/qmljseditor/qmlcodecompletion.cpp index 1b8e730fab..cd5f31eec1 100644 --- a/src/plugins/qmljseditor/qmlcodecompletion.cpp +++ b/src/plugins/qmljseditor/qmlcodecompletion.cpp @@ -519,22 +519,26 @@ static bool isIdentifierChar(QChar ch) bool QmlCodeCompletion::triggersCompletion(TextEditor::ITextEditable *editor) { - const QChar ch = editor->characterAt(editor->position() - 1); + const int cursorPosition = editor->position(); + const QChar ch = editor->characterAt(cursorPosition - 1); if (ch == QLatin1Char('(') || ch == QLatin1Char('.')) return true; else if (isIdentifierChar(ch)) { - if (QmlJSTextEditor *ed = qobject_cast<QmlJSTextEditor *>(editor->widget())) { - QTextCursor tc = ed->textCursor(); - tc.movePosition(QTextCursor::StartOfWord, QTextCursor::KeepAnchor); - const QString word = tc.selectedText(); - if (word.length() > 2 && checkStartOfIdentifier(word)) { - for (int i = 0; i < word.length(); ++i) { - if (! isIdentifierChar(word.at(i))) - return false; - } - return true; + int pos = editor->position() - 1; + for (; pos != -1; --pos) { + if (! isIdentifierChar(editor->characterAt(pos))) + break; + } + ++pos; + + const QString word = editor->textAt(pos, cursorPosition - pos); + if (word.length() > 2 && checkStartOfIdentifier(word)) { + for (int i = 0; i < word.length(); ++i) { + if (! isIdentifierChar(word.at(i))) + return false; } + return true; } } |