HM-CodeEditor für Windows mit CCU-Anbindung

Begonnen von BadenPower, 18 Januar 2018, 13:09:57

Vorheriges Thema - Nächstes Thema

BadenPower

HM-CodeEditor
Beschreibung des ReGaScript-Editors

Der HM-CodeEditor ist Bestandteil der HM-Internals.
Download hier: https://forum.fhem.de/index.php/topic,82923.msg750766.html#msg750766

wichtiger Hinweis:
Der HM-CodeEditor ist bis zum heutigen Zeitpunkt (2018 - Mai. 2023) der einzige existierende Editor mit vollwertiger Erkennung und automatisch korrekt hervorgehobener Darstellung der eingegebenen Homematic-Script- (Rega-Script)- Syntax. (falls irgendwann nicht mehr zutreffend, bitte melden)
Dies bedeutet, dass der Highlighter selbst erkennt, was der Benutzer geschrieben hat und nicht der Benutzer seinen Code so schreiben muss, dass in der Highlighter erkennt.

Letzteres ist bei allen anderen bekannten Editoren leider der Fall, was natürlich nicht im Sinne eines richtig arbeitenden Highlighter ist und somit der Editor seinen eigentlichen Zweck grundlegend verfehlt und für Laien sowie Exoerten eigentlich unbrauchbar ist, da die Syntax komplett falsch dargestellt wird.


Was kann der HM-CodeEditor?

Der HM-CodeEditor ist ein vollwertiger Editor, welcher speziell auf die Entwicklung von Skripten für die CCU abgestimmt wurde.
Die direkte Anbindung an die CCU zur Skriptausführung, zusammen mit dem Funktionsumfang, machen ihn somit einzigartig.

- spezieller Syntax-Highlighter für die HomeMatic-Skriptsprache (für verschiedene Firmware-Versionen)
- eingesetzte ReGa-Version (Highlighter-Typ) einstellbar oder automatisch ermittelbar
- automatisches Erkennen und Hervorheben veralterter oder zu neuer Syntax (entsprechend der ReGa-Version)
- Highlighter arbeitet syntax-abhängig auch bei mehrzeiligen Anweisungen
- synchrones mehrzeiliges Editieren von Worten/Text
- perfektionierte String ("" und '') und Ausrufezeichen (Ungleich bzw. Kommentar) Erkennung
- vollständiger Befehlsumfang enthalten
- alle Konstanten enthalten
- alle Variabletypen enthalten
- alle Namespaces enthalten
- alle vordeklarierten globalen Skriptvariablen enthalten
- zahlreiche Stringkonstanen wie Geräte- Kanal- und Datenpunktbezeichnungen enthalten
- automatische Code-Vervollständigung (z.B. für Methoden / Konstanten) mit Verwendungs-Typ-Angabe -> Screenshots/Beschreibung
- Objekttypbezogene Auswahlboxen der für den Objekttyp zulässigen Skriptmethoden -> Screenshots/Beschreibung
Auswahlbox zur Code-Vervollständigung der im Skript verwendeten eigenen Skript-Variable-Namen (Bezeichner) -> Screenshots/Beschreibung
- Autovervollständigung von Kürzeleingaben (nach eigenen Belieben anpassbar)
- Skripte direkt aus der Anwendung heraus auf der CCU ausführbar
- Skriptprüfung ("Skript testen") direkt aus der Anwendung heraus ausführbar
- schnelle Umschaltung zwischen mehreren CCUs
- Ausgabe der letzten Werte der eingesetzten Skriptvariablen
- Separates Ausgabefenster für zum Beispiel Mehrmonitor-Systeme anzeigbar
- LowLevel-Debugger - Syntaxfehler-Erkennung und Markierung direkt wärend der Eingabe. -> Screenshots/Beschreibung
- Integrierte Mauszeigerhilfe -> Screenshots/Beschreibung
- automatische Methoden-Prototypanzeige der verwendbaren Parameter -> Screenshots/Beschreibung
- umfangreiche Einstellmöglichkeiten zur individuellen Anpassung -> Screenshots/Beschreibung
- Schriftfarben des Highlighters den eigenen Wünschen entsprechend anpassbar


Tastaturbelegung:
Allgemein:

