mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 13:31:49 +00:00
latexHighlighter: handles multiline reg expression of all sorts of displayed mathematics environments
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17573 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
bbc02f6ada
commit
ae6c7d2c51
@ -49,12 +49,43 @@ void latexHighlighter::highlightBlock(QString const & text)
|
|||||||
index = text.indexOf(exprMath, index + length);
|
index = text.indexOf(exprMath, index + length);
|
||||||
}
|
}
|
||||||
// [ ]
|
// [ ]
|
||||||
QRegExp exprDispMath("\\[[^\\]]*\\]");
|
QRegExp exprStartDispMath("(\\\\\\[|"
|
||||||
index = text.indexOf(exprDispMath);
|
"\\\\begin\\{equation\\**\\}|"
|
||||||
while (index >= 0) {
|
"\\\\begin\\{eqnarray\\**\\}|"
|
||||||
int length = exprDispMath.matchedLength();
|
"\\\\begin\\{align(ed|at)*\\**\\}|"
|
||||||
setFormat(index, length, mathFormat);
|
"\\\\begin\\{flalign\\**\\}|"
|
||||||
index = text.indexOf(exprDispMath, index + length);
|
"\\\\begin\\{gather\\**\\}|"
|
||||||
|
"\\\\begin\\{multline\\**\\}|"
|
||||||
|
"\\\\begin\\{array\\**\\}|"
|
||||||
|
"\\\\begin\\{cases\\**\\}"
|
||||||
|
")");
|
||||||
|
QRegExp exprEndDispMath("(\\\\\\]|"
|
||||||
|
"\\\\end\\{equation\\**\\}|"
|
||||||
|
"\\\\end\\{eqnarray\\**\\}|"
|
||||||
|
"\\\\end\\{align(ed|at)*\\**\\}|"
|
||||||
|
"\\\\end\\{flalign\\**\\}|"
|
||||||
|
"\\\\end\\{gather\\**\\}|"
|
||||||
|
"\\\\end\\{multline\\**\\}|"
|
||||||
|
"\\\\end\\{array\\**\\}|"
|
||||||
|
"\\\\end\\{cases\\**\\}"
|
||||||
|
")");
|
||||||
|
int startIndex = 0;
|
||||||
|
// if previous block was in 'disp math'
|
||||||
|
// start search from 0 (for end disp math)
|
||||||
|
// otherwise, start search from 'begin disp math'
|
||||||
|
if (previousBlockState() != 1)
|
||||||
|
startIndex = text.indexOf(exprStartDispMath);
|
||||||
|
while (startIndex >= 0) {
|
||||||
|
int endIndex = text.indexOf(exprEndDispMath, startIndex);
|
||||||
|
int length;
|
||||||
|
if (endIndex == -1) {
|
||||||
|
setCurrentBlockState(1);
|
||||||
|
length = text.length() - startIndex;
|
||||||
|
} else {
|
||||||
|
length = endIndex - startIndex + exprEndDispMath.matchedLength();
|
||||||
|
}
|
||||||
|
setFormat(startIndex, length, mathFormat);
|
||||||
|
startIndex = text.indexOf(exprStartDispMath, startIndex + length);
|
||||||
}
|
}
|
||||||
// \whatever
|
// \whatever
|
||||||
QRegExp exprKeyword("\\\\[A-Za-z]+");
|
QRegExp exprKeyword("\\\\[A-Za-z]+");
|
||||||
|
Loading…
Reference in New Issue
Block a user