forked from qt-creator/qt-creator
fix block highlighting off-by-one
This commit is contained in:
@@ -3165,10 +3165,10 @@ bool TextBlockUserData::findPreviousOpenParenthesis(QTextCursor *cursor, bool se
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TextBlockUserData::findPreviousBlockOpenParenthesis(QTextCursor *cursor)
|
bool TextBlockUserData::findPreviousBlockOpenParenthesis(QTextCursor *cursor, bool checkStartPosition)
|
||||||
{
|
{
|
||||||
QTextBlock block = cursor->block();
|
QTextBlock block = cursor->block();
|
||||||
int position = cursor->position();
|
int position = cursor->position() + (checkStartPosition ? 1 : 0 );
|
||||||
int ignore = 0;
|
int ignore = 0;
|
||||||
while (block.isValid()) {
|
while (block.isValid()) {
|
||||||
Parentheses parenList = TextEditDocumentLayout::parentheses(block);
|
Parentheses parenList = TextEditDocumentLayout::parentheses(block);
|
||||||
@@ -3399,10 +3399,12 @@ void BaseTextEditor::_q_highlightBlocks()
|
|||||||
if (block.isValid()) {
|
if (block.isValid()) {
|
||||||
QTextCursor cursor(block);
|
QTextCursor cursor(block);
|
||||||
if (d->extraAreaHighlightCollapseColumn >= 0)
|
if (d->extraAreaHighlightCollapseColumn >= 0)
|
||||||
cursor.setPosition(cursor.position() + qMin(d->extraAreaHighlightCollapseColumn+1,
|
cursor.setPosition(cursor.position() + qMin(d->extraAreaHighlightCollapseColumn,
|
||||||
block.length()));
|
block.length()));
|
||||||
QTextCursor closeCursor;
|
QTextCursor closeCursor;
|
||||||
while (TextBlockUserData::findPreviousBlockOpenParenthesis(&cursor)) {
|
bool firstRun = true;
|
||||||
|
while (TextBlockUserData::findPreviousBlockOpenParenthesis(&cursor), firstRun) {
|
||||||
|
firstRun = false;
|
||||||
highlightBlocksInfo.open.prepend(cursor.blockNumber());
|
highlightBlocksInfo.open.prepend(cursor.blockNumber());
|
||||||
highlightBlocksInfo.visualIndent.prepend(d->visualIndent(cursor.block()));
|
highlightBlocksInfo.visualIndent.prepend(d->visualIndent(cursor.block()));
|
||||||
if (closeCursor.isNull())
|
if (closeCursor.isNull())
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ public:
|
|||||||
static bool findPreviousOpenParenthesis(QTextCursor *cursor, bool select = false);
|
static bool findPreviousOpenParenthesis(QTextCursor *cursor, bool select = false);
|
||||||
static bool findNextClosingParenthesis(QTextCursor *cursor, bool select = false);
|
static bool findNextClosingParenthesis(QTextCursor *cursor, bool select = false);
|
||||||
|
|
||||||
static bool findPreviousBlockOpenParenthesis(QTextCursor *cursor);
|
static bool findPreviousBlockOpenParenthesis(QTextCursor *cursor, bool checkStartPosition = false);
|
||||||
static bool findNextBlockClosingParenthesis(QTextCursor *cursor);
|
static bool findNextBlockClosingParenthesis(QTextCursor *cursor);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user