diff options
author | Thorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com> | 2010-01-07 14:15:04 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com> | 2010-01-07 15:42:08 +0100 |
commit | aeaaa39225ab178ff7e1119d9ddf71e83b32c6f8 (patch) | |
tree | 795591179e4d24f002b6b3ecebf81d45b12f9b8a /src/plugins | |
parent | f5a893bc5a456c32e841ce98b79771d4c1197748 (diff) | |
download | qt-creator-aeaaa39225ab178ff7e1119d9ddf71e83b32c6f8.tar.gz |
Use the completion case sensitivity settings also for relevance
Avoids some annoyance for people using case-sensitive completion, when
unrelated completions items would get higher relevance because they
start with the typed string when matched case-insensitively.
In case-insensitive mode, a case-sensitive prefix match now does get a
higher relevance than a case-insensitive match.
Reviewed-by: con
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/cpptools/cppcodecompletion.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index 41373494ec..2d1f14607f 100644 --- a/src/plugins/cpptools/cppcodecompletion.cpp +++ b/src/plugins/cpptools/cppcodecompletion.cpp @@ -1493,10 +1493,17 @@ void CppCodeCompletion::completions(QList<TextEditor::CompletionItem> *completio } const QRegExp regExp(keyRegExp, m_caseSensitivity); + const bool hasKey = !key.isEmpty(); foreach (TextEditor::CompletionItem item, m_completions) { if (regExp.indexIn(item.text) == 0) { - item.relevance = (key.length() > 0 && - item.text.startsWith(key, Qt::CaseInsensitive)) ? 1 : 0; + if (hasKey) { + if (item.text.startsWith(key, Qt::CaseSensitive)) { + item.relevance = 2; + } else if (m_caseSensitivity == Qt::CaseInsensitive + && item.text.startsWith(key, Qt::CaseInsensitive)) { + item.relevance = 1; + } + } (*completions) << item; } } |