Die Arduino IDE hat keine tiefergehende Kentniss ueber die verwendete Sprache (mal von Klammerebenen abgesehen). Die Syntaxeinferbung erfolgt ueber einen einfachen Stringvergleich gegen Listen. Dabei gibt es:
Die Listen haben jeweils den Namen Keywords.txt
Die allgemeine Liste befindet sich in <…>\Arduino\lib\Keywords.txt
Die bibliotheksspezifischen Liste befindet sich in <…>\Arduino\libraries\<libname>\Keywords.txt
In den Listen werden einzelnen Schluesselwoertern symbolische Namen fuer eine entsprechende Markierung zugeordnet. In der Source werden alle Zeichenketten erkannt, die mit einem Buchstaben (nach einem nicht-Buchstaben) beginnen, einem Wort der Liste entsprechen, und auf das kein weiterer Buchstabe folgt.
Die Zuordnung der Darstellung (Farbe, Schriftart) zu den symbolischen Namen erfolgt in der Datei <…>\Arduino\lib\theme\theme.txt
Leerzeilen und Kommentarzeilen (beginnend mit #
) werden nicht beachtet.
Jede Zeile enthaelt zwei bis vier durch Tabulatoren (!) getrennte Felder
Das zu erkennende Schuesselwort.
Der Symbolische Name dient der Zuordnung einer Auszeichnung im Editor. Die Auszeichnungen werden in der theme.txt
festgelegt. Derzeit sind 5 Auszeichnungen definiert
In allen bisherigen implementationen sind KEYWORD1 und KEYWORD2 die gleiche (orange) Auszeichnung zugeordnet
Im 3. Parameter kann ein 'Seitenname' angegeben werden, der in einen Pfad eingesetzt eine HTML-Seite mit erlaeuterungen aufruft. (!Format hat sich mit 1.5 geaendert, scheinbar mit library.properties zusammen)
Bei den Werten aus der Standard Keywords.txt wird auf <…>/Arduino/reference/arduino.cc/en/Reference/<linkname>.html
verwiesen.
??? Scheinbar noch eine Klassifizierung, oder ggf. ein zweiter Symbolischer Name ???
Theme.txt
legt eine vielzahl von werten fuer die Darstellugn im Editor fest. unter anderem auch die diversen Auszeichnungen. Je Auszeichnung kann eine Farbe (als #rrggbb) sowie optional schluesselwoerter zur Darstellung (plain, bold,…) und Schrift (fontname und groesse), jeweils durch Komata getrennt hinterlegt werden.
Fuer die hiesige Anwendung sind die Angaben im Format editor.<symbolischer name>.style
relevant. die symbolischen Namen werden dabei in kleinschreibung angegeben.
Beispiel:
editor.keyword2.style = #D35400,plain
Zusaetzlich gibt es noch jeweils gleichlautende Namen mit sprechenden Begriffen, die denen an der 3. Stelle Ensprechen (koennten).