summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodecompletion.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cppcodecompletion.cpp')
-rw-r--r--src/plugins/cpptools/cppcodecompletion.cpp35
1 files changed, 26 insertions, 9 deletions
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index 3d7cbebf9d..85a7666970 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -1197,18 +1197,35 @@ bool CppCodeCompletion::completeScope(const QList<LookupItem> &results,
return ! m_completions.isEmpty();
}
-void CppCodeCompletion::addKeywords()
+void CppCodeCompletion::addKeyword(const QString &text)
{
- int keywordLimit = T_FIRST_OBJC_AT_KEYWORD;
- if (objcKeywordsWanted())
- keywordLimit = T_LAST_OBJC_AT_KEYWORD + 1;
+ TextEditor::CompletionItem item(this);
+ item.text = text;
+ item.icon = m_icons.keywordIcon();
+ m_completions.append(item);
+}
+void CppCodeCompletion::addKeywords()
+{
// keyword completion items.
- for (int i = T_FIRST_KEYWORD; i < keywordLimit; ++i) {
- TextEditor::CompletionItem item(this);
- item.text = QLatin1String(Token::name(i));
- item.icon = m_icons.keywordIcon();
- m_completions.append(item);
+ for (int i = T_FIRST_KEYWORD; i < T_FIRST_OBJC_KEYWORD; ++i) {
+ addKeyword(QLatin1String(Token::name(i)));
+ }
+
+ if (objcKeywordsWanted()) {
+ // unique Objective-C keywords:
+ for (int i = T_FIRST_OBJC_KEYWORD; i <= T_LAST_OBJC_KEYWORD; ++i) {
+ addKeyword(QLatin1Char('@') + QLatin1String(Token::name(i)));
+ }
+
+ // overlapping keywords:
+ addKeyword(QLatin1Char('@') + QLatin1String(Token::name(T_CATCH)));
+ addKeyword(QLatin1Char('@') + QLatin1String(Token::name(T_CLASS)));
+ addKeyword(QLatin1Char('@') + QLatin1String(Token::name(T_PRIVATE)));
+ addKeyword(QLatin1Char('@') + QLatin1String(Token::name(T_PROTECTED)));
+ addKeyword(QLatin1Char('@') + QLatin1String(Token::name(T_PUBLIC)));
+ addKeyword(QLatin1Char('@') + QLatin1String(Token::name(T_THROW)));
+ addKeyword(QLatin1Char('@') + QLatin1String(Token::name(T_TRY)));
}
}