Open Source im professionellen Einsatz
Linux-Magazin 06/2008
© sxc.hu

© sxc.hu

Editoren mit eigenen Syntaxdefinitionen erweitern

Individuelle Lesehilfe

, ,

Programmcode schreiben ohne Syntax-Highlighting ist mühsam und fehlerträchtig. Damit auch Liebhaber seltener Sprachen in den Genuss der praktischen Lesehilfe kommen, untersucht diese Bitparade, wie und wie gut sich in Kate, Emacs und Netbeans neue Sprachen integrieren lassen.

423

Gängige Editoren färben die Syntaxelemente der Programmiersprachen unterschiedlich ein. Das erleichtert die Lesbarkeit von Programmcode. Tippfehler fallen außerdem sofort auf und lassen sich schnell korrigieren, wenn sich der Cursor noch in der Nähe befindet.

Unterstützung für gängige Sprachen bringen die Editoren im Lieferumfang mit. Viele Anwendungen erlauben es dem Benutzer zusätzlich, selbst Syntax-Highlighting-Regeln für neue Sprachen zu schreiben. Diese Bitparade vergleicht, wie gut sich bei den Editoren Emacs, Kate und Netbeans im Lieferumfang nicht unterstützte Sprachen in das Syntax-Highlighting einbinden lassen.

Kate

Syntaxauszeichnung setzt eine Grammatik voraus: Bestimmte Wortarten sind je nach Kontext unterschiedlich auszuzeichnen. Das Syntax-Highlighting des Standard-KDE-Editors Kate (Abbildung 1) setzt daher auf ein Kontext-Konstrukt. Innerhalb der Kontexte legen Regeln - oft reguläre Ausdrücke - bestimmte Aktionen fest. Das XML-Konstrukt

<context name="Normal Text" >
  <DetectChar attribute="String" context="string"char="&quot;" />
</context>

schaltet beim Auftreten eines Anführungszeichens in den Kontext »String« um. Dort gelten eigene Regeln.

Die Anweisung »DetectChar« sucht nach einzelnen Zeichen. Für die Suche nach ganzen Wörtern gibt es »StringDetect« und »RegExpr«, die Regular Expressions benutzt. Außerdem gibt es die Befehle »Detect2Chars« und »DetectAnyChar«, die nach Zeichen aus einer Liste suchen, und »keyword«, der nach bestimmten Wörtern in einer Liste sucht, sowie Suchbefehle für Ganz- und Gleitkommazahlen und einige weitere.

Dafür, dass der Kontext »String« beim erneuten Auftreten eines Anführungszeichens wieder endet, sorgt beispielsweise folgende Regel:

<context name="string" attribute="String">
  <DetectChar attribute="String" context="#pop" char="&quot;" />
</context>

Kontexte lassen sich beliebig verschachteln. »#pop« veranlasst das Syntax-Highlighting dazu, eine Ebene zurückzuspringen, »#pop#pop#pop« springt drei Kontextebenen tiefer.

Abbildung 1: Kate besitzt ein leistungsfähiges Syntax-Highlighting, das Grammatiken logisch nachvollziehbar über ein »Kontext«-Konstrukt umsetzt. Seit einiger Zeit ist die Regelsprache auch ausreichend dokumentiert.

Stilfragen

Für den Stil »String« aus der »attribute«-Anweisung im Kontext »String« legt der »itemDatats«-Block in der XML-Datei die Schriftformatierung fest:

<itemDatas>
  <itemData name="Keyword" defStyleNum="dsKeyword" />
  <itemData name="String" defStyleNum="dsNormal" color="#3C60E1" />
</itemDatas>

»defStyleNum="dsKeyword"« übernimmt den in Kate für Schlüsselwörter vorgesehenen Standardstil unverändert, »defStyleNum="dsNormal" color ="#3C60E1"« übernimmt die Schriftart des Standardtextes, definiert aber die Textfarbe neu.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Groß in Mode

    Die Anpassung an spezielle Dateiformate führt beim Editor-Urgestein Emacs über so genannten Major Modes in der Programmiersprache Elisp. Dieser Workshop demonstriert die Technik am Beispiel eines Mode zum Schreiben von Manuskripten für das Linux-Magazin.

  • Workshop für Werkzeugmacher

    Linux-taugliche Entwicklungswerkzeuge für Perl sind rar, doch eine Eigenbau-IDE ist mit JEdits Hilfe kein Problem und zudem kostenlos, maßgeschneidert und plattformunabhängig.

comments powered by Disqus

Ausgabe 06/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.