From 687912a82ce5889749c0d66f6af4cc58f30ae8eb Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Fri, 22 Nov 2019 13:02:26 +0100 Subject: [PATCH] More work on the script editor --- libnymea-app-core/libnymea-app-core.h | 5 +- libnymea-app-core/libnymea-app-core.pro | 4 + .../scripting/codecompletion.cpp | 533 ++++++++++++++++++ libnymea-app-core/scripting/codecompletion.h | 77 +++ .../scripting/completionmodel.cpp | 92 +++ libnymea-app-core/scripting/completionmodel.h | 65 +++ libnymea-app-core/scriptmanager.cpp | 35 +- libnymea-app-core/scriptmanager.h | 10 +- libnymea-app-core/scriptsyntaxhighlighter.cpp | 305 +++------- libnymea-app-core/scriptsyntaxhighlighter.h | 141 +---- libnymea-common/types/scripts.cpp | 18 + libnymea-common/types/scripts.h | 4 + nymea-app/images.qrc | 1 + nymea-app/resources.qrc | 3 + nymea-app/ui/MagicPage.qml | 2 +- nymea-app/ui/Nymea.qml | 1 + nymea-app/ui/images/script.svg | 157 ++++++ nymea-app/ui/magic/ScriptEditor.qml | 278 ++++++--- nymea-app/ui/magic/ScriptsPage.qml | 4 + .../ui/magic/scripting/CompletionBox.qml | 106 ++++ nymea-app/ui/magic/scripting/EditorPane.qml | 108 ++++ nymea-app/ui/magic/scripting/LineNumbers.qml | 57 ++ 22 files changed, 1555 insertions(+), 451 deletions(-) create mode 100644 libnymea-app-core/scripting/codecompletion.cpp create mode 100644 libnymea-app-core/scripting/codecompletion.h create mode 100644 libnymea-app-core/scripting/completionmodel.cpp create mode 100644 libnymea-app-core/scripting/completionmodel.h create mode 100644 nymea-app/ui/images/script.svg create mode 100644 nymea-app/ui/magic/scripting/CompletionBox.qml create mode 100644 nymea-app/ui/magic/scripting/EditorPane.qml create mode 100644 nymea-app/ui/magic/scripting/LineNumbers.qml diff --git a/libnymea-app-core/libnymea-app-core.h b/libnymea-app-core/libnymea-app-core.h index 11ebba7a..a9d21c28 100644 --- a/libnymea-app-core/libnymea-app-core.h +++ b/libnymea-app-core/libnymea-app-core.h @@ -70,6 +70,8 @@ #include "types/networkdevice.h" #include "scriptsyntaxhighlighter.h" #include "scriptmanager.h" +#include "scripting/codecompletion.h" +#include "scripting/completionmodel.h" #include "types/script.h" #include "types/scripts.h" @@ -239,7 +241,8 @@ void registerQmlTypes() { qmlRegisterUncreatableType(uri, 1, 0, "Scripts", "Getit from ScriptManager"); qmlRegisterUncreatableType