forked from qt-creator/qt-creator
QmlJsEditor: unify behavior of autocompletion to C++ editor.
Changed behavior of autocompletion for uniformity with C++ completion. E.g: changing 'x' to 'c' in "Rextangle" used to trigger completion, resulting in: "Rectangletangle". Task-number: QTCREATORBUG-15379 Change-Id: I0597a8d76843b8f1c20c39877267aa70a6b0e1a2 Reviewed-by: Robert Loehning <robert.loehning@theqtcompany.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
This commit is contained in:
@@ -858,6 +858,8 @@ bool QmlJSCompletionAssistProcessor::acceptsIdleEditor() const
|
||||
maybeAccept = true;
|
||||
} else {
|
||||
const QChar &charUnderCursor = m_interface->textDocument()->characterAt(cursorPos);
|
||||
if (isValidIdentifierChar(charUnderCursor))
|
||||
return false;
|
||||
if (isIdentifierChar(charBeforeCursor)
|
||||
&& ((charUnderCursor.isSpace()
|
||||
|| charUnderCursor.isNull()
|
||||
|
@@ -54,6 +54,15 @@ bool isIdentifierChar(const QChar &c, bool atStart, bool acceptDollar)
|
||||
}
|
||||
}
|
||||
|
||||
bool isValidFirstIdentifierChar(const QChar &ch) {
|
||||
return ch.isLetter() || ch == QLatin1Char('_') || ch.isHighSurrogate()
|
||||
|| ch.isLowSurrogate();
|
||||
}
|
||||
|
||||
bool isValidIdentifierChar(const QChar &ch) {
|
||||
return isValidFirstIdentifierChar(ch) || ch.isNumber();
|
||||
}
|
||||
|
||||
bool isDelimiterChar(const QChar &c)
|
||||
{
|
||||
switch (c.unicode()) {
|
||||
|
@@ -42,6 +42,8 @@ namespace QmlJSEditor {
|
||||
namespace Internal {
|
||||
|
||||
bool isIdentifierChar(const QChar &c, bool atStart = false, bool acceptDollar = true);
|
||||
bool isValidFirstIdentifierChar(const QChar &c);
|
||||
bool isValidIdentifierChar(const QChar &c);
|
||||
bool isDelimiterChar(const QChar &c);
|
||||
bool isActivationChar(const QChar &c);
|
||||
|
||||
|
Reference in New Issue
Block a user