summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodecompletion.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2009-10-09 15:22:57 +0200
committerErik Verbruggen <erik.verbruggen@nokia.com>2009-10-09 15:22:57 +0200
commit4b44fa5f4ad4941d27e96f40b269367da2cfbf22 (patch)
treece7baa8257c28d50dff91045b39d52542147ed0a /src/plugins/cpptools/cppcodecompletion.cpp
parente5635e091ed4a0c24e4a06d75d443486d71795d5 (diff)
downloadqt-creator-4b44fa5f4ad4941d27e96f40b269367da2cfbf22.tar.gz
Added Objective-C @-keywords to the completion.
Diffstat (limited to 'src/plugins/cpptools/cppcodecompletion.cpp')
-rw-r--r--src/plugins/cpptools/cppcodecompletion.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index 0a30af6f78..ea3da03360 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -30,6 +30,7 @@
#include "cppcodecompletion.h"
#include "cppmodelmanager.h"
#include "cppdoxygen.h"
+#include "cpptoolsconstants.h"
#include "cpptoolseditorsupport.h"
#include <Control.h>
@@ -52,6 +53,7 @@
#include <cplusplus/TokenUnderCursor.h>
#include <coreplugin/icore.h>
+#include <coreplugin/mimedatabase.h>
#include <coreplugin/editormanager/editormanager.h>
#include <texteditor/itexteditor.h>
#include <texteditor/itexteditable.h>
@@ -510,7 +512,8 @@ CppCodeCompletion::CppCodeCompletion(CppModelManager *manager)
m_caseSensitivity(Qt::CaseSensitive),
m_autoInsertBrackets(true),
m_forcedCompletion(false),
- m_completionOperator(T_EOF_SYMBOL)
+ m_completionOperator(T_EOF_SYMBOL),
+ m_objcEnabled(true)
{
}
@@ -1151,8 +1154,12 @@ bool CppCodeCompletion::completeScope(const QList<TypeOfExpression::Result> &res
void CppCodeCompletion::addKeywords()
{
+ int keywordLimit = T_FIRST_OBJC_AT_KEYWORD;
+ if (objcKeywordsWanted())
+ keywordLimit = T_LAST_OBJC_AT_KEYWORD + 1;
+
// keyword completion items.
- for (int i = T_FIRST_KEYWORD; i < T_FIRST_OBJC_AT_KEYWORD; ++i) {
+ for (int i = T_FIRST_KEYWORD; i < keywordLimit; ++i) {
TextEditor::CompletionItem item(this);
item.text = QLatin1String(Token::name(i));
item.icon = m_icons.keywordIcon();
@@ -1610,4 +1617,16 @@ int CppCodeCompletion::findStartOfName(int pos) const
return pos + 1;
}
+bool CppCodeCompletion::objcKeywordsWanted() const
+{
+ if (!m_objcEnabled)
+ return false;
+
+ Core::IFile *file = m_editor->file();
+ QString fileName = file->fileName();
+
+ const Core::MimeDatabase *mdb = Core::ICore::instance()->mimeDatabase();
+ return mdb->findByFile(fileName).type() == CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE;
+}
+
#include "cppcodecompletion.moc"