From: Juergen Spitzmueller Date: Tue, 18 Jul 2023 13:12:54 +0000 (+0200) Subject: Support option snippets in the LaTeXHighlighter X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=6603ae22421479618cf0f752bf05a0795d9f7b3d;p=features.git Support option snippets in the LaTeXHighlighter --- diff --git a/src/frontends/qt/GuiDocument.cpp b/src/frontends/qt/GuiDocument.cpp index e8c8c19e8a..3d717610af 100644 --- a/src/frontends/qt/GuiDocument.cpp +++ b/src/frontends/qt/GuiDocument.cpp @@ -1774,8 +1774,8 @@ GuiDocument::GuiDocument(GuiView & lv) pdfSupportModule->subjectLE)); pdfSupportModule->keywordsLE->setValidator(new NoNewLineValidator( pdfSupportModule->keywordsLE)); - (void) new LaTeXHighlighter(pdfSupportModule->optionsTE->document(), true, true); - (void) new LaTeXHighlighter(pdfSupportModule->metadataTE->document(), true, true); + (void) new LaTeXHighlighter(pdfSupportModule->optionsTE->document(), true, true, true); + (void) new LaTeXHighlighter(pdfSupportModule->metadataTE->document(), true, true, true); for (int i = 0; backref_opts[i][0]; ++i) pdfSupportModule->backrefCO->addItem(qt_(backref_opts_gui[i])); diff --git a/src/frontends/qt/LaTeXHighlighter.cpp b/src/frontends/qt/LaTeXHighlighter.cpp index 8336f7aa56..9e24c72adf 100644 --- a/src/frontends/qt/LaTeXHighlighter.cpp +++ b/src/frontends/qt/LaTeXHighlighter.cpp @@ -20,8 +20,8 @@ namespace lyx { namespace frontend { -LaTeXHighlighter::LaTeXHighlighter(QTextDocument * parent, bool at_letter, bool keyval) - : QSyntaxHighlighter(parent), at_letter_(at_letter), keyval_(keyval) +LaTeXHighlighter::LaTeXHighlighter(QTextDocument * parent, bool at_letter, bool keyval, bool optsnippet) + : QSyntaxHighlighter(parent), at_letter_(at_letter), keyval_(keyval), optsnippet_(optsnippet) { auto blend = [](QColor color1, QColor color2) { int r = 0.5 * (color1.red() + color2.red()); @@ -44,8 +44,9 @@ LaTeXHighlighter::LaTeXHighlighter(QTextDocument * parent, bool at_letter, bool } -void LaTeXHighlighter::highlightBlock(QString const & text) +void LaTeXHighlighter::highlightBlock(QString const & text_in) { + QString const text = (optsnippet_) ? '[' + text_in + ']' : text_in; // keyval if (keyval_) { // Highlight key-val options. Used in some option widgets. diff --git a/src/frontends/qt/LaTeXHighlighter.h b/src/frontends/qt/LaTeXHighlighter.h index 7a80d1fa26..5f7108b4b4 100644 --- a/src/frontends/qt/LaTeXHighlighter.h +++ b/src/frontends/qt/LaTeXHighlighter.h @@ -27,7 +27,8 @@ class LaTeXHighlighter : public QSyntaxHighlighter public: explicit LaTeXHighlighter(QTextDocument * parent, bool at_letter = false, - bool keyval = false); + bool keyval = false, + bool optsnippet = false); protected: void highlightBlock(QString const & text) override; @@ -43,6 +44,8 @@ private: bool const at_letter_; // highlight keyval options? bool const keyval_; + // option snippet? + bool const optsnippet_; }; } // namespace frontend