C
<language=cpp "C/C++ Code">
<!--
Im php-Code steht z.B.:
preg_match($color[1], $code, $matches);
Zu dem Format dieser Datei:
Die erste Zahl nach <color ist die Farbnummer.
0 = Kommentare
1 = Keywords
2 = Strings
3 = Präprozessor o.ä.
usw..
Das sind alles nur Vorschläge, dem php-Code ist egal, was es welcher Farbnummer zuordnet!
Die zweite (die 1. alleinstehende Zahl) gibt das Element von $matches an, das eingefärbt werden muss.
Als Beispiel hier die Definitionen für Kommentare und Keywords.
-->
<color0 0>#(//((\n)|([^\n]))*)|(/\*(.*?)\*/)#s</color0>
<color1 1 "cpp_keywords.txt">#(?:(?:[^a-zA-Z_])|(?:^))("cpp_keywords.txt")(?:(?:[^a-zA-Z_])|(?:$))#</color1>
</language>
Der String "cpp_keywords.txt" im regulären Ausdruck für Keywords wird durch die ganze Liste von Keywords ersetzt, die in der Datei cpp_keywords.txt steht.
Das sieht dann so aus:
#(?:(?:[^a-zA-Z_])|(?:^))(auto|bad_cast|bad_typeid|bool|break|usw...)(?:(?:[^a-zA-Z_])|(?:$))#
Das Format ist sicher nicht ideal. Ich habe das nicht wirklich geplant, das ist eher beim coden gewachsen.
Vielleicht wäre es auch besser, die Definitionen direkt in das Skript zu schreiben. Dann würde man sich den Overhead der externen Dateien sparen.