F2                  -> Skript auf CCU ausführen
Shift + F2          -> Skript auf CCU testen
Alt + F4            -> Editorfenster schließen


Datei:

Strg + N            -> neue Datei
Strg + O            -> Datei öffnen
Strg + S            -> Datei speichern
Strg + Alt + S      -> Datei speichern unter...
Strg + W            -> Datei schließen
Shift + Strg + W    -> alle Dateien schließen
Strg + P            -> Drucken


Eingabemarker:

Shift + Strg + B    -> zur zugeordneten Klammer springen

Links                -> ein Zeichen nach links
Rechts              -> ein Zeichen nach rechts
Hoch                -> eine Zeile nach oben
Hinunter            -> eine Zeile nach unten
Bild Hoch            -> eine Seite nach oben springen
Bild Hinunter        -> eine Seite nach unten springen
Pos1                -> zum Zeileanfang springen
End                  -> zum Zeilenende springen
Strg + Links        -> zum nächsten Wortanfang
Strg + Rechts        -> zum nächsten Wortende
Strg + Bild Hoch    -> zur ersten vollständig sichtbaren Zeile springen
Strg + Bild Hinunter -> zur letzten vollständig sichtbaren Zeile springen
Strg + Pos1          -> zum Skriptanfang springen
Strg + End          -> zum Skriptende springen


Auswahl:

Shift + Strg + C    -> Auswahlmodus "Spalten" wählen
Shift + Strg + L    -> Auswahlmodus "Zeilen" wählen
Shift + Strg + N    -> Auswahlmodus "normal" wählen


Ansicht:  (Eingabemarker verbleibt immer im sichtbaren Bereich)

Strg + Hoch          -> Ansicht nach oben scrollen
Strg + Hinunter      -> Ansicht nach unten scrollen

Alt + Hoch          -> Ansicht hineinzoomen
Alt + Hinunter      -> Ansicht herauszoomen


Bearbeiten:

Strg + A            -> alles auswählen
Strg + C            -> kopieren                    (Strg + Einfügen)
Strg + V            -> einfügen                    (Shift + Einfügen)
Strg + X            -> ausschneiden                (Shift + Entfernen)
Strg + J            -> synchrones mehrzeiliges Editieren aktivieren (ESC zum Beenden des Modus)

Strg + Backspace    -> bis zum Wortanfang löschen
Strg + M            -> Zeile umbrechen            (Enter)
Strg + L            -> Zeile unterhalb einfügen
Strg + T            -> bis zum Wortende löschen
Strg + Y            -> Zeile löschen
Shift + Strg + Y    -> bis zum Zeilenende löschen
Strg + Z            -> Rückgängig                  (Alt + Backspace)
Shift + Strg + Z    -> Wiederherstellen            (Shift + Alt + Backspace)

Shift + Strg + I    -> Block- / Einrücken
Shift + Strg + U    -> Block- / Ausrücken


Suchen und Ersetzen:

Strg + F            -> Suchen...
Strg + R            -> Ersetzen...
F3                  -> weitersuchen
Shift + F3          -> entgegengesetzt suchen
Alt + links          -> zum vorherigen Vorkommen des selektierten Textes springen
Alt + rechts        -> zum nächsten Vorkommen des selektierten Textes springen


Lesezeichen:

Strg + 0            -> gehe zum Lesezeichen 0
Strg + 1            -> gehe zum Lesezeichen 1
Strg + 2            -> gehe zum Lesezeichen 2
Strg + 3            -> gehe zum Lesezeichen 3
Strg + 4            -> gehe zum Lesezeichen 4
Strg + 5            -> gehe zum Lesezeichen 5
Strg + 6            -> gehe zum Lesezeichen 6
Strg + 7            -> gehe zum Lesezeichen 7
Strg + 8            -> gehe zum Lesezeichen 8
Strg + 9            -> gehe zum Lesezeichen 9

Shift + Strg + 0    -> setze Lesezeichen 0
Shift + Strg + 1    -> setze Lesezeichen 1
Shift + Strg + 2    -> setze Lesezeichen 2
Shift + Strg + 3    -> setze Lesezeichen 3
Shift + Strg + 4    -> setze Lesezeichen 4
Shift + Strg + 5    -> setze Lesezeichen 5
Shift + Strg + 6    -> setze Lesezeichen 6
Shift + Strg + 7    -> setze Lesezeichen 7
Shift + Strg + 8    -> setze Lesezeichen 8
Shift + Strg + 9    -> setze Lesezeichen 9


