From 1a1e43c175bcba94d84dbb1368329fe45827bb16 Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Thu, 14 Apr 2016 12:49:55 -0400 Subject: Add a start for a Qt text editor (mainly for playing around - but it could turn into something useful down the road). --- desktop-utilities/lumina-textedit/syntaxSupport.h | 45 +++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 desktop-utilities/lumina-textedit/syntaxSupport.h (limited to 'desktop-utilities/lumina-textedit/syntaxSupport.h') diff --git a/desktop-utilities/lumina-textedit/syntaxSupport.h b/desktop-utilities/lumina-textedit/syntaxSupport.h new file mode 100644 index 00000000..e8944aa4 --- /dev/null +++ b/desktop-utilities/lumina-textedit/syntaxSupport.h @@ -0,0 +1,45 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2015, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#ifndef _LUMINA_SYNTAX_HIGHLIGHER_CPP_H +#define _LUMINA_SYNTAX_HIGHLIGHER_CPP_H + +#include +#include +#include +#include + +struct SyntaxRule{ + QRegExp pattern; + QTextCharFormat format; +}; + +class Custom_Syntax : public QSyntaxHighlighter{ + Q_OBJECT +private: + QVector rules; +public: + Custom_Syntax(QTextDocument *parent = 0) : QSyntaxHighlighter(parent){ + } + ~Custom_Syntax(){} + + static QStringList availableRules(); + static QString ruleForFile(QString filename); + void loadRules(QString type); +protected: + void highlightBlock(const QString &text){ + for(int i=0; i=0){ + int len = patt.matchedLength(); + setFormat(index, len, rules[i].format); + index = patt.indexIn(text, index+len); //go to the next match + } + } + } +}; +#endif \ No newline at end of file -- cgit