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.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h b/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h
new file mode 100644
index 0000000..bf978d2
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h
@@ -0,0 +1,75 @@
+#ifndef JAVASCRIPTSYNTAXHIGHLIGHTER_H
+#define JAVASCRIPTSYNTAXHIGHLIGHTER_H
+
+/*
+ This file is part of the Ofi Labs X2 project.
+
+ Copyright (C) 2010 Ariya Hidayat <ariya.hidayat@gmail.com>
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the <organization> nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#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 keywordsFormat;
+};
+
+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_AUTHOR("sqlitestudio.pl")
+
+ public:
+ QString getLanguageName() const;
+ QSyntaxHighlighter* createSyntaxHighlighter(QWidget* textEdit) const;
+};
+#endif // JAVASCRIPTSYNTAXHIGHLIGHTER_H