C++: Introduce the new CodeFormatter.

Done-with: Erik Verbruggen
This commit is contained in:
Christian Kamm
2010-07-02 15:43:34 +02:00
parent 837e7b5abd
commit 88f2e340bd
8 changed files with 2043 additions and 7 deletions

View File

@@ -31,6 +31,15 @@
using namespace TextEditor;
CodeFormatterData::CodeFormatterData(int blockRevision)
: m_blockRevision(blockRevision)
{
}
CodeFormatterData::~CodeFormatterData()
{
}
TextBlockUserData::~TextBlockUserData()
{
TextMarks marks = m_marks;
@@ -38,6 +47,9 @@ TextBlockUserData::~TextBlockUserData()
foreach (ITextMark *mrk, marks) {
mrk->removedFromEditor();
}
if (m_codeFormatterData)
delete m_codeFormatterData;
}
int TextBlockUserData::braceDepthDelta() const
@@ -359,6 +371,35 @@ TextBlockUserData::MatchType TextBlockUserData::matchCursorForward(QTextCursor *
return NoMatch;
}
int TextBlockUserData::lexerState(const QTextBlock &block)
{
if (!block.isValid())
return -1;
int data = block.userState();
if (data == -1)
return -1;
return data & 0xFF;
}
void TextBlockUserData::setLexerState(QTextBlock block, int state)
{
if (!block.isValid())
return;
int data = block.userState();
if (data == -1)
data = 0;
block.setUserState((data & ~0xFF) | (state & 0xFF));
}
void TextBlockUserData::setCodeFormatterData(CodeFormatterData *data)
{
if (m_codeFormatterData)
delete m_codeFormatterData;
m_codeFormatterData = data;
}
BaseTextDocumentLayout::BaseTextDocumentLayout(QTextDocument *doc)
:QPlainTextDocumentLayout(doc) {
@@ -528,6 +569,3 @@ QSizeF BaseTextDocumentLayout::documentSize() const
size.setWidth(qMax((qreal)m_requiredWidth, size.width()));
return size;
}