Skip to main content

Scripting-Studio-Editor und Bedienung

image-1655632187395.png


(1) Auswahl des aktiven Scriptes

Es werden beim Laden eines Filter immer gleichzeitig drei Skripte geladen, um das spätere Handling deutlich zu vereinfachen:

Speicherung unter
Titel
Zielstellung
Sichtbarkeit
\Daten\Scripts\<Name>.script Aktiver Filter Produktiver Filter Ja (ab 2.6) in den Filtermasken im Frontend außerhalb des Scripting-Studios
\Daten\Scripts\<Name>.script-dev Aktiver Filter ("Spielwiese") Test/Entwicklungsversion des produktiven Filters für Weiterentwicklungen, ohne den produktiven "Filter" kaputt zu entwickeln. Jeder Filter besitzt immer einen produktive und eine Entwicklungs(Sandbox)-Version. Eine Entwicklungsversion kann zur Produktiv-Version gemacht werden (wird hier kopiert) über das Hauptmenü "Projekte / Entwicklungsversion live nehmen". Nein nur im Scripting-Studio
\Daten\Scripts\Common.script Gemeinsame Bibliothek Hier sollte gemeinsam genutzte Funktionen und Hilfsroutinen ausgelagert werden, um effektiv in allen Filter zu arbeiten und Redundanzen zu vermeiden. Da auch das gegenseitige Einbinden der Standard-Scripte erlaubt ist, dient diese Sonderbehandlung aber der Effizienzsteigerung, um hier gezielte wiederverwendbare Funktionen und Procedures zu verlagern, um die eigentlichen Filter schlank und effizient zu halten. Nein nur im Scripting-Studio
\Daten\Scripts\Common.script-dev Gemeinsame Bibliothek ("Spielwiese") Test/Entwicklungsversion der gemeinsam genutzten Bibliothek Nein nur im Scripting-Studio

Hinweise zu Datensicherung und -Ablage

Da in Scripten sehr viel Zeit und Aufwand gesteckt werden kann, ist die Datensicherung nicht zu unterschätzen. Aktuell umgesetzt ist daher die Erstellung einer automatisches Backup-Version mit <Name>-backup-YYYYMMDD-HHMM bei jedem Speichervorgang (<F2>). Zu einem späteren Zeitpunkt ist auch die Synchronisation mit eigenen Dropbox-Instanzen vorgesehen. Aktuell werden diese Sicherungsdateien zu einem Script wieder gelöscht, wenn eine Script-Version "Verifiziert" wird (siehe Kontextmenü zu einem Filtereintrag (r.Maustaste über einen Filternamen)). 

