diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 175f6a4b7e9129f7a80b61dc37d7f814d8edc505..f5425585fbce0d4384a1ebf386d702955faa1503 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -815,6 +815,7 @@ void CppModelManager::onDocumentUpdated(Document::Ptr doc) warningFormat.setUnderlineStyle(QTextCharFormat::WaveUnderline); warningFormat.setUnderlineColor(Qt::darkYellow); +#ifdef QTCREATOR_WITH_ADVANCED_HIGHLIGHTER QSet<QPair<unsigned, unsigned> > lines; foreach (const Document::DiagnosticMessage &m, doc->diagnosticMessages()) { if (m.fileName() != fileName) @@ -859,7 +860,35 @@ void CppModelManager::onDocumentUpdated(Document::Ptr doc) sel.cursor = c; selections.append(sel); } +#else + QSet<int> lines; + foreach (const Document::DiagnosticMessage &m, doc->diagnosticMessages()) { + if (m.fileName() != fileName) + continue; + else if (lines.contains(m.line())) + continue; + + lines.insert(m.line()); + QTextEdit::ExtraSelection sel; + if (m.isWarning()) + sel.format = warningFormat; + else + sel.format = errorFormat; + + QTextCursor c(ed->document()->findBlockByNumber(m.line() - 1)); + const QString text = c.block().text(); + for (int i = 0; i < text.size(); ++i) { + if (! text.at(i).isSpace()) { + c.setPosition(c.position() + i); + break; + } + } + c.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); + sel.cursor = c; + selections.append(sel); + } +#endif QList<Editor> todo; foreach (const Editor &e, todo) { if (e.textEditor != textEditor)