Spezial:

Shift + Space        -> Codevervollständigung auslösen
Shift + Strg + Space -> Hilfefenster: Prototypen/Parameterisierung der aktuellen Methode

Shift + Alt + Space  -> Auswahlbox: alle hinterlegten Werte/Methoden
Shift + Alt + Y  -> Auswahlbox: verwendendete Bezeichner (Variablenamen)
Shift + Alt + D  -> Auswahlbox: alle Deklarationen
Shift + Alt + C  -> Auswahlbox: alle Konstanten
Shift + Alt + B  -> Auswahlbox: alle Basismethoden
Shift + Alt + N  -> Auswahlbox: alle Namensräume
Shift + Alt + V  -> Auswahlbox: alle vordefieniert Bezeichner
Shift + Alt + M  -> Auswahlbox: alle Objektmethoden
Shift + Alt + K  -> Auswahlbox: alle Anweisungen (keywords)
Shift + Alt + S  -> Auswahlbox: alle Zeichenketten (Strings)
Shift + Alt + F  -> Auswahlbox: alle Format-Parameter
Shift + Alt + I  -> Auswahlbox: ID-Konstanten
Shift + Alt + O  -> Auswahlbox: Objekttyp-Konstanten

Strg + *        -> Filter in geöffneter Auswahlbox toggeln (aktivieren/deaktivieren)



Tip:
Der HM-CodeEditor kann mittels einer Verküpfung direkt aufgerufen werden ohne über das Startfenstern navigieren zu müssen, in dem man in der Verküpfung den Parameter "-ce" (ohne Anführungszeichen) übergibt.

Wählt man im Windows-Explorer eine Datei mit der rechten Maustaste aus, so kann man unter "öffnen mit" die HM-Internals auswählen und so auch mit der gewünschten Dateiendung verküpfen. Dann startet der HM-CodeEditor direkt und öffnet die ausgewählte Datei.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

BadenPower

CCU-Firmware-Versions-Abhängigkeit:

Der Highlighter des HM-CodeEditors zeigt die Unterschiede der verschiedenen ReGaHss-Versionen an.

In diesem Beispiel sollte man die Zeile 5 des Skriptes beachten.
Je nach eingesetzter Firmware- und ReGaHss-Version der CCU wird diese Zeile unterschiedlich behandelt.

Bis Firmware 2.27.8 war diese Zeile eine Kommentarzeile, da die Zeile darüber nur ein Ausrufezeichen ohne darauffolgene weitere Zeichen enthält.

Man beachte die Verschiedenen Ausgaben in Bild 2 und 3, die dies verdeutlichen. So ist der ausgegebene Wert der Skriptvariable lInt je nach Firmware einmal 0 oder 1.

Der Highlighter zeigt autmatisch richtig an, ob es sich um einen Kommentar oder eben eine Befehlszeile handelt.
Auch kann man Anhand der Bilder sehen, dass das Ausrufezeichen in Zeile 8 keinen Kommentar einleitet, sondern eben zur Befehlssyntax gehört und ein NICHT/Ungleich signalisiert. Dies würde auch richtig angezeigt werden, wenn man die Syntax in dieser Form

WriteLine(dom.BuildLabel());
boolean lBool = false;
integer lInt = 0;
!
lInt = lInt + 1;
WriteLine(lInt);

if(
! lBool
)
{
  WriteLine(lBool);
}


in den Editor eingibt, da dies immernoch eine gültige und ausführbare Syntax wäre, welche keinen Kommentar enthält, obwohl ein Ausrufezeichen am Zeilenanfang steht.

Dies ist ein weiterer Vorteil des syntax-äbhängigen Highlightings, welches auch über mehrere Zeilen hinweg funktioniert.

Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

BadenPower

Code-Vervollständigung mit Verwendungs-Typ-Angabe.

Hier einmal zwei kleine Beispiele im Anhang.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

BadenPower

separates Ausgabefenster

Um ein möglichst großes Eingabefenster zu erhalten kann die Ausgabe in ein separates Ausgabefenster "ausgelagert" werden.

