diff options
| author | Erik Verbruggen <erik.verbruggen@nokia.com> | 2009-10-09 15:22:57 +0200 |
|---|---|---|
| committer | Erik Verbruggen <erik.verbruggen@nokia.com> | 2009-10-09 15:22:57 +0200 |
| commit | 4b44fa5f4ad4941d27e96f40b269367da2cfbf22 (patch) | |
| tree | ce7baa8257c28d50dff91045b39d52542147ed0a /src/plugins/cpptools | |
| parent | e5635e091ed4a0c24e4a06d75d443486d71795d5 (diff) | |
| download | qt-creator-4b44fa5f4ad4941d27e96f40b269367da2cfbf22.tar.gz | |
Added Objective-C @-keywords to the completion.
Diffstat (limited to 'src/plugins/cpptools')
| -rw-r--r-- | src/plugins/cpptools/cppcodecompletion.cpp | 23 | ||||
| -rw-r--r-- | src/plugins/cpptools/cppcodecompletion.h | 6 |
2 files changed, 27 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" diff --git a/src/plugins/cpptools/cppcodecompletion.h b/src/plugins/cpptools/cppcodecompletion.h index afe8a16821..3532a816a1 100644 --- a/src/plugins/cpptools/cppcodecompletion.h +++ b/src/plugins/cpptools/cppcodecompletion.h @@ -82,6 +82,9 @@ class CppCodeCompletion : public TextEditor::ICompletionCollector public: explicit CppCodeCompletion(CppModelManager *manager); + void setObjcEnabled(bool objcEnabled) + { m_objcEnabled = objcEnabled; } + bool supportsEditor(TextEditor::ITextEditable *editor); bool triggersCompletion(TextEditor::ITextEditable *editor); int startCompletion(TextEditor::ITextEditable *editor); @@ -163,6 +166,9 @@ private: unsigned m_completionOperator; QPointer<FunctionArgumentWidget> m_functionArgumentWidget; + + bool objcKeywordsWanted() const; + bool m_objcEnabled; }; } // namespace Internal |
