Fix highlighting of C/C++ line continuation backslashes

The backslash itself is not a token, so we must make sure to only format
the trailing whitespace characters as visual whitespace, instead of
everything trailing.

Broke in a92694596e

Task-number: QTCREATORBUG-987
Change-Id: I4e9e84d29513ea317d7e3bde6c6b4c43749cb649
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Eike Ziller
2017-05-16 12:59:36 +02:00
parent a901916710
commit 21a246ac38
3 changed files with 8 additions and 7 deletions

View File

@@ -477,15 +477,15 @@ void SyntaxHighlighter::setFormat(int start, int count, const QFont &font)
setFormat(start, count, format);
}
void SyntaxHighlighter::formatSpaces(const QString &text)
void SyntaxHighlighter::formatSpaces(const QString &text, int start, int count)
{
Q_D(const SyntaxHighlighter);
int offset = 0;
const int length = text.length();
while (offset < length) {
int offset = start;
const int end = std::min(start + count, text.length());
while (offset < end) {
if (text.at(offset).isSpace()) {
int start = offset++;
while (offset < length && text.at(offset).isSpace())
while (offset < end && text.at(offset).isSpace())
++offset;
setFormat(start, offset - start, d->whitespaceFormat);
} else {