(2)1a) Einstellungen

    Unterhalb

  • der Script-Auswahl findet sich ein kleines ein/ausklappbares Pannel "Einstellungen".

    Für weitere Ausbaustufen wurde sofort ein Einstellungs-Grid angelegt, was praktisch unendlich fortgeführt werden kann durch seine Scrollfähigkeit. Beim Start sind nur wenige Einstellungen vorhanden:

      • Codebeispiele ausführbar: Dies bezieht sich auf die unter (4) gezeigten Code-Beispiele, die so beeinflusst werden. Im Standard sind die Beispiele nur als Hinweise für die abzubildende Mindeststruktur gedacht. Für die Sandbox ist es aber wahrscheinlich interessant auch lauffähige Codebeispiele zu haben. Die Einstellung wird geändert durch Klick in die Wert-Spalte, wo sich dann eine entsprechende Drop-Down-Box öffnet
      • Code-Folding nutzen: Im Programm können dann alle begin..end - Blöcke ein- und ausgeklappt werden. Dies erleichtert das Handling bei längeren Skripten.

    (3)2) Source-ExplorerBibliotheks-Zugriff

    Der Source-Explorer versucht zeitnah synchron zum QuellcodeUm die StrukturEntwicklung deszu Skriptesunterstützen wiederzugeben,werden wobeizwei unterschiedenGrundkonzepte wirdmit nachunterstützt:

    • procedures:Unterscheidung Allezwischen FunktionenEntwicklung (Sandbox) und Procedurenaktuell improduktivem Code, wobei Funktionen mit gelb markiert werden und proceduren mit grünCode
    • uses:Unterstützung Allevon eingebundenenBibliotheken Fremdbibliotheken.insb. Diesauch kanngemeinsam diegenutzter Common-BibliothekBibliotheken seinzwischen (sieheden (1))unterschiedlichen oderScripten alle anderen vorhandenen Skripte
    • variables: Alle nicht lokalen Variablen (innerhalb einer procedure oder function definiert) werden hier gezeigt.

    Mit DoppelklickWechsel aufzwischen einenden EintragReitern springtwird derzwischen Cursorden automatischverschiedenen andahinterliegenden dieCode-Fragmenten zugehörige Programmcode-Position.gewechselt.

    (4) Code-Beispiele

    Dies sind aktuell nicht erweiterbare Code-Beispiele (TODO: Pflege sollte außerhalb der IDE möglich sein und auch über Updates ermöglicht werden z.B. ScriptStudio.MOD).

    Mit Doppelklick auf einen Eintrag wird das Codebeispiel übernommen. Aktuell existiert eine Einstellung unter (1), um die Beispiele entweder nur als Struktur oder lauffähig zu verwenden.

    (5) Debug-Ausgabe

    Dies ist eigentlich eines der Highlights der Umsetzung und ist auch bisher nur eine erste Version, die spätere deutlich ausgebaut wird. Ziel ist es die Ergebnisse aus einem Filter-Lauf übersichtlich und performant darzustellen. Die Debug-Ausgabe wird bis zur endgültigen Version erweitert, so dass direkt Watchlisten-Einträge erzeugt werden können (analog der heutigen Lösung).

    Bereits jetzt sind folgende Besonderheiten möglich:

    • Nutzung von Gruppen, um Ergebnisse im Filtervorgang zu gruppieren. Im Standard sind aktuell 3 Gruppen angelegt
    • Ein/Ausklappen von Gruppen
    • Nutzung von Checkbox-Markierungen 
    • Mehrspaltiges Layout, womit Informationen anders und strukturiert ausgegeben werden können


    (6)3) Code

    Hier befindet sich der Quelltexteditor der analog einem Notepad funktioniert mit den vorhandenen Tastenkombinationen (Strg-C-Kopieren, Strg-V-Einfügen etc.). Die Besonderheit ist hier, dass mit dem vorhandenen Code ein automatische Code-Highlighting erfolgt d.h. Schlüsselwörter oder Strukturen werden automatisch hervorgehoben in Schriftart und Form. So werden Kommentare beispielsweise immer kursiv/blau dargestellt.

    Für die Entwicklung sind besonders folgende Funktionen relevant:

    • Strg + "." zeigt die aktuell gültigen Funktionen/Konstanten/Variablen/Methoden an
    • ( ) nach einer Procedure oder Funktion zeigt alle gültigen Werte an

    Übergreifend unabhängig vom Quell-Code kann mit:

    • F8 - Der Quellcode überprüft werden. Fehler werden in der Statusleiste direkt angezeigt und der Cursor springt automatisch zur Fehlerstelle
    • F9 - Der Quellcode wird überprüft und danach ausgeführt.  Im Datenverzeichnis wird im Erfolgsfall unter Unitname.PSC der übersetzte Quellcode angelegt und ab diesem Zeitpunkt kann dieser Filter als Bibliothek in anderen benutzt werden über "uses <Unitname>"

    (4) Debug-Ausgabe

    Dies ist eigentlich eines der Highlights der Umsetzung und ist auch bisher nur eine erste Version, die spätere deutlich ausgebaut wird. Ziel ist es die Ergebnisse aus einem Filter-Lauf übersichtlich und performant darzustellen. Die Debug-Ausgabe wird bis zur endgültigen Version erweitert, so dass direkt Watchlisten-Einträge erzeugt werden können (analog der heutigen Lösung).

    Bereits jetzt sind folgende Besonderheiten möglich:

    • Nutzung von Gruppen, um Ergebnisse im Filtervorgang zu gruppieren. Im Standard sind aktuell 3 Gruppen angelegt
    • Ein/Ausklappen von Gruppen
    • Nutzung von Checkbox-Markierungen 
    • Mehrspaltiges Layout, womit Informationen anders und strukturiert ausgegeben werden können

    (5) Source-Explorer

    Der Source-Explorer versucht zeitnah synchron zum Quellcode die Struktur des Skriptes wiederzugeben, wobei unterschieden wird nach

    • procedures: Alle Funktionen und Proceduren im Code, wobei Funktionen mit gelb markiert werden und proceduren mit grün
    • uses: Alle eingebundenen Fremdbibliotheken. Dies kann die Common-Bibliothek sein (siehe (1)) oder alle anderen vorhandenen Skripte
    • variables: Alle nicht lokalen Variablen (innerhalb einer procedure oder function definiert) werden hier gezeigt.

    Mit Doppelklick auf einen Eintrag springt der Cursor automatisch an die zugehörige Programmcode-Position.

    (6) Code-Beispiele

    Dies sind aktuell nicht erweiterbare Code-Beispiele (TODO: Pflege sollte außerhalb der IDE möglich sein und auch über Updates ermöglicht werden z.B. ScriptStudio.MOD).

    Mit Doppelklick auf einen Eintrag wird das Codebeispiel übernommen. Aktuell existiert eine Einstellung unter (1), um die Beispiele entweder nur als Struktur oder lauffähig zu verwenden.