forked from qt-creator/qt-creator
Fixed a potential issue with automatic brace matching
When encountering a line that hasn't been highlighted yet, we need to abort the optimization for changing brace depth. Done with Roberto Raggi and mae.
This commit is contained in:
@@ -48,8 +48,6 @@ CppHighlighter::CppHighlighter(QTextDocument *document) :
|
|||||||
|
|
||||||
void CppHighlighter::highlightBlock(const QString &text)
|
void CppHighlighter::highlightBlock(const QString &text)
|
||||||
{
|
{
|
||||||
QTextCharFormat emptyFormat;
|
|
||||||
|
|
||||||
const int previousState = previousBlockState();
|
const int previousState = previousBlockState();
|
||||||
int state = 0, initialBraceDepth = 0;
|
int state = 0, initialBraceDepth = 0;
|
||||||
if (previousState != -1) {
|
if (previousState != -1) {
|
||||||
@@ -225,7 +223,7 @@ void CppHighlighter::highlightBlock(const QString &text)
|
|||||||
if (oldState == tokenize.state() && oldBraceDepth != braceDepth) {
|
if (oldState == tokenize.state() && oldBraceDepth != braceDepth) {
|
||||||
int delta = braceDepth - oldBraceDepth;
|
int delta = braceDepth - oldBraceDepth;
|
||||||
QTextBlock block = currentBlock().next();
|
QTextBlock block = currentBlock().next();
|
||||||
while (block.isValid()) {
|
while (block.isValid() && block.userState() != -1) {
|
||||||
TextEditDocumentLayout::changeBraceDepth(block, delta);
|
TextEditDocumentLayout::changeBraceDepth(block, delta);
|
||||||
block = block.next();
|
block = block.next();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user