summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2010-01-07 14:15:04 +0100
committerThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2010-01-07 15:42:08 +0100
commitaeaaa39225ab178ff7e1119d9ddf71e83b32c6f8 (patch)
tree795591179e4d24f002b6b3ecebf81d45b12f9b8a
parentf5a893bc5a456c32e841ce98b79771d4c1197748 (diff)
downloadqt-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
-rw-r--r--src/plugins/cpptools/cppcodecompletion.cpp11
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;
}
}