mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-24 18:43:37 +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
|
||||
// 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->setWordWrapMode(QTextOption::NoWrap);
|
||||
setFocusProxy(preambleTE);
|
||||
|
@ -31,8 +31,8 @@ QColor blend(QColor color1, QColor color2) {
|
||||
}
|
||||
|
||||
|
||||
LaTeXHighlighter::LaTeXHighlighter(QTextDocument * parent)
|
||||
: QSyntaxHighlighter(parent)
|
||||
LaTeXHighlighter::LaTeXHighlighter(QTextDocument * parent, bool at_letter)
|
||||
: QSyntaxHighlighter(parent), at_letter_(at_letter)
|
||||
{
|
||||
QPalette palette = QPalette();
|
||||
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);
|
||||
}
|
||||
// \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);
|
||||
while (index >= 0) {
|
||||
int length = exprKeyword.matchedLength();
|
||||
|
@ -25,7 +25,7 @@ namespace frontend {
|
||||
class LaTeXHighlighter : public QSyntaxHighlighter
|
||||
{
|
||||
public:
|
||||
LaTeXHighlighter(QTextDocument * parent);
|
||||
explicit LaTeXHighlighter(QTextDocument * parent, bool at_letter = false);
|
||||
|
||||
protected:
|
||||
void highlightBlock(QString const & text);
|
||||
@ -35,6 +35,8 @@ private:
|
||||
QTextCharFormat keywordFormat;
|
||||
QTextCharFormat mathFormat;
|
||||
QTextCharFormat warningFormat;
|
||||
// is at a letter? (as in the preamble)
|
||||
bool const at_letter_;
|
||||
};
|
||||
|
||||
} // namespace frontend
|
||||
|
@ -21,9 +21,12 @@ What's new
|
||||
|
||||
* 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).
|
||||
|
||||
- Names containing @ are now recognised by the syntax highlighter in the
|
||||
preamble.
|
||||
|
||||
|
||||
* DOCUMENTATION AND LOCALIZATION
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user