forked from qt-creator/qt-creator
Simplified triggerCompletion().
This commit is contained in:
@@ -519,22 +519,26 @@ static bool isIdentifierChar(QChar ch)
|
|||||||
|
|
||||||
bool QmlCodeCompletion::triggersCompletion(TextEditor::ITextEditable *editor)
|
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('.'))
|
if (ch == QLatin1Char('(') || ch == QLatin1Char('.'))
|
||||||
return true;
|
return true;
|
||||||
else if (isIdentifierChar(ch)) {
|
else if (isIdentifierChar(ch)) {
|
||||||
if (QmlJSTextEditor *ed = qobject_cast<QmlJSTextEditor *>(editor->widget())) {
|
int pos = editor->position() - 1;
|
||||||
QTextCursor tc = ed->textCursor();
|
for (; pos != -1; --pos) {
|
||||||
tc.movePosition(QTextCursor::StartOfWord, QTextCursor::KeepAnchor);
|
if (! isIdentifierChar(editor->characterAt(pos)))
|
||||||
const QString word = tc.selectedText();
|
break;
|
||||||
if (word.length() > 2 && checkStartOfIdentifier(word)) {
|
}
|
||||||
for (int i = 0; i < word.length(); ++i) {
|
++pos;
|
||||||
if (! isIdentifierChar(word.at(i)))
|
|
||||||
return false;
|
const QString word = editor->textAt(pos, cursorPosition - pos);
|
||||||
}
|
if (word.length() > 2 && checkStartOfIdentifier(word)) {
|
||||||
return true;
|
for (int i = 0; i < word.length(); ++i) {
|
||||||
|
if (! isIdentifierChar(word.at(i)))
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user