]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/LaTeXHighlighter.cpp
* fix spelling in comments to please John.
[lyx.git] / src / frontends / qt4 / LaTeXHighlighter.cpp
index f8e498f97dbea93935e37ec845f16d83769733f3..9a9e5459a48bcb70bde0f51ef1516c21e669d066 100644 (file)
 #include "LaTeXHighlighter.h"
 #include "qt_helpers.h"
 
-#include "support/lassert.h"
-
 #include <QString>
 #include <QTextDocument>
 
-
-using namespace lyx::support;
-
 namespace lyx {
 namespace frontend {
 
@@ -40,11 +35,11 @@ void LaTeXHighlighter::highlightBlock(QString const & text)
 {
        // $ $
        static const QRegExp exprMath("\\$[^\\$]*\\$");
-       int index = text.indexOf(exprMath);
+       int index = exprMath.indexIn(text);
        while (index >= 0) {
                int length = exprMath.matchedLength();
                setFormat(index, length, mathFormat);
-               index = text.indexOf(exprMath, index + length);
+               index = exprMath.indexIn(text, index + length);
        }
        // [ ]
        static const QRegExp exprStartDispMath("(\\\\\\[|"
@@ -72,11 +67,9 @@ void LaTeXHighlighter::highlightBlock(QString const & text)
        // start search from 0 (for end disp math)
        // otherwise, start search from 'begin disp math'
        if (previousBlockState() != 1)
-               startIndex = text.indexOf(exprStartDispMath);
-       // We try to avoid infinite loops...
-       static size_t max_loop = 1000;
-       for (size_t i = 0; i != max_loop; ++i) {
-               int endIndex = text.indexOf(exprEndDispMath, startIndex);
+               startIndex = exprStartDispMath.indexIn(text);
+       while (startIndex >= 0) {
+               int endIndex = exprEndDispMath.indexIn(text, startIndex);
                int length;
                if (endIndex == -1) {
                        setCurrentBlockState(1);
@@ -85,24 +78,16 @@ void LaTeXHighlighter::highlightBlock(QString const & text)
                        length = endIndex - startIndex + exprEndDispMath.matchedLength();
                }
                setFormat(startIndex, length, mathFormat);
-               startIndex = text.indexOf(exprStartDispMath, startIndex + length);
-               if (startIndex == -1)
-                       break;
+               startIndex = exprStartDispMath.indexIn(text, startIndex + length);
        }
-       LASSERT(startIndex == -1, return);
-
        // \whatever
        static const QRegExp exprKeyword("\\\\[A-Za-z]+");
-       index = text.indexOf(exprKeyword);
-       for (size_t i = 0; i != max_loop; ++i) {
+       index = exprKeyword.indexIn(text);
+       while (index >= 0) {
                int length = exprKeyword.matchedLength();
                setFormat(index, length, keywordFormat);
-               index = text.indexOf(exprKeyword, index + length);
-               if (index == -1)
-                       break;
+               index = exprKeyword.indexIn(text, index + length);
        }
-       LASSERT(index == -1, return);
-
        // %comment
        // Treat a line as a comment starting at a percent sign
        // * that is the first character in a line
@@ -110,31 +95,24 @@ void LaTeXHighlighter::highlightBlock(QString const & text)
        // ** an even number of backslashes
        // ** any character other than a backslash
        QRegExp exprComment("(?:^|[^\\\\])(?:\\\\\\\\)*(%).*$"); 
-       text.indexOf(exprComment);
+       exprComment.indexIn(text);
        index = exprComment.pos(1);
-       for (size_t i = 0; i != max_loop; ++i) {
+       while (index >= 0) {
                int const length = exprComment.matchedLength() 
                                 - (index - exprComment.pos(0));
                setFormat(index, length, commentFormat);
-               text.indexOf(exprComment, index + length);
+               exprComment.indexIn(text, index + length);
                index = exprComment.pos(1);
-               if (index == -1)
-                       break;
        }
-       LASSERT(index == -1, return);
-
        // <LyX Warning: ...>
        QString lyxwarn = qt_("LyX Warning: ");
        QRegExp exprWarning("<" + lyxwarn + "[^<]*>");
-       index = text.indexOf(exprWarning);
-       for (size_t i = 0; i != max_loop; ++i) {
+       index = exprWarning.indexIn(text);
+       while (index >= 0) {
                int length = exprWarning.matchedLength();
                setFormat(index, length, warningFormat);
-               index = text.indexOf(exprWarning, index + length);
-               if (index == -1)
-                       break;
+               index = exprWarning.indexIn(text, index + length);
        }
-       LASSERT(index == -1, return);
 }
 
 } // namespace frontend