Hallo *,
wen es interessiert:
+ Das Makro "SyntaxHighlighting.bas" basiert auf der Nutzung der BasicMakro-Funktionalität 'replaceAll' in Kombination mit regulären Ausdrücken.
+ Das Eingabe-/Ausgabe-Medium ist eine LibreOffice WRITER-Datei.
+ Zur Syntax-Kolorierung von 2500 BasicMakroCode-Zeilen werden zirka 8 Sekunden benötigt.
+ Das Makro beinhaltet eine sehr ausführliche Dokumentation.
Entstanden ist die Idee zu diesem Makro aus anfänglichem "ein wenig experimentieren/spielen" mit der BasicMakro-Funktionalität 'replaceAll', beschrieben in:
BASIC-Makros für OpenOffice und LibreOffice
4.7.3. Erweitertes Suchen und Ersetzen
http://www.uni-due.de/~abi070/count.php?id=OOME_3_0_deutsch.pdf [Pitonyak/Lenhardt 20.02.2018 ]
Diese Meinung muss man sicherlich nicht teilen, aber ich persönlich finde es schon erstaunlich, wie (sehr) viel man da mit ein paar regulären Ausdrücken, in der richtigen Reihenfolge, erreichen kann.
[1] Algorithmus
1 Dokumentzeilen
1.1 Alle rechtsbündigen Leerzeichen entfernen
1.2 Schriftart, Schriftgröße und Schriftfarbe, alles auf GRÜN, setzen
2 Ziffern
2.1 Ziffern färben
2.2 Ziffern in Variablen rückfärben
3 Schlüsselwörter
3.1 Schlüsselwörter färben
4 Nicht-alphanumerische Zeichen
4.1 Nicht-alphanumerischen Zeichen färben
5 Zeichenketten
5.1 "-Folgen färben
5.2 Nicht leere Zeichenketten "..." färben
6 Kommentarzeilen
6.1 "'"-Kommentarzeilen färben
6.2 "REM"-Kommentarzeilen färben
6.3 '" und "' rückfärben (wenn optioniert)
[2] Anwendung
1. Neues WRITER-Dokument öffnen.
2. Zu bearbeitenden BasicMakroCode in das WRITER-Dokument kopieren.
3. Makro 'SyntaxHighlighting' starten.
[3] Nutzbare Steuer-Parameter im Makro-Abschnitt "BENUTZERBEREICH"
1. [ ja | nein ] Groß-Klein-Schreibung bei Schlüsselwörtern beachten ?
2. [ ja | nein ] Zeitmessung anzeigen ?
3. [ ja | nein ] Zusätzlich RegExp ".*(""'|'""|'.'|.'.).*" anwenden ?
4. Andere Schriftart als "Liberation Mono".
5. Andere Schriftgröße als "8".
6. [ ja | nein ] Benutzer-definierte Farben verwenden ?
[4] Download-Link
https://www.magentacloud.de/share/vtd8687phn
beinhaltend:
1. Makro
+ SyntaxHighlighting.txt
2. Anwendungsbeispiele
+ SyntaxHighlighting - Parameter IDE-Standard.odt
+ SyntaxHighlighting - Parameter benutzerdefiniert.odt
+ CoronaNewsV2 - Parameter IDE-Standard.odt
+ CoronaNewsV2 - Parameter benutzerdefiniert.odt
Feedback, Hinweise auf Fehler, Anregungen sind willkommen ...
Viele Grüße
Hans-Werner :-))