mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
LaTeX highlighter: make at a letter in the user preamble
Syntax highlighting now provides the appropriate cue that the user preamble is
inside \makeatletter…\makeatother.
(cherry picked from commit 10f6eb2e7e
)
This commit is contained in:
parent
8a42918b2f
commit
1dc8278fef
@ -452,7 +452,8 @@ PreambleModule::PreambleModule() : current_id_(0)
|
|||||||
{
|
{
|
||||||
// This is not a memory leak. The object will be destroyed
|
// This is not a memory leak. The object will be destroyed
|
||||||
// with this.
|
// with this.
|
||||||
(void) new LaTeXHighlighter(preambleTE->document());
|
// @ is letter in the LyX user preamble
|
||||||
|
(void) new LaTeXHighlighter(preambleTE->document(), true);
|
||||||
preambleTE->setFont(guiApp->typewriterSystemFont());
|
preambleTE->setFont(guiApp->typewriterSystemFont());
|
||||||
preambleTE->setWordWrapMode(QTextOption::NoWrap);
|
preambleTE->setWordWrapMode(QTextOption::NoWrap);
|
||||||
setFocusProxy(preambleTE);
|
setFocusProxy(preambleTE);
|
||||||
|
@ -31,8 +31,8 @@ QColor blend(QColor color1, QColor color2) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LaTeXHighlighter::LaTeXHighlighter(QTextDocument * parent)
|
LaTeXHighlighter::LaTeXHighlighter(QTextDocument * parent, bool at_letter)
|
||||||
: QSyntaxHighlighter(parent)
|
: QSyntaxHighlighter(parent), at_letter_(at_letter)
|
||||||
{
|
{
|
||||||
QPalette palette = QPalette();
|
QPalette palette = QPalette();
|
||||||
QColor text_color = palette.color(QPalette::Active, QPalette::Text);
|
QColor text_color = palette.color(QPalette::Active, QPalette::Text);
|
||||||
@ -96,7 +96,11 @@ void LaTeXHighlighter::highlightBlock(QString const & text)
|
|||||||
startIndex = exprStartDispMath.indexIn(text, startIndex + length);
|
startIndex = exprStartDispMath.indexIn(text, startIndex + length);
|
||||||
}
|
}
|
||||||
// \whatever
|
// \whatever
|
||||||
static const QRegExp exprKeyword("\\\\[A-Za-z]+");
|
static const QRegExp exprKeywordAtOther("\\\\[A-Za-z]+");
|
||||||
|
// \wh@tever
|
||||||
|
static const QRegExp exprKeywordAtLetter("\\\\[A-Za-z@]+");
|
||||||
|
QRegExp const & exprKeyword = at_letter_ ? exprKeywordAtLetter
|
||||||
|
: exprKeywordAtOther;
|
||||||
index = exprKeyword.indexIn(text);
|
index = exprKeyword.indexIn(text);
|
||||||
while (index >= 0) {
|
while (index >= 0) {
|
||||||
int length = exprKeyword.matchedLength();
|
int length = exprKeyword.matchedLength();
|
||||||
|
@ -25,7 +25,7 @@ namespace frontend {
|
|||||||
class LaTeXHighlighter : public QSyntaxHighlighter
|
class LaTeXHighlighter : public QSyntaxHighlighter
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LaTeXHighlighter(QTextDocument * parent);
|
explicit LaTeXHighlighter(QTextDocument * parent, bool at_letter = false);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void highlightBlock(QString const & text);
|
void highlightBlock(QString const & text);
|
||||||
@ -35,6 +35,8 @@ private:
|
|||||||
QTextCharFormat keywordFormat;
|
QTextCharFormat keywordFormat;
|
||||||
QTextCharFormat mathFormat;
|
QTextCharFormat mathFormat;
|
||||||
QTextCharFormat warningFormat;
|
QTextCharFormat warningFormat;
|
||||||
|
// is at a letter? (as in the preamble)
|
||||||
|
bool const at_letter_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace frontend
|
||||||
|
@ -21,9 +21,12 @@ What's new
|
|||||||
|
|
||||||
* USER INTERFACE
|
* USER INTERFACE
|
||||||
|
|
||||||
* When changing zoom level, show current value in status bar (bug
|
- When changing zoom level, show current value in status bar (bug
|
||||||
10212).
|
10212).
|
||||||
|
|
||||||
|
- Names containing @ are now recognised by the syntax highlighter in the
|
||||||
|
preamble.
|
||||||
|
|
||||||
|
|
||||||
* DOCUMENTATION AND LOCALIZATION
|
* DOCUMENTATION AND LOCALIZATION
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user