Bietet Methoden um Syntax-Hervorhebung für verschiedene Dateiformate durchzuführen.
Mit dem Package Text_Highlighter können von verschiedene Dateiformate Syntax-Hervorhebungen erzeugt werden.
Derzeit werden folgende Formate unterstützt
ABAP
C++
CSS
Ausgabe des diff(1)-Programmes
DTD
HTML
Java
Javascript
MySQL
Perl
PHP
Python
Ruby
sh
SQL
VBScript
XML
Es stehen verschiedene Renderer verwenden, um die Hervorhebungen darzustellen:
Array
Console
HTML - es werden <span>-Tags mit CSS-Klassennamen verwendet, das ist der Standard-Renderer
HTMLTags - es werden einfache Tags benutzt, (<B>, <I> und <U>, sinnvoll für Geräte mit nur geringer HTML-Unterstützung
JSON
XML
Die Klasse Text_Highlighter enthält alle notwendigen Funktionen um Text hervorzuheben mit Ausnahme der tatsächlichen Hervorhebungs-Regeln für die verschiedenen Formate. Diese Regeln sind in Unterklassen von Text_Highlighter definiert. Die Unterklassen werden nicht direkt vom Anwender aufgerufen, stattdessen wird über eine Factory-Methode die entsprechende Klasse aufgrund des gewählten Formates herangezogen:
Beispiel 64-7. Hervorhebung für eine SQL-Abfrage
Im Beispiel wird eine hervorgehobene Version der SQL-Abfrage
erzeugt, die der Methode |
Für andere Formate muss der SQL-Parameter in der Methode
Text_Highlighter::factory durch einen entsprechend
anderen ersetzt werden: ABAP, CPP, CSS, DIFF,
DTD, HTML, JAVA,
JAVASCRIPT, MYSQL,
PERL, PHP,
PYTHON, RUBY, SQL,
oder XML.
Normalerweise fügt Text_Highlighter HTML-Code in die ursprüngliche Eingabe ein, um die Hervorhebung um zu setzen.
Andere Ausgabeformate sind aber möglich, z.B. werden auch farb-taugliche Kommandozeilenkonsolen unterstützt wie xterm oder über less(1). Dazu muss Text_Highlighter angewiesen werden einen anderen Renderer zu verwenden:
Es ist gleichfalls möglich die Ausgabe des HTML- und Konsolen-Renders anzupassen. Dazu kann im Konstruktor des Renderers ein assoziatives Array übergeben werden, dass entsprechende Optionen enthält:
Beispiel 64-9. Optionen des HTML-Renderers
Das Beispiel setzt zwei Optionen: Die erste bewirkt, dass die Ausgabe Zeilennummern enthält, diese werden über das <ol />-HTML-Tag erzeugt. Die zweite Option definiert, wie viele Leerzeichen für Tabulatoren verwendet werden sollen. |
Folgende Optionen werden derzeit unterstützt:
Tabelle 64-1. Mögliche Renderer-Optionen
| Name | Beschreibung | Unterstützt vom HTML-Renderer | Unterstützt vom Konsolen-Renderer | Hinweise |
|---|---|---|---|---|
| numbers | Art der Zeilennummerierung | Ja | Ja | Beim Konsolen-Renderer kennt diese Option lediglich TRUE oder FALSE, um die Zeilennummerierung an- oder abzuschalten. Der HTML-Render akkzeptiert drei verschiedene Werte: bei HL_NUMBERS_LI wird das <ol />-HTML-Tag benutzt; während bei HL_NUMBERS_TABLE eine zweispaltige Tabelle verwendet wird. Die erste Spalte enthält die Zeilennummer, die zweite den Code. Wird die Option auf FALSE gesetzt wird Zeilennummerierung abgeschaltet. |
| tabsize | Tabulator-Weite | Ja | Ja | |
| colors | Zusätzliche Farbdefinitionen | Nein | Ja | Ein assoziatives Array mit zusätzlichen Farbangaben für farbfähige Konsolen. Der Schlüssel eines jeden Array-Eintrages ist der Name der Farbe und der entsprechende Wert muss die Escape-Sequenz beinhalten. (Zum Beispiel: \033[1;31mRed.) |
| Zurück | Zum Anfang | Weiter |
| Text_Figlet | Nach oben | Text_LanguageDetect |