summaryrefslogtreecommitdiff
path: root/src/plugins/texteditor/basetextdocumentlayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/texteditor/basetextdocumentlayout.cpp')
-rw-r--r--src/plugins/texteditor/basetextdocumentlayout.cpp44
1 files changed, 41 insertions, 3 deletions
diff --git a/src/plugins/texteditor/basetextdocumentlayout.cpp b/src/plugins/texteditor/basetextdocumentlayout.cpp
index 58427566bb..871cab0e13 100644
--- a/src/plugins/texteditor/basetextdocumentlayout.cpp
+++ b/src/plugins/texteditor/basetextdocumentlayout.cpp
@@ -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;
}
-
-
-