Added Objective-C @-keywords to the completion.

This commit is contained in:
Erik Verbruggen
2009-10-09 15:22:57 +02:00
parent e5635e091e
commit 4b44fa5f4a
2 changed files with 27 additions and 2 deletions

View File

@@ -30,6 +30,7 @@
#include "cppcodecompletion.h" #include "cppcodecompletion.h"
#include "cppmodelmanager.h" #include "cppmodelmanager.h"
#include "cppdoxygen.h" #include "cppdoxygen.h"
#include "cpptoolsconstants.h"
#include "cpptoolseditorsupport.h" #include "cpptoolseditorsupport.h"
#include <Control.h> #include <Control.h>
@@ -52,6 +53,7 @@
#include <cplusplus/TokenUnderCursor.h> #include <cplusplus/TokenUnderCursor.h>
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/mimedatabase.h>
#include <coreplugin/editormanager/editormanager.h> #include <coreplugin/editormanager/editormanager.h>
#include <texteditor/itexteditor.h> #include <texteditor/itexteditor.h>
#include <texteditor/itexteditable.h> #include <texteditor/itexteditable.h>
@@ -510,7 +512,8 @@ CppCodeCompletion::CppCodeCompletion(CppModelManager *manager)
m_caseSensitivity(Qt::CaseSensitive), m_caseSensitivity(Qt::CaseSensitive),
m_autoInsertBrackets(true), m_autoInsertBrackets(true),
m_forcedCompletion(false), 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() void CppCodeCompletion::addKeywords()
{ {
int keywordLimit = T_FIRST_OBJC_AT_KEYWORD;
if (objcKeywordsWanted())
keywordLimit = T_LAST_OBJC_AT_KEYWORD + 1;
// keyword completion items. // 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); TextEditor::CompletionItem item(this);
item.text = QLatin1String(Token::name(i)); item.text = QLatin1String(Token::name(i));
item.icon = m_icons.keywordIcon(); item.icon = m_icons.keywordIcon();
@@ -1610,4 +1617,16 @@ int CppCodeCompletion::findStartOfName(int pos) const
return pos + 1; 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" #include "cppcodecompletion.moc"

View File

@@ -82,6 +82,9 @@ class CppCodeCompletion : public TextEditor::ICompletionCollector
public: public:
explicit CppCodeCompletion(CppModelManager *manager); explicit CppCodeCompletion(CppModelManager *manager);
void setObjcEnabled(bool objcEnabled)
{ m_objcEnabled = objcEnabled; }
bool supportsEditor(TextEditor::ITextEditable *editor); bool supportsEditor(TextEditor::ITextEditable *editor);
bool triggersCompletion(TextEditor::ITextEditable *editor); bool triggersCompletion(TextEditor::ITextEditable *editor);
int startCompletion(TextEditor::ITextEditable *editor); int startCompletion(TextEditor::ITextEditable *editor);
@@ -163,6 +166,9 @@ private:
unsigned m_completionOperator; unsigned m_completionOperator;
QPointer<FunctionArgumentWidget> m_functionArgumentWidget; QPointer<FunctionArgumentWidget> m_functionArgumentWidget;
bool objcKeywordsWanted() const;
bool m_objcEnabled;
}; };
} // namespace Internal } // namespace Internal