Commit 6b510cb4 authored by Roberto Raggi's avatar Roberto Raggi

Introduced our own document revision.

parent 6051584c
......@@ -538,6 +538,8 @@ CPPEditor::CPPEditor(QWidget *parent)
{
qRegisterMetaType<SemanticInfo>("SemanticInfo");
m_revision = 0;
m_semanticHighlighter = new SemanticHighlighter(this);
m_semanticHighlighter->start();
......@@ -900,6 +902,8 @@ void CPPEditor::onContentsChanged(int position, int charsRemoved, int charsAdded
Q_UNUSED(position)
Q_UNUSED(charsAdded)
++m_revision;
if (m_currentRenameSelection == -1)
return;
......@@ -1307,6 +1311,11 @@ Symbol *CPPEditor::findDefinition(Symbol *symbol)
return 0;
}
unsigned CPPEditor::revision() const
{
return m_revision;
}
SemanticInfo CPPEditor::semanticInfo() const
{
return m_lastSemanticInfo;
......@@ -1763,7 +1772,7 @@ void CPPEditor::semanticRehighlight()
void CPPEditor::updateSemanticInfo(const SemanticInfo &semanticInfo)
{
if (semanticInfo.revision != document()->revision()) {
if (semanticInfo.revision != m_revision) {
// got outdated semantic info
semanticRehighlight();
return;
......@@ -1807,10 +1816,10 @@ SemanticHighlighter::Source CPPEditor::currentSource()
const QString fileName = file()->fileName();
QString code;
if (m_lastSemanticInfo.revision != document()->revision())
if (m_lastSemanticInfo.revision != m_revision)
code = toPlainText(); // get the source code only when needed.
const int revision = document()->revision();
const int revision = m_revision;
const SemanticHighlighter::Source source(snapshot, fileName, code,
line, column, revision);
return source;
......
......@@ -71,10 +71,10 @@ public:
unsigned length;
Use()
: line(0), column(0), length(0) {}
: line(0), column(0), length(0) {}
Use(unsigned line, unsigned column, unsigned length)
: line(line), column(column), length(length) {}
: line(line), column(column), length(length) {}
};
typedef QHash<CPlusPlus::Symbol *, QList<Use> > LocalUseMap;
......@@ -84,10 +84,10 @@ public:
typedef QHashIterator<CPlusPlus::Identifier *, QList<Use> > ExternalUseIterator;
SemanticInfo()
: revision(-1)
: revision(0)
{ }
int revision;
unsigned revision;
CPlusPlus::Snapshot snapshot;
CPlusPlus::Document::Ptr doc;
LocalUseMap localUses;
......@@ -114,7 +114,7 @@ public:
int revision;
Source()
: line(0), column(0), revision(0)
: line(0), column(0), revision(0)
{ }
Source(const CPlusPlus::Snapshot &snapshot,
......@@ -190,6 +190,7 @@ public:
void indentInsertedText(const QTextCursor &tc);
SemanticInfo semanticInfo() const;
unsigned revision() const;
public Q_SLOTS:
virtual void setFontSettings(const TextEditor::FontSettings &);
......@@ -295,6 +296,8 @@ private:
SemanticHighlighter *m_semanticHighlighter;
SemanticInfo m_lastSemanticInfo;
unsigned m_revision;
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment