summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodecompletion.cpp
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2009-12-09 19:08:14 +0100
committerThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2009-12-09 19:26:34 +0100
commit3f1b45b0579e7f1c7c2c88f12a1ef3414b9b2061 (patch)
tree35a141e4d3e687fea2ea752589ffd3c439640442 /src/plugins/cpptools/cppcodecompletion.cpp
parent33bdf429535dbd72d3a78aafecbad0c987c0b74c (diff)
downloadqt-creator-3f1b45b0579e7f1c7c2c88f12a1ef3414b9b2061.tar.gz
Implemented first-letter case-sensitive for completion as default
By default now only the first letter is case-sensitive. It is still possible to choose full or no case-sensitivity as well. Task-number: QTCREATORBUG-236 Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Diffstat (limited to 'src/plugins/cpptools/cppcodecompletion.cpp')
-rw-r--r--src/plugins/cpptools/cppcodecompletion.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index 14764970b1..2a714dbab5 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -476,7 +476,7 @@ CppCodeCompletion::CppCodeCompletion(CppModelManager *manager)
m_manager(manager),
m_editor(0),
m_startPosition(-1),
- m_caseSensitivity(Qt::CaseSensitive),
+ m_caseSensitivity(FirstLetterCaseSensitive),
m_autoInsertBrackets(true),
m_partialCompletionEnabled(true),
m_forcedCompletion(false),
@@ -490,12 +490,12 @@ QIcon CppCodeCompletion::iconForSymbol(Symbol *symbol) const
return m_icons.iconForSymbol(symbol);
}
-Qt::CaseSensitivity CppCodeCompletion::caseSensitivity() const
+CppCodeCompletion::CaseSensitivity CppCodeCompletion::caseSensitivity() const
{
return m_caseSensitivity;
}
-void CppCodeCompletion::setCaseSensitivity(Qt::CaseSensitivity caseSensitivity)
+void CppCodeCompletion::setCaseSensitivity(CaseSensitivity caseSensitivity)
{
m_caseSensitivity = caseSensitivity;
}
@@ -1438,20 +1438,29 @@ void CppCodeCompletion::completions(QList<TextEditor::CompletionItem> *completio
*
* Meaning it allows any sequence of lower-case characters to preceed an
* upper-case character. So for example gAC matches getActionController.
+ *
+ * It also implements the first-letter-only case sensitivity.
*/
QString keyRegExp;
keyRegExp += QLatin1Char('^');
bool first = true;
foreach (const QChar &c, key) {
- if (c.isUpper() && !first) {
+ if (c.isUpper() && !first)
keyRegExp += QLatin1String("[a-z0-9_]*");
- keyRegExp += c;
+
+ if (m_caseSensitivity == FirstLetterCaseSensitive && !first) {
+ keyRegExp += QLatin1Char('[');
+ keyRegExp += QRegExp::escape(c.toLower());
+ keyRegExp += QRegExp::escape(c.toUpper());
+ keyRegExp += QLatin1Char(']');
} else {
keyRegExp += QRegExp::escape(c);
}
+
first = false;
}
- const QRegExp regExp(keyRegExp, m_caseSensitivity);
+ const QRegExp regExp(keyRegExp, (m_caseSensitivity == CaseInsensitive)
+ ? Qt::CaseInsensitive : Qt::CaseSensitive);
foreach (TextEditor::CompletionItem item, m_completions) {
if (regExp.indexIn(item.text) == 0) {