* Full author contact details are available in file CREDITS.
*/
+#include <config.h>
+
#include "LaTeXHighlighter.h"
+#include "qt_helpers.h"
#include <QString>
#include <QTextDocument>
keywordFormat.setFontWeight(QFont::Bold);
commentFormat.setForeground(Qt::darkGray);
mathFormat.setForeground(Qt::red);
+ warningFormat.setForeground(Qt::red);
+ warningFormat.setFontWeight(QFont::Bold);
}
setFormat(index, length, keywordFormat);
index = text.indexOf(exprKeyword, index + length);
}
- // comment
- static const QRegExp exprComment("(^|[^\\\\])%.*$");
- index = text.indexOf(exprComment);
+ // %comment
+ // Treat a line as a comment starting at a percent sign
+ // * that is the first character in a line
+ // * that is preceded by
+ // ** an even number of backslashes
+ // ** any character other than a backslash
+ QRegExp exprComment("(?:^|[^\\\\])(?:\\\\\\\\)*(%).*$");
+ text.indexOf(exprComment);
+ index = exprComment.pos(1);
while (index >= 0) {
- int const length = exprComment.matchedLength();
+ int const length = exprComment.matchedLength()
+ - (index - exprComment.pos(0));
setFormat(index, length, commentFormat);
- index = text.indexOf(exprComment, index + length);
+ text.indexOf(exprComment, index + length);
+ index = exprComment.pos(1);
+ }
+ // <LyX Warning: ...>
+ QString lyxwarn = qt_("LyX Warning: ");
+ QRegExp exprWarning("<" + lyxwarn + "[^<]*>");
+ index = text.indexOf(exprWarning);
+ while (index >= 0) {
+ int length = exprWarning.matchedLength();
+ setFormat(index, length, warningFormat);
+ index = text.indexOf(exprWarning, index + length);
}
}