summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-06-04 12:37:26 +0200
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-06-04 12:37:26 +0200
commit424b9724d6dc4f860cfb8da17d51a715684ad94c (patch)
tree921120642920dd72762ebeef6919181130ccf4f7 /src/plugins
parent5f749306f11dbfd31a6f740ab9b1cb108476e202 (diff)
downloadqt-creator-424b9724d6dc4f860cfb8da17d51a715684ad94c.tar.gz
Revert "Introduced a token cache for the C++ editor."
This reverts commit c2393df02332618c8cf6159d9d6f6a40041ced89.
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/cppeditor/cppeditor.cpp22
-rw-r--r--src/plugins/cppeditor/cppeditor.h3
-rw-r--r--src/plugins/cppeditor/cpphighlighter.cpp1
-rw-r--r--src/plugins/cppeditor/cpphoverhandler.cpp2
-rw-r--r--src/plugins/cppeditor/cpphoverhandler.h4
-rw-r--r--src/plugins/cpptools/cppcodecompletion.cpp46
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp3
-rw-r--r--src/plugins/cpptools/cppmodelmanager.h2
-rw-r--r--src/plugins/cpptools/cppmodelmanagerinterface.h11
-rw-r--r--src/plugins/cpptools/cpptoolseditorsupport.cpp11
-rw-r--r--src/plugins/cpptools/cpptoolseditorsupport.h4
-rw-r--r--src/plugins/debugger/watchutils.cpp7
12 files changed, 34 insertions, 82 deletions
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index 680c3067d3..7b94beabb7 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -56,7 +56,6 @@
#include <cplusplus/BackwardsScanner.h>
#include <cplusplus/FastPreprocessor.h>
#include <cplusplus/CheckUndefinedSymbols.h>
-#include <cplusplus/TokenCache.h>
#include <cpptools/cppmodelmanagerinterface.h>
@@ -535,7 +534,7 @@ struct FindCanonicalSymbol
SemanticInfo info;
FindCanonicalSymbol(CPPEditor *editor, const SemanticInfo &info)
- : editor(editor), expressionUnderCursor(editor->tokenCache()), info(info)
+ : editor(editor), info(info)
{
typeOfExpression.init(info.doc, info.snapshot);
}
@@ -773,11 +772,6 @@ void CPPEditor::cut()
finishRename();
}
-TokenCache *CPPEditor::tokenCache() const
-{
- return m_modelManager->tokenCache(editableInterface());
-}
-
void CPPEditor::startRename()
{
m_inRenameChanged = false;
@@ -1257,7 +1251,7 @@ CPPEditor::Link CPPEditor::findLinkAt(const QTextCursor &cursor,
SimpleLexer tokenize;
tokenize.setQtMocRunEnabled(true);
const QString blockText = cursor.block().text();
- const QList<SimpleToken> tokens = tokenize(blockText, TokenCache::previousBlockState(cursor.block()));
+ const QList<SimpleToken> tokens = tokenize(blockText, BackwardsScanner::previousBlockState(cursor.block()));
bool recognizedQtMethod = false;
@@ -1307,7 +1301,7 @@ CPPEditor::Link CPPEditor::findLinkAt(const QTextCursor &cursor,
static TokenUnderCursor tokenUnderCursor;
QTextBlock block;
- const SimpleToken tk = tokenUnderCursor(tokenCache(), tc, &block);
+ const SimpleToken tk = tokenUnderCursor(tc, &block);
beginOfToken = block.position() + tk.begin();
endOfToken = block.position() + tk.end();
@@ -1337,7 +1331,7 @@ CPPEditor::Link CPPEditor::findLinkAt(const QTextCursor &cursor,
return link;
// Evaluate the type of the expression under the cursor
- ExpressionUnderCursor expressionUnderCursor(tokenCache());
+ ExpressionUnderCursor expressionUnderCursor;
const QString expression = expressionUnderCursor(tc);
TypeOfExpression typeOfExpression;
@@ -1436,13 +1430,13 @@ bool CPPEditor::isElectricCharacter(const QChar &ch) const
QString CPPEditor::insertMatchingBrace(const QTextCursor &tc, const QString &text,
const QChar &la, int *skippedChars) const
{
- MatchingText m(tokenCache());
+ MatchingText m;
return m.insertMatchingBrace(tc, text, la, skippedChars);
}
QString CPPEditor::insertParagraphSeparator(const QTextCursor &tc) const
{
- MatchingText m(tokenCache());
+ MatchingText m;
return m.insertParagraphSeparator(tc);
}
@@ -1466,7 +1460,7 @@ bool CPPEditor::contextAllowsAutoParentheses(const QTextCursor &cursor,
bool CPPEditor::isInComment(const QTextCursor &cursor) const
{
CPlusPlus::TokenUnderCursor tokenUnderCursor;
- const SimpleToken tk = tokenUnderCursor(tokenCache(), cursor);
+ const SimpleToken tk = tokenUnderCursor(cursor);
if (tk.isComment()) {
const int pos = cursor.selectionEnd() - cursor.block().position();
@@ -1521,7 +1515,7 @@ void CPPEditor::indentBlock(QTextDocument *doc, QTextBlock block, QChar typedCha
const TabSettings &ts = tabSettings();
- BackwardsScanner tk(tokenCache(), tc, 400);
+ BackwardsScanner tk(tc, QString(), 400);
const int tokenCount = tk.startToken();
if (tokenCount != 0) {
diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h
index a120c9b56d..357707a34d 100644
--- a/src/plugins/cppeditor/cppeditor.h
+++ b/src/plugins/cppeditor/cppeditor.h
@@ -48,7 +48,6 @@ QT_END_NAMESPACE
namespace CPlusPlus {
class OverviewModel;
class Symbol;
-class TokenCache;
}
namespace CppTools {
@@ -199,8 +198,6 @@ public:
virtual void paste(); // reimplemented from BaseTextEditor
virtual void cut(); // reimplemented from BaseTextEditor
- CPlusPlus::TokenCache *tokenCache() const;
-
public Q_SLOTS:
virtual void setFontSettings(const TextEditor::FontSettings &);
void setSortedMethodOverview(bool sort);
diff --git a/src/plugins/cppeditor/cpphighlighter.cpp b/src/plugins/cppeditor/cpphighlighter.cpp
index 47bd04b455..25354f4487 100644
--- a/src/plugins/cppeditor/cpphighlighter.cpp
+++ b/src/plugins/cppeditor/cpphighlighter.cpp
@@ -62,7 +62,6 @@ void CppHighlighter::highlightBlock(const QString &text)
tokenize.setObjCEnabled(false);
int initialState = state;
-// qDebug() << currentBlock().document()->revision()<<"CppHighlighter::highlightBlock for block#" << currentBlock().blockNumber();
const QList<SimpleToken> tokens = tokenize(text, initialState);
state = tokenize.state(); // refresh the state
diff --git a/src/plugins/cppeditor/cpphoverhandler.cpp b/src/plugins/cppeditor/cpphoverhandler.cpp
index 65172a6e1f..2f7bd05179 100644
--- a/src/plugins/cppeditor/cpphoverhandler.cpp
+++ b/src/plugins/cppeditor/cpphoverhandler.cpp
@@ -254,7 +254,7 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in
}
// Fetch the expression's code
- ExpressionUnderCursor expressionUnderCursor(m_modelManager->tokenCache(editor));
+ ExpressionUnderCursor expressionUnderCursor;
const QString expression = expressionUnderCursor(tc);
const QList<LookupItem> types = typeOfExpression(expression, scope);
diff --git a/src/plugins/cppeditor/cpphoverhandler.h b/src/plugins/cppeditor/cpphoverhandler.h
index 4cf10d5358..d0f5b11dc5 100644
--- a/src/plugins/cppeditor/cpphoverhandler.h
+++ b/src/plugins/cppeditor/cpphoverhandler.h
@@ -37,10 +37,6 @@ class QHelpEngineCore;
class QPoint;
QT_END_NAMESPACE
-namespace CPlusPlus {
-class TokenCache;
-}
-
namespace Core {
class IEditor;
}
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index 0f0d699181..935e031595 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -65,6 +65,7 @@
#include <utils/faketooltip.h>
#include <utils/qtcassert.h>
+#include <QtCore/QDebug>
#include <QtCore/QMap>
#include <QtCore/QFile>
#include <QtGui/QAction>
@@ -453,8 +454,7 @@ QIcon CppCodeCompletion::iconForSymbol(Symbol *symbol) const
/*
Searches backwards for an access operator.
*/
-static int startOfOperator(TokenCache *tokenCache,
- TextEditor::ITextEditable *editor,
+static int startOfOperator(TextEditor::ITextEditable *editor,
int pos, unsigned *kind,
bool wantFunctionCall)
{
@@ -547,7 +547,7 @@ static int startOfOperator(TokenCache *tokenCache,
}
if (completionKind == T_COMMA) {
- ExpressionUnderCursor expressionUnderCursor(tokenCache);
+ ExpressionUnderCursor expressionUnderCursor;
if (expressionUnderCursor.startOfFunctionCall(tc) == -1) {
completionKind = T_EOF_SYMBOL;
start = pos;
@@ -555,7 +555,7 @@ static int startOfOperator(TokenCache *tokenCache,
}
static CPlusPlus::TokenUnderCursor tokenUnderCursor;
- const SimpleToken tk = tokenUnderCursor(tokenCache, tc);
+ const SimpleToken tk = tokenUnderCursor(tc);
if (completionKind == T_DOXY_COMMENT && !(tk.is(T_DOXY_COMMENT) || tk.is(T_CPP_DOXY_COMMENT))) {
completionKind = T_EOF_SYMBOL;
@@ -634,10 +634,9 @@ int CppCodeCompletion::startPosition() const
bool CppCodeCompletion::triggersCompletion(TextEditor::ITextEditable *editor)
{
const int pos = editor->position();
- TokenCache *tokenCache = m_manager->tokenCache(editor);
unsigned token = T_EOF_SYMBOL;
- if (startOfOperator(tokenCache, editor, pos, &token, /*want function call=*/ true) != pos) {
+ if (startOfOperator(editor, pos, &token, /*want function call=*/ true) != pos) {
if (token == T_POUND) {
if (TextEditor::BaseTextEditor *edit = qobject_cast<TextEditor::BaseTextEditor *>(editor->widget())) {
QTextCursor tc(edit->document());
@@ -685,8 +684,7 @@ int CppCodeCompletion::startCompletionHelper(TextEditor::ITextEditable *editor)
while (editor->characterAt(endOfOperator - 1).isSpace())
--endOfOperator;
- TokenCache *tokenCache = m_manager->tokenCache(editor);
- int endOfExpression = startOfOperator(tokenCache, editor, endOfOperator,
+ int endOfExpression = startOfOperator(editor, endOfOperator,
&m_completionOperator,
/*want function call =*/ true);
@@ -727,7 +725,7 @@ int CppCodeCompletion::startCompletionHelper(TextEditor::ITextEditable *editor)
return m_startPosition;
}
- ExpressionUnderCursor expressionUnderCursor(m_manager->tokenCache(editor));
+ ExpressionUnderCursor expressionUnderCursor;
QTextCursor tc(edit->document());
if (m_completionOperator == T_COMMA) {
@@ -802,13 +800,13 @@ int CppCodeCompletion::startCompletionInternal(TextEditor::BaseTextEditor *edit,
}
}
-// if (debug)
-// qDebug() << "scope:" << scope->owner()->fileName() << scope->owner()->line() << scope->owner()->column();
+ if (debug)
+ qDebug() << "scope:" << scope->owner()->fileName() << scope->owner()->line() << scope->owner()->column();
QList<LookupItem> results = typeOfExpression(expression, scope, TypeOfExpression::Preprocess);
-// if (debug)
-// qDebug() << "got:" << results.size() << "results";
+ if (debug)
+ qDebug() << "got:" << results.size() << "results";
if (results.isEmpty()) {
if (m_completionOperator == T_SIGNAL || m_completionOperator == T_SLOT) {
@@ -830,8 +828,7 @@ int CppCodeCompletion::startCompletionInternal(TextEditor::BaseTextEditor *edit,
QTextCursor tc(edit->document());
tc.setPosition(index);
- TokenCache *tokenCache = m_manager->tokenCache(edit->editableInterface());
- ExpressionUnderCursor expressionUnderCursor(tokenCache);
+ ExpressionUnderCursor expressionUnderCursor;
const QString baseExpression = expressionUnderCursor(tc);
// Resolve the type of this expression
@@ -1087,8 +1084,7 @@ bool CppCodeCompletion::completeConstructorOrFunction(const QList<LookupItem> &r
QTextCursor tc(edit->document());
tc.setPosition(endOfExpression);
- TokenCache *tokenCache = m_manager->tokenCache(m_editor);
- BackwardsScanner bs(tokenCache, tc);
+ BackwardsScanner bs(tc);
const int startToken = bs.startToken();
const int lineStartToken = bs.startOfLine(startToken);
// make sure the required tokens are actually available
@@ -1147,8 +1143,8 @@ bool CppCodeCompletion::completeMember(const QList<LookupItem> &baseResults)
{
const LookupContext &context = typeOfExpression.context();
-// if (debug)
-// qDebug() << Q_FUNC_INFO << __LINE__;
+ if (debug)
+ qDebug() << Q_FUNC_INFO << __LINE__;
if (baseResults.isEmpty())
return false;
@@ -1160,8 +1156,8 @@ bool CppCodeCompletion::completeMember(const QList<LookupItem> &baseResults)
if (ClassOrNamespace *binding = resolveExpression.baseExpression(baseResults,
m_completionOperator,
&replacedDotOperator)) {
-// if (debug)
-// qDebug() << "cool we got a binding for the base expression";
+ if (debug)
+ qDebug() << "cool we got a binding for the base expression";
if (replacedDotOperator && binding) {
// Replace . with ->
@@ -1177,10 +1173,10 @@ bool CppCodeCompletion::completeMember(const QList<LookupItem> &baseResults)
return ! m_completions.isEmpty();
}
-// if (debug) {
-// Overview oo;
-// qDebug() << "hmm, got:" << oo(baseResults.first().type());
-// }
+ if (debug) {
+ Overview oo;
+ qDebug() << "hmm, got:" << oo(baseResults.first().type());
+ }
return false;
}
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 6c20bfe215..f6222bfc50 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -962,9 +962,6 @@ bool CppModelManager::isCppEditor(Core::IEditor *editor) const
return editor->context().contains(uid);
}
-TokenCache *CppModelManager::tokenCache(TextEditor::ITextEditor *editor) const
-{ return editorSupport(editor)->tokenCache(); }
-
void CppModelManager::emitDocumentUpdated(Document::Ptr doc)
{ emit documentUpdated(doc); }
diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h
index f43c3bbd82..0058e4edaf 100644
--- a/src/plugins/cpptools/cppmodelmanager.h
+++ b/src/plugins/cpptools/cppmodelmanager.h
@@ -108,8 +108,6 @@ public:
CppEditorSupport *editorSupport(TextEditor::ITextEditor *editor) const
{ return m_editorSupport.value(editor); }
- virtual CPlusPlus::TokenCache *tokenCache(TextEditor::ITextEditor *editor) const;
-
void emitDocumentUpdated(CPlusPlus::Document::Ptr doc);
void stopEditorSelectionsUpdate()
diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.h b/src/plugins/cpptools/cppmodelmanagerinterface.h
index 1bd2696902..cc1177a27f 100644
--- a/src/plugins/cpptools/cppmodelmanagerinterface.h
+++ b/src/plugins/cpptools/cppmodelmanagerinterface.h
@@ -40,25 +40,16 @@
namespace CPlusPlus {
class LookupContext;
- class TokenCache;
}
namespace ProjectExplorer {
class Project;
}
-namespace TextEditor {
- class ITextEditor;
-}
-
namespace CppTools {
class AbstractEditorSupport;
-namespace Internal {
-class CppEditorSupport;
-}
-
class CPPTOOLS_EXPORT CppModelManagerInterface : public QObject
{
Q_OBJECT
@@ -139,8 +130,6 @@ public:
virtual void findMacroUsages(const CPlusPlus::Macro &macro) = 0;
- virtual CPlusPlus::TokenCache *tokenCache(TextEditor::ITextEditor *editor) const = 0;
-
Q_SIGNALS:
void documentUpdated(CPlusPlus::Document::Ptr doc);
diff --git a/src/plugins/cpptools/cpptoolseditorsupport.cpp b/src/plugins/cpptools/cpptoolseditorsupport.cpp
index 33eed4e020..77cccf1018 100644
--- a/src/plugins/cpptools/cpptoolseditorsupport.cpp
+++ b/src/plugins/cpptools/cpptoolseditorsupport.cpp
@@ -67,12 +67,8 @@ void CppEditorSupport::setTextEditor(TextEditor::ITextEditor *textEditor)
{
_textEditor = textEditor;
- if (_textEditor) {
- if (TextEditor::BaseTextEditor *ed = qobject_cast<TextEditor::BaseTextEditor *>(_textEditor->widget()))
- _tokenCache.setDocument(ed->document());
- } else {
+ if (! _textEditor)
return;
- }
connect(_textEditor, SIGNAL(contentsChanged()), this, SIGNAL(contentsChanged()));
connect(this, SIGNAL(contentsChanged()), this, SLOT(updateDocument()));
@@ -100,11 +96,6 @@ unsigned CppEditorSupport::editorRevision() const
return 0;
}
-TokenCache *CppEditorSupport::tokenCache()
-{
- return &_tokenCache;
-}
-
int CppEditorSupport::updateDocumentInterval() const
{ return _updateDocumentInterval; }
diff --git a/src/plugins/cpptools/cpptoolseditorsupport.h b/src/plugins/cpptools/cpptoolseditorsupport.h
index 61fed38d3c..882a9ac9aa 100644
--- a/src/plugins/cpptools/cpptoolseditorsupport.h
+++ b/src/plugins/cpptools/cpptoolseditorsupport.h
@@ -36,7 +36,6 @@
#include <QSharedPointer>
#include <QTextCursor>
#include <cplusplus/CppDocument.h>
-#include <cplusplus/TokenCache.h>
QT_BEGIN_NAMESPACE
class QTimer;
@@ -73,8 +72,6 @@ public:
QString contents();
unsigned editorRevision() const;
- CPlusPlus::TokenCache *tokenCache();
-
Q_SIGNALS:
void contentsChanged();
@@ -92,7 +89,6 @@ private:
QFuture<void> _documentParser;
QString _cachedContents;
unsigned _revision;
- CPlusPlus::TokenCache _tokenCache;
};
} // namespace Internal
diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp
index a3d0f2a28e..3b625d507b 100644
--- a/src/plugins/debugger/watchutils.cpp
+++ b/src/plugins/debugger/watchutils.cpp
@@ -736,8 +736,7 @@ QString cppExpressionAt(TextEditor::ITextEditor *editor, int pos,
return QString();
QString expr = plaintext->textCursor().selectedText();
- CppTools::CppModelManagerInterface *modelManager = ExtensionSystem::PluginManager::instance()->getObject<CppTools::CppModelManagerInterface>();
- if (expr.isEmpty() && modelManager) {
+ if (expr.isEmpty()) {
QTextCursor tc(plaintext->document());
tc.setPosition(pos);
@@ -746,7 +745,7 @@ QString cppExpressionAt(TextEditor::ITextEditor *editor, int pos,
tc.movePosition(QTextCursor::EndOfWord);
// Fetch the expression's code.
- CPlusPlus::ExpressionUnderCursor expressionUnderCursor(modelManager->tokenCache(editor));
+ CPlusPlus::ExpressionUnderCursor expressionUnderCursor;
expr = expressionUnderCursor(tc);
*column = tc.columnNumber();
*line = tc.blockNumber();
@@ -758,7 +757,7 @@ QString cppExpressionAt(TextEditor::ITextEditor *editor, int pos,
if (function && !expr.isEmpty())
if (const Core::IFile *file = editor->file())
- if (modelManager)
+ if (CppTools::CppModelManagerInterface *modelManager = ExtensionSystem::PluginManager::instance()->getObject<CppTools::CppModelManagerInterface>())
*function = CppTools::AbstractEditorSupport::functionAt(modelManager, file->fileName(), *line, *column);
return expr;