From cfe2df52b22f0957c9bed8f7fa7efea030d9439f Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Wed, 28 Jul 2021 23:34:35 +0200
Subject: [PATCH] UI: Add basic syntax highlighting to scripts

---
 src/UI/DocumentViews/TimingView.cc      | 2 +-
 src/UI/ScriptDocumentView.cc            | 2 ++
 src/UI/ScriptDocumentView.hh            | 2 ++
 src/UI/ScriptViews/ScriptHighlighter.hh | 6 +++---
 4 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/UI/DocumentViews/TimingView.cc b/src/UI/DocumentViews/TimingView.cc
index 8754ec09..0ef6c16b 100644
--- a/src/UI/DocumentViews/TimingView.cc
+++ b/src/UI/DocumentViews/TimingView.cc
@@ -20,7 +20,7 @@ TimingView::TimingView(QImage img, quint64 soundLength, QWidget *parent) noexcep
 {
     scene = new TimingScene(img, soundLength, this);
     setFixedHeight(img.height());
-    setMaximumHeight(img.height() + horizontalScrollBar()->height());
+    setMaximumHeight(img.height());
     setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum);
diff --git a/src/UI/ScriptDocumentView.cc b/src/UI/ScriptDocumentView.cc
index f529e4f0..9a00fffb 100644
--- a/src/UI/ScriptDocumentView.cc
+++ b/src/UI/ScriptDocumentView.cc
@@ -1,5 +1,6 @@
 #include "ScriptDocumentView.hh"
 #include "ScriptViews/ScriptEditor.hh"
+#include "ScriptViews/ScriptHighlighter.hh"
 #include "../VivyApplication.hh"
 
 #include <QVBoxLayout>
@@ -9,6 +10,7 @@ using namespace Vivy;
 ScriptDocumentView::ScriptDocumentView(const QString &path, QWidget *parent)
     : AbstractDocumentView(AbstractDocumentView::Type::Script, parent)
     , editor(new ScriptEditor(this))
+    , syntax(new ScriptHighlighter(editor->document()))
 {
     QFile textFile(path);
     if (!textFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
diff --git a/src/UI/ScriptDocumentView.hh b/src/UI/ScriptDocumentView.hh
index 530b9bfa..15b2be98 100644
--- a/src/UI/ScriptDocumentView.hh
+++ b/src/UI/ScriptDocumentView.hh
@@ -14,6 +14,7 @@
 namespace Vivy
 {
 class ScriptEditor;
+class ScriptHighlighter;
 
 class ScriptDocumentView final : public AbstractDocumentView {
     Q_OBJECT
@@ -36,6 +37,7 @@ public:
 
 private:
     ScriptEditor *editor{ nullptr };
+    ScriptHighlighter *syntax{ nullptr };
 };
 }
 
diff --git a/src/UI/ScriptViews/ScriptHighlighter.hh b/src/UI/ScriptViews/ScriptHighlighter.hh
index 15227bb0..655f8755 100644
--- a/src/UI/ScriptViews/ScriptHighlighter.hh
+++ b/src/UI/ScriptViews/ScriptHighlighter.hh
@@ -54,9 +54,9 @@ private:
     void resetHighlightingRule() noexcept;
 
     const HighlightingTheme darkHighlightingTheme = {
-        .functionForeground  = Qt::blue,
-        .keywordForeground   = Qt::darkBlue,
-        .valueForeground     = Qt::red,
+        .functionForeground  = Qt::darkCyan,
+        .keywordForeground   = Qt::darkYellow,
+        .valueForeground     = QColor(Qt::cyan).darker(120),
         .quotationForeground = Qt::darkGreen,
         .commentForeground   = QColor(Qt::darkGray).darker(120),
     };
-- 
GitLab