Editor: fix trailing space highlight

This commit is contained in:
Le Tan 2018-08-15 19:55:35 +08:00
parent 35f66ba88e
commit 9a173168ff

View File

@ -175,6 +175,11 @@ void VEditor::highlightOnCursorPositionChanged()
&& text.size() > 1) { && text.size() > 1) {
++it; ++it;
needUpdate = it->isSpace(); needUpdate = it->isSpace();
// Input two chars at once in Chinese.
if (!needUpdate && text.size() > 2) {
++it;
needUpdate = it->isSpace();
}
} }
if (needUpdate) { if (needUpdate) {
@ -248,13 +253,17 @@ void VEditor::filterTrailingSpace(QList<QTextEdit::ExtraSelection> &p_selects,
bool blockEnd = cursor.atBlockEnd(); bool blockEnd = cursor.atBlockEnd();
int blockNum = cursor.blockNumber(); int blockNum = cursor.blockNumber();
for (auto it = p_src.begin(); it != p_src.end(); ++it) { for (auto it = p_src.begin(); it != p_src.end(); ++it) {
if (blockEnd && it->cursor.blockNumber() == blockNum) { if (it->cursor.blockNumber() == blockNum) {
if (blockEnd) {
// When cursor is at block end, we do not display any trailing space // When cursor is at block end, we do not display any trailing space
// at current line. // at current line.
continue; continue;
} else if (!it->cursor.atBlockEnd()) { }
// Obsolete trailing space.
QString text = cursor.block().text();
if (!text.isEmpty() && !text[text.size() - 1].isSpace()) {
continue; continue;
}
} else { } else {
p_selects.append(*it); p_selects.append(*it);
} }