mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-21 17:51:03 +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.
This commit is contained in:
parent
7eea0b6fa8
commit
10f6eb2e7e
@ -453,7 +453,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);
|
||||
|
@ -20,8 +20,9 @@ namespace lyx {
|
||||
namespace frontend {
|
||||
|
||||
|
||||
LaTeXHighlighter::LaTeXHighlighter(QTextDocument * parent)
|
||||
: QSyntaxHighlighter(parent)
|
||||
LaTeXHighlighter::LaTeXHighlighter(QTextDocument * parent,
|
||||
bool const at_letter)
|
||||
: QSyntaxHighlighter(parent), at_letter_(at_letter)
|
||||
{
|
||||
auto blend = [](QColor color1, QColor color2) {
|
||||
int r = 0.5 * (color1.red() + color2.red());
|
||||
@ -91,7 +92,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,8 @@ namespace frontend {
|
||||
class LaTeXHighlighter : public QSyntaxHighlighter
|
||||
{
|
||||
public:
|
||||
LaTeXHighlighter(QTextDocument * parent);
|
||||
explicit LaTeXHighlighter(QTextDocument * parent,
|
||||
bool const at_letter = false);
|
||||
|
||||
protected:
|
||||
void highlightBlock(QString const & text);
|
||||
@ -35,6 +36,8 @@ private:
|
||||
QTextCharFormat keywordFormat;
|
||||
QTextCharFormat mathFormat;
|
||||
QTextCharFormat warningFormat;
|
||||
// is at a letter (as in the preamble)
|
||||
bool const at_letter_;
|
||||
};
|
||||
|
||||
} // namespace frontend
|
||||
|
Loading…
Reference in New Issue
Block a user