summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h51
1 files changed, 21 insertions, 30 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h b/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h
index 3d701de..3d5e6bd 100644
--- a/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h
+++ b/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h
@@ -33,46 +33,37 @@
#include "guiSQLiteStudio_global.h"
#include "plugins/builtinplugin.h"
#include "syntaxhighlighterplugin.h"
-#include <QSyntaxHighlighter>
-#include <QtGui>
-/**
- * @brief The JavaScript (also QtScript) highlighter
- *
- * This class is mostly copied from Ofi Labs X2 project. It has been slightly modified for SQLiteStudio needs.
- * See the source code for the full license disclaimer.
- */
-class GUI_API_EXPORT JavaScriptSyntaxHighlighter : public QSyntaxHighlighter
-{
- public:
- explicit JavaScriptSyntaxHighlighter(QTextDocument *parent = 0);
- void mark(const QString &str, Qt::CaseSensitivity caseSensitivity);
-
- protected:
- void highlightBlock(const QString &text);
-
- private:
- QSet<QString> m_keywords;
- QSet<QString> m_knownIds;
- QString m_markString;
- Qt::CaseSensitivity m_markCaseSensitivity;
- QTextCharFormat normalFormat;
- QTextCharFormat keywordsFormat;
- QTextCharFormat commentFormat;
- QTextCharFormat stringFormat;
-};
+#include <QTextCharFormat>
class GUI_API_EXPORT JavaScriptHighlighterPlugin : public BuiltInPlugin, public SyntaxHighlighterPlugin
{
Q_OBJECT
- SQLITESTUDIO_PLUGIN_TITLE("QtScript highlighter")
- SQLITESTUDIO_PLUGIN_DESC("QtScript (JavaScript) syntax highlighter.")
- SQLITESTUDIO_PLUGIN_VERSION(10000)
+ SQLITESTUDIO_PLUGIN_TITLE("JavaScript highlighter")
+ SQLITESTUDIO_PLUGIN_DESC("JavaScript syntax highlighter.")
+ SQLITESTUDIO_PLUGIN_VERSION(10200)
SQLITESTUDIO_PLUGIN_AUTHOR("sqlitestudio.pl")
public:
+ enum State
+ {
+ NORMAL,
+ NUMBER,
+ KEYWORDS,
+ COMMENT,
+ STRING,
+ EXPRESSION
+ };
+
+ bool init();
QString getLanguageName() const;
QSyntaxHighlighter* createSyntaxHighlighter(QWidget* textEdit) const;
+ void refreshFormats();
+ QString previewSampleCode() const;
+
+ private:
+ QHash<State, QTextCharFormat> formats;
+
};
#endif // JAVASCRIPTSYNTAXHIGHLIGHTER_H