Im Anhang kann man das Ausgabefenster sehen, welches hier in diesem Screenshot die letzen Werte der im Skript verwendeten Skriptvariablen nach der Ausführung anzeigt.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

BadenPower

#4
LowLevel-Debugger
Syntaxfehler-Erkennung und Markierung direkt wärend der Eingabe

Bild 1 zeigt die Fehlermarkierungen anhand verschiedener Syntax-Fehler.
Die Fehleranalyse und Markierung erfolgt direkt wärend der Eingabe des Codes.

Des weiteren werden auch Warnungen, z.B. Verwendung eines Skriptvariablenamens, welcher dem Namen einer Methode entspricht und Informationen, wie z.B. unnötige Semikolon, ausgegeben.
Die Markierungen können wahlweise als Wellenlinie, Umrandung oder voller Hintergrund dargestellt werden.


In Verbindung mit dem HM-Analyser, welcher einen Syslog-Server beinhaltet, lassen sich beim Ausführen von Skripten innerhalb von Millisekunden Skriptfehler automatisch anzeigen.

Bild 2 zeigt den HM-Analyser mit aktiviertem SysLog-Meldungs-Empfänger.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

BadenPower

#5
Hallo zusammen,

gerade einmal einen Hinweis auf eine grandiose Errungenschaft aus dem orangenen Forum erhalten.
https://homematic-forum.de/forum/viewtopic.php?f=65&t=47083&start=250#p473089

Zitat von: jmaus
Zitat von: EckartS
Ein Kleinigkeit beim neuen Script-Editor in WebUI: Kommentarzeilen werden nur nach "! ", nicht nach "!" ohne Leerzeichen richtig formatiert angezeigt.
So ist das eben, änder die Kommentare in "! " mit Leerzeichen dahinter ab, sieht eh schöner aus.. Anders geht das nicht weil ! auch der negierungsoperator ist und daher die syntax sich prinzipiell mit dem kommentieren beisst.

Es wurde in RaspberryMatic ein CodeEditor mit Syntax-Highlighter eingebaut.
Wie bei den meisten Dingen halt nur wieder halbherzig, bzw. wahrscheinlich ohne die erforderlichen Kenntnisse.
Da kann man bei einer solchen Arbeit und einer solchen Aussage dazu wieder nur einmal den Kopf schütteln.

Der User soll seinen Code so schreiben, dass ihn der Highlichter auch anzeigen kann.
Wo kommen wir denn dahin?


Wieso sollte das Darstellen eines Ausrufezeichens als Kommentar UND Operatorzeichen Probleme machen?

Der HM-CodeEditor kann dies selbstverstänlich. (siehe Bild)


BadenPower
.

Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

Tibin

Hallo BadenPower,
ich habe gestern in das Skript von blackhole meine SV eingetragen und wollte eigentlich nur mal zur Kontrolle das Skript testen.
Da wirft der mir tatsächlich einen Fehler raus. In einer Zeile die eigentlich mit einem Ausrufezeichen versehen ist. :) (siehe Anhang)
Gruß Tino

BadenPower

Hallo Tino,

herzlichen Dank für Deinen Hinweis.

Das ist mir selbst noch gar nicht aufgefallen.

Da muss ich einmal schauen, weshalb der HM-CodeEditor beim Skript testen hier die Zeile tatsächlich umbricht und statt
!Gültige Werte sind beliebige Zeichen. Zeilenumbruch mit "\n". (Default: " ")

fälschlicherweise
!Gültige Werte sind beliebige Zeichen. Zeilenumbruch mit "
". (Default: " ")


an die ReGaHss sendet, was natürlich dann einem fehlerhaften Code entspricht.

Beim Ausführen des Codes existiert das Problem hingegen nicht, da wird alles richtig übertragen.


viele Grüße
BadenPower
,
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

Tibin

Bitte ;)
War purer Zufall. Da ich mit Alchy's Allinkl-Skript noch nie eine Pushover-Meldung meiner HKT's (sonst geht alles) bekommen habe, wohingegen die SV korrekt befüllt wird, wollte ich es jetzt mal mit dem von blackhole versuchen und die SV separat abfragen.
Aber das ist ne andere Geschichte.
Dir einen schönen Abend noch.
Gruß Tino

