forked from qt-creator/qt-creator
Completion: Ignore non identifiers when matching proposals
Since now we reduced the idle editor time for showing completions, some things started to be a bit annoying. This fix changes the prefix from the proposal to include only letters, digits, and the underscore. Yes, technically they are not allways identifiers in a generic sense, but it should be enough for our purpose. Now, you should not receive a proposal 'foo:' when you have already typed 'foo' in QML, for example. Change-Id: Ica92182a34636598faedb067d0527e37ca6fee89 Reviewed-on: http://codereview.qt.nokia.com/46 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
This commit is contained in:
committed by
Leandro T. C. Melo
parent
99fee33fd1
commit
1c60ae1039
@@ -241,6 +241,14 @@ QString BasicProposalItemListModel::proposalPrefix() const
|
||||
|
||||
// Compute common prefix
|
||||
QString firstKey = m_currentItems.first()->text();
|
||||
int ignore = 0;
|
||||
for (int i = firstKey.length() - 1; i >= 0; --i, ++ignore) {
|
||||
const QChar &c = firstKey.at(i);
|
||||
if (c.isLetterOrNumber() || c == QLatin1Char('_'))
|
||||
break;
|
||||
}
|
||||
if (ignore)
|
||||
firstKey.chop(ignore);
|
||||
QString lastKey = m_currentItems.last()->text();
|
||||
const int length = qMin(firstKey.length(), lastKey.length());
|
||||
firstKey.truncate(length);
|
||||
|
||||
Reference in New Issue
Block a user