BadenPower

integrierte Mauszeigerhilfe
zusätzliche Informationen beim Überfahren mit der Maus

Bild 1 zeigt die Ausgabe beim Überfahren eines Bezeichners (Skriptvariablenamen)
Die Ausgabe enthält die Angabe wie oft eine Variable im Skript verwendet wird, ob, wie oft und in welcher Zeile und Spalte sie zuerst verwendet und/oder deklariert wurde. 

Bild 2 zeigt die Angaben wie Bild 1
jedoch zusätzlich einen Fehlerhinweis, dass der Verwendete Variablenamen einem vordefinierte Namen zum. Beispiel einer Basis- oder Objektmethode oder vordefinierten Variable entspricht. Der Fehler ist auch direkt wärend der Eingabe erkennbar da fehlerhafte oder fehlerauslösende Elemente durch farbliche Hervorhebung automatisch wärend dem Schreiben gekennzeichnet werden.

Bild 3 zeigt die Ausgabe beim Überfahren einer Zahl
Die Ausgabe enthält den Variabletyp sowie die möglichen Konstanten, welche der Zahl entsprechen

Bild 4 zeigt die Ausgabe beim Überfahren einer Konstanten
Die Ausgabe enthält den Wert der Konstante.

Bild 5 zeigt die Einstellungsmöglichkeiten zur Mauszeigerhilfe
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

BadenPower

#10
Prototypanzeige
automatische Anzeige der benötigten und/oder anwendbaren Parameter

Die integrierte Methoden-Prototyp-Anzeige umfasst mehr als 900 ReGa-Script-Methoden-Prototypen.


Bild 1 zeigt die Methoden-Prototypanzeige für die Objektmethode .CreateObject().
Zu sehen sind alle möglichen Parameter mit deren Datentypen sowie der Rückgabetyp der Methode.
Die Anzeige erfolgt automatisch bei der Eingabe der geöffneten Klammer hinter dem Methodenname oder bei der Eingabe eines parametertrennenden Kommas. Die Automatik kann selbstverständlich deaktiviert werden. Auch kann die Anzeige jederzeit manuell durch die Tastenkombination Strg + Shift + Leertaste aktiviert werden.

In Bild 2 kann man sehen, dass die Hervorhebung in der Anzeige wechselt, je nach dem bei welchem einzugebenden Parameter der Eingabemarker steht.

Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

vbs

Nur mal so aus Interesse: Hast du das Projekt "from scratch" aufgesetzt oder basiert das auf irgendwas? Ist es open source? Hab es nicht getestet, aber sieht von den Bildern her sehr vernünftig aus!

BadenPower

Zitat von: vbs am 16 Juni 2019, 23:28:19
Nur mal so aus Interesse: Hast du das Projekt "from scratch" aufgesetzt oder basiert das auf irgendwas?
Das gesamte Projekt ist eine vollständige Eigenentwicklung vom Nullpunkt an.
Auch der Editor-Baustein und die Highlighter sind spezielle Eigenentwicklungen, wobei hier die Grundlagen aus den Lazaruskomponenten der SynEdit-Reihe zugrunde liegen.

Zitat von: vbs am 16 Juni 2019, 23:28:19
Ist es open source?
Das Projekt war ursprünglich als Open-Source-Projekt für alle, aber im speziellen für das HomeMatic-Forum bestimmt.

Dann gab es dort aber 4 Wesen, welche dafür gesorgt haben, dass es eben nun kein Open-Source-Projekt ist und eine Freischaltung benötigt.


viele Grüße
BadenPower
.

Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

vbs


BadenPower

Code-Vervollständigung
automatische Anzeige der verwendbaren gültigen Objektmethoden

Die Code-Vervollständigung ist in der Lage eine gefilterte Auswahl der für den Objekt- oder Variabletyp zulässigen Objektmethoden anzuzeigen.

Die automatische Anzeige nach der Eingabe des Methodenpunktes ermittelt durch eine integrierte KI in den meisten Fällen automatisch den benötigten Objekt- oder Variabletyp und zeigt die für diesen Typ gültige Methodenliste als Auswahlbox an.

Die Automatik kann selbstverständlich deaktiviert werden. Auch kann die gefilterte Anzeige für jeden beliebigen Objekttyp, Variabletyp oder Namesraum jederzeit manuell durch die entsprechenden Tastenkombinationen Strg + ALT + ??? oder Auswahl per Maus aktiviert werden.

Auch für Konstanten und vordefinierte Strings ist diese gefilterte Werte-Auswahl vorhanden


Bild 1 zeigt die Auswahlbox für den Objekttyp "OT_DOM" nach der Eingabe des Methodenpunktes nach dem vordefinierten Bezeichner "dom".

Bild 2 zeigt die Auswahlbox für den Varibaletyp "string" nach der Eingabe des Methodenpunktes hinter der Objektmethode .BuildLabel() da die Rückgabe der Methode ein "string" ist und daher nur die angezeigten Methoden zulässig sind.

Bild 3 zeigt das Auswahlmenu der Code-Vervollständigung für die manuelle Auswahl und Anzeige des benötigent Typs.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

BadenPower

#15
Skript-Variable-Namen
bereits verwendete Skriptvariablen bequem per Auswahlbox einfügen

Der intelligente HM-CodeEditor erkennt alle eigenen in Skript vergebenen Skriptvariablenamen (Bezeichner) und stellt diese bei Bedarf in einer Auswahlbox zur Verfügung, so dass der benötigte Bezeichner bequem ausgewählt werden kann und somit automatisch in das Skript an der momentanen Position des Eingabemarkers eingefügt wird. Ausserdem wird gleichzeitig anzezeigt, ob die Skript-Variable im Skript bereits mindestens einmal deklariert wurde. Die Auswahlbox kann entweder mit dem Tastenkürzel Strg + ALT + Y oder im Code-Vervollständigungsmenu per Mausklick aufgerufen werden.


Bild 1 zeigt die Auswahlbox der im Skript verwendeten eigenen Skriptvariablen mit der Zusatzinformation, ob die Variable im Skript deklariert wurde oder nicht.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

BadenPower

Einstellungen
umfangreiche Einstellmöglichkeiten

Der Editor umfasst umfangreiche Einstellmöglichkeiten, um das Verhalten und Aussehen nach individuellen Bedürfnissen anzupassen, darunter auch Einstellmöglichkeiten für das Laden und Speichern von Dateien sowie Einstellungen zur Zeichenpaar-Hervorhebung von Klammernpaaren, Zeichenketten- und Zeitangabebegrenzern.


Bild 1 zeigt die Einstellmöglichkeiten des Editors für die Bereiche Ansicht, Bearbeiten, Steuerung und Dateihandling

Bild 2 zeigt die Einstellmöglichkeiten der verwendeten Schriftfarben und Schriftstile der einzelnen Hervorhebungen und Ausgaben.

Bild 3 zeigt die Einstellmöglichkeiten des Editors zur Skript- und Mauszeigerhilfe sowie den Vervollständigungsoptionen
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

BadenPower

#17
Achtung:

Anzeigefehler im Skript-Debugger

Leider hat sich bei der Entwicklung der Version 1.3.2 des HM-CodeEditors ein kleines Problem eingeschlichen, welches wahrscheinlich auf die Anhebung der Lazarus-Version auf V2.0.10 zurückzuführen ist.

Im Debugger-Modus für die Homematic-Skripte werden zum Beispiel in der Debuggerausgabe alle Himweis-Icon (Guttermarks) doppelt angezeigt.

Auch im Arbeitsfenster des Editors sind zum Beispiel wie in Zeile 118 im angehängtem Screenshot zu erkennen, die Lesezeichen doppelt vorhanden. Dies hat leider auch zur Folge, dass die Haltpunkte (für die Online-Step-By-Step-Analyse) von den Meldungs-Icons "übermalt" werden und daher schlecht erkennbar sind (Zeile 114).  Auswirkung hat dies auch auf die Fehler-Anzeigen wie zum Beispiel Zeile 122).

Ich arbeite an einer Lösung, damit dieses "Problem" zeitnah behoben werden kann.


Trotz dieses kleinen Fehlers im Skript-Debugger gilt weiterhin:
Der HM-CodeEditor ist bis zum heutigen Zeitpunkt (2018 - Mai. 2023) der einzige existierende Editor mit vollwertiger Erkennung und automatisch korrekt hervorgehobener Darstellung der eingegebenen Homematic-Script- (Rega-Script)- Syntax.  (falls irgendwann nicht mehr zutreffend, bitte melden)

Auch die Fehler-Analyse (Low- und High-Level) selbst ist nicht vom Anzeigefehler betroffen.


EDIT:
Lustig, ich wußte gar nicht, dass so ein kleiner hervorgehobener Einzeiler jemanden dazu veranlassen kann, seine selbst gesetzten Prioritäten vollkommen umzukrempeln und zu versuchen, die gegenüber dem HM-CodeEditor schon seit 2 Jahren bestehenden Defizite, schnellst möglichst zu beseitigen. Wenn dies dazu geführt hat, dass Nutzer anderer Programme ausser den HM-Internals auch endlich einmal von besserer Funktionalität profitieren, dann freue ich mich für dies Nutzer wirklich. Noch mehr freuen würde es mich aber, wenn es nicht wieder nur ein Schnellschuss wäre, um den Anschein zu erwecken, man hätte gleichgezogen, sondern man auch wirklich Überlegungen gemacht hätte, ob alle Eventuallitäten berücksichtigt wurden. Ich möchte eigentlich nicht unken, aber das Ergebnis kenne ich jetzt schon.


.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

BadenPower

Kurzer Hinweis:

das Anzeigeproblem der doppelten Markierungen ist beseitigt und das Update erscheint dann mit dem nächsten Major-Release.

Für Alle. welche es früher benötigen gilt wie immer:
Bitte melden.

.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

TIE

Hallo BadenPower,

ich jammere jetzt mal auf hohem Niveau. ;D
Es wäre schön, wenn man die Aufteilung des Skriptfenster und des Ausgabefenster mit der Maus ändern könnte. Ich hoffe du erkennst im Bild was ich meine. Das separate Ausgabe ist sehr angenehm.
Bdd
Thorsten

BadenPower

Hallo Thorsten,

auf Deinem Screenshot unterhalb des Eingabefeldes für $val$ siehst Du eine Punktereihe.

Dies ist der Teiler. Einfach mit der Maus drüberfahren und mit gedrückter Maustaste nach oben oder unten verschieben.

Du erkennst auch am Mauscurser (zwei Linien und zwei Pfeile) , dass dies ein beweglicher Trenner ist. Überall an den Stellen in allen Modulen, an welchen Du diese Punkte siehst, kannst Du die Anzeigefelder in der Größe einfach mit der Maus verändern.

.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.

TIE

Hallo BadenPower,

die hatte ich nicht gesehen. 8)
Bdd
Thorsten

TIE

Hallo BadenPower,

bei einer Bildschirmhöhe von 768 kommt man nicht an alle Optionen bei den Einstellungen.



Bdd
Thorsten

BadenPower

Hallo Thorsten,

auf Deinem Screenshot sieht man, dass Deine Einstellungen unter Windows die Taskleiste immer im Vordergrund hält und das der untere Teil des Einstellungsfenster von der Taskleiste verdeckt wird.

Wenn Du das Einstellungsfenster mit der Maus verkleinerst und nach oben schiebst, dann erscheint eine Scrollbar und Du kommst an alle Einstellungen heran.


Aber was mir allerdings aufgefallen ist, dass ich beim Umbau des Layouts die seitlichen Schaltflächen vergessen habe an der Oberkannte des Fensters zu fixieren, denn diese schiebt es nun beim Verkleinern des Fensters mit nach oben. Diese waren früher unterhalb der Einstellungen angeordnet und daher auch unten fixiert.

Ausserdem werde ich noch die Größeneinstellung des Einstellungsfensters automatisch speichern lassen (so wie bereits bei allen Hauptfenstern), damit man, wenn man die Windowseinstellungen so wie Du gesetzt hat und einen kleine Bildschirmhöhe hat, nicht immer das Fenster selbst verkleinern muss.

.
Zitat eines Users per PN:
Die Dummheit eines Forums, vor allem deren Nutzer, läßt sich daran ablesen, wie oft Personen als Troll bezeichnet werden, wenn sie offenkundige Fehlverhalten von anderen Benutzern öffentlich machen.