husart01.png
Edit v1.111 from 2008-08-19 to 2011-07-18 by TSc+HSc

Das HuSvEDVF-Plugin

Die warscheinlich größte Erungenschaft der Joomla-Plugin's. Eine funktionierende Quelltextausgabe! :) Dieses Plugin bietet aber noch sehr viel mehr (bzw. das Plugin wird mehr bieten).

Edit v1.100 from 2008-08-19 to 2008-08-22 by TSc

Syntax des Tag's

Die vollständige Syntax zum Anwenden des Plugin's lautet: {husvedvf type="" src="/" alt="" lang=""}...inlinetext...{/husvedvf} bzw. <husvedvf type="" src="/" alt="" lang=""> ...inlinetext... </husvedvf>

Schwarz = Grundkonstrukt
Rot = Pflichtattribute
Blau = Optionale Attribute

Wie man klar sehen kann ist type das einzige Pflichtattribut.
Die Reihenfolge der Attribute spielt dabei keine Rolle, das Plugin erkennt diese immer richtig (dank Regular Expression's).
Nun stellt sich noch die Frage, warum gibt es davon 2 Varianten, also mit < und > bzw. mit { und }? Das hat damit was zu tun, ob der Code im Fehlerfall im Browser angezeigt wird oder nicht. Das Beispiel mit den geschweiften Klammer'n würde im Fehlerfall den Tag im Browser anzeigen. Das Beispiel mit größer bzw. kleiner als würde dann logischerweise die Ausgabe verbergen, da ein kleiner als gefolgt vom Buchstaben dem Browser ein HTML-Tag signalisiert. Welche Variante verwendet werden soll, ist jedem selbst überlassen. Es kommt halt darauf an, ob man den Fehler sehen möchte oder nicht.
Ich persönlich empfehle die Methode mit den geschweiften Klammer'n, weil sie im Fehlerfall den Tag ausgibt und zudem noch W3C-Konform ist.

Attribute
Attribut Eigenschaften mögliche Werte Beschreibung
type Pflicht source, info, css Legt fest, was das Plugin tun soll.
(ähnlich wie das Typ-Attribut vom Input-Tag, welches nur bestimmte Werte animmt.) Man kann den Wert auch als Modus ansehen, indem das Plugin arbeiten soll.
src Optional Dateipfadangaben Wie das src-Attribut vom img-Tag. Mit diesem Attribut legt man fest, ob und welche Datei eingelesen/geladen werden soll.
lang Optional Landessprachbeschreibung oder Programmiersprache Legt die Sprache der Ausgabe fest. Der Standardwert ist momentan: text
alt Optional Alternativtext. Darf nicht umgebrochen werden, da Steuerzeichen im Attribut nicht erlaubt sind. Wie bisher: Alternativtext, der Beispielsweise Text anzeigt, wenn man den Mauszeiger über das entsprechende Element hält
zwischen Start-Tag und Ende-Tag (...inlinetext...) Optional beliebig Der zu formatierende Inhalt.
Edit v1.100 from 2008-08-19 to 2008-08-22 by TSc

Typattributwert: source (Quelltextanzeige)

Gibt man als type den Wert source an, arbeitet das Plugin als Quelltextanzeige.
Nun kann man entscheiden, ob der Quellcode aus einer externen Datei geladen werden soll, oder direkt in den Artikel geschrieben wird.
Möchte man den Quelltext direkt hineinschreiben, läßt man das src-Attribut weg und schreibt den Quellcode zwischen Start-Tag und Ende-Tag. (Da, wo ...inlinetext... im ersten Beispiel steht.)
Die Anzeige des Codes aus einer externen Datei funktioniert genau umgedreht. Man schreibt nichts zwischen Start-Tag und Ende-Tag und gibt den src-Attribut einen Pfad mit Dateinamen. Das src-Attribut hat dabei eine höhere Priorität, d.h. Wenn man eine gültige Datei angibt, bzw. das src-Attribut benutzt, dann versucht das Plugin den Quellcode zu laden und ignoriert somit, was zwischen Start-Tag und Ende-Tag steht. Selbst wenn der Pfad zur Datei falsch ist oder die Datei nicht gelesen werden kann, gilt diese Regelung.
Ein weiterer Vorteil der Quelltextanzeige ist das Syntax-Highlighting (Farbliche Hervorhebung). Damit das Plugin weiß, für welche Programmiersprache der Quelltext hervorgehoben wird, gibts das lang-Attribut. Als Wert gibt man dann an, in welcher Sprache hervorgehoben werden soll. z.B. cpp für C++ oder javascript für Javascripte. Um zu erfahren welche Sprachen das Plugin kennt, läßt man das Plugin als type="info" laufen. Ist die Programmiersprache nicht vorhanden, läßt man das Attribut weg oder man schreibt text als Wert.

HINWEIS: Die Info-Ausgabe wurde noch nicht implementiert. Um trotzdem zu erfahren, welche Sprachen das Plugin kennt, schaut man in das Verzeichnis (von Joomla-Root aus gesehen) nach libraries/geshi/geshi/.
Dort sind alle installierten Sprachen aufzufinden. Der Name dieser Dateien entspricht dem, was man in das lang-Attribut hineinschreibt. (Ausgenommen index.html) Also die Dateien, die die Endung .php haben sind Sprachen, die das Plugin kennt.

Beispiele
Beispiel 1: {husvedvf type="source" lang="php" title="testtitel" src="/images/stories/bibo/it/source/php/31return.php" }{/husvedvf} lädt 31return.php aus den PHP-Beispielen zeigt es im PHP-Format an und besitzt den Maushover-Titel testtitel.
  1. <?php
  2. /******************************************************************************
  3. * Eine Funktion mit Rueckgabe selber Erstellen und Verwenden. *
  4. * Dieses Beispiel: Berechnen eines Quadervolumens mit selbsterstellter, *
  5. * fuer diese Seite angepasste Funktion. *
  6. * ========================================================================== *
  7. * Copyright by Hilfe & Service von EDV-Fachleuten *
  8. * Reilstr. 6, D-06114 Halle (Saale) *
  9. * Edit v1.010 from 2007-08-17 to 2007-09-11 by TSc *
  10. * -------------------------------------------------------------------------- *
  11. * Input *
  12. * Process *
  13. * + Variable, internal *
  14. * - $fltLaenge: Die Laenge des Quaders aus dem Formular. *
  15. * - $fltBreite: Die Breite des Quaders aus dem Formular. *
  16. * - $fltHoehe: Die Hoehe des Quaders aus dem Formular. *
  17. * - $stfEinheit: Verwendete Einheit aus dem Formular. *
  18. * - $strErgebnis: Enthaelt die Funktion. *
  19. * Output *
  20. ******************************************************************************/
  21.  
  22. /******* Variablen deklarieren ************************************************/
  23. $fltLaenge = $_REQUEST['Laenge'];
  24. $fltBreite = $_REQUEST['Breite'];
  25. $fltHoehe = $_REQUEST['Hoehe'];
  26. $stfEinheit = $_REQUEST['Einheit'];
  27. $strErgebnis = "";
  28.  
  29. /******************************************************************************
  30. * Funktion: Volumen eines Quaders berechnen. *
  31. * Folgende Schritte werden durchgef&uuml;hrt: *
  32. * 1. Wenn Absenden noch nicht gedrueckt wurde -> Informationstext. *
  33. * 2. Wenn eines der Werte keine Zahl oder kleiner/gleich 0 ist -> Fehler. *
  34. * 3. Sonst Werte berechnen und Ergebnis erzeugen. *
  35. * 4. Zurueckgeben des Ergebnisses anhand einer der Bedingungen. *
  36. * -------------------------------------------------------------------------- *
  37. * Edit v1.000 from 2007-08-17 to 2007-08-17 by TSc *
  38. * -------------------------------------------------------------------------- *
  39. * Input *
  40. * Process *
  41. * + Variable, internal *
  42. * - $strErgebnis: Je nach Bedingung wird diese Variable am *
  43. Ende der Funktion zurueckgegeben. *
  44. * - $fltBerechnung: Formel zur Berechnung des Quader-Volumens. *
  45. * - $stfHochDrei: Die Offiziele HTML-Ausgabe des Kubiks (Hoch-3). *
  46. * Output *
  47. ******************************************************************************/
  48. function calc_quadvolume($fltLaenge,$fltBreite,$fltHoehe,$stfEinheit) {
  49.  
  50. /******* Variablen deklarieren ************************************************/
  51. $strErgebnis = "";
  52. $fltBerechnung = "";
  53. $stfHochDrei = "&sup3;";
  54.  
  55. /******* Wenn eines der Werte 0 ist, dann Fehler ausgeben *********************/
  56. if (!$_REQUEST) {
  57. $strErgebnis = "Tragen sie die Werte in das Formular ein und dr&uuml;cken Sie
  58. dann auf '<font class=\"PHP-MARK\">Ausrechnen</font>'!";
  59. } // if (!$_REQUEST)
  60. elseif ($fltLaenge <= 0 OR $fltBreite <= 0 OR $fltHoehe <= 0) {
  61. $strErgebnis = "<font class=\"PHP-MARK\" style=\"color:#FF0000;\">
  62. Fehler:</font>
  63. <font style=\"color:#FF0000;\">
  64. Eines der Werte veranlasst den K&ouml;rper,
  65. nicht 3 Dimensional zu sein!</font>";
  66. } // elseif ($intLaenge == 0 OR $intBreite == 0 OR $intHoehe == 0)
  67. else {
  68. $fltBerechnung = $fltLaenge * $fltBreite * $fltHoehe;
  69. $strErgebnis = "Bei diesem Quader
  70. (L&auml;nge =
  71. '<font class=\"PHP-VARS\">".$fltLaenge.$stfEinheit."</font>',
  72. Breite =
  73. '<font class=\"PHP-VARS\">".$fltBreite.$stfEinheit."</font>'
  74. und
  75. H&ouml;he =
  76. '<font class=\"PHP-VARS\">".$fltBreite.$stfEinheit."</font>'),
  77. betr&auml;gt das Volumen '<font class=\"PHP-VARS\">"
  78. .$fltBerechnung.$stfEinheit.$stfHochDrei."</font> '!";
  79. } // else von if ($fltLaenge == 0 OR $fltBreite == 0 OR $fltHoehe == 0)
  80. return $strErgebnis;
  81. } // function calc_quadvolume($intLaenge,$intBreite,$intHoehe)
  82.  
  83. /******** Funktion mit Werten in eine Variable deklarieren ********************/
  84. $strErgebnis = calc_quadvolume($fltLaenge,$fltBreite,$fltHoehe,$stfEinheit);
  85.  
  86. /******* Den Seitenkopf ausgeben **********************************************/
  87. <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"
  88. \"http://www.w3.org/TR/html4/loose.dtd\">
  89. <html lang=\"en\">
  90. <head>
  91. <title>Eine Funktion mit R&uuml;ckgabe Erstellen</title>
  92. <link rel=\"stylesheet\" href=\"php.css\" type=\"text/css\">
  93. </head>
  94. <body>
  95. <div class=\"PHP-HEAD\">
  96. Eine Funktion mit R&uuml;ckgabe Erstellen (Berechnung eines Quader-Volumens)
  97. </div>
  98. <hr/>
  99. Um eine eigene Funktion zu erstellen beginnt man immer mit function NAME.
  100. <br/><br/>
  101. Beispiel: <font class=\"PHP-MARK\">function calc_quadvolume</font>
  102. <br/><br/>
  103. Wichtig dabei ist das der Name noch nicht verwendet wurde oder
  104. der Name schon durch eine PHP-Interne Funktion verwendet wird.
  105. <br/>
  106. Direkt hinten dran kommt die Parameterangabe,
  107. hier legt man fest, welche Werte die Funktion verarbeiten soll.
  108. <br/><br/>
  109. Beispiel: <font class=\"PHP-MARK\">function
  110. calc_quadvolume(\$fltLaenge,\$fltBreite,\$fltHoehe,\$stfEinheit)</font>
  111. <br/><br/>
  112. Im Anschluss setzt man mit einer Geschweiften Klammer
  113. <font class=\"PHP-MARK\">\"<span class=\"PHP-VARS\">{</span>\"</font>
  114. den Beginn des Funktionsk&ouml;rpers.
  115. <br/><br/>
  116. Beispiel: <font class=\"PHP-MARK\">function
  117. calc_quadvolume(\$fltLaenge,\$fltBreite,\$fltHoehe,\$stfEinheit) {</font>
  118. <br/><br/>
  119. Innerhalb der Geschweiften Klammer befindet sich dann die Funktion.
  120. <br/>
  121. Am Ende der Funktion muss man nur noch Sagen,
  122. welcher Wert zur&uuml;ckgegeben werden soll.
  123. <br/>
  124. Das geschieht mit <font class=\"PHP-MARK\">return</font>, Variablen, Zahlen und
  125. Array's k&ouml;nnen zur&uuml;ckgegeben werden.
  126. <br/><br/>
  127. Beispiel:<br/>
  128. <font class=\"PHP-MARK\">function
  129. calc_quadvolume(\$fltLaenge,\$fltBreite,\$fltHoehe,\$stfEinheit) {
  130. <br/>
  131. ... (Der Eigendliche Funktionscode) ...
  132. <br/>
  133. return \$strErgebnis;</font>
  134. <br/><br/>
  135. Das Ende der Funktion ist nat&uuml;rlich das setzen der schlie&szlig;enden,
  136. geschweiften Klammer
  137. <font class=\"PHP-MARK\">\"<span class=\"PHP-VARS\">}</span>\"</font>.
  138. <br/><br/>
  139. Komplett sieht das ganze dann so aus:
  140. <br/>
  141. <font class=\"PHP-MARK\">function
  142. calc_quadvolume(\$fltLaenge,\$fltBreite,\$fltHoehe,\$stfEinheit) {
  143. <br/>
  144. ... (Der Eigendliche Funktionscode) ...
  145. <br/>
  146. return \$strErgebnis;
  147. <br/>
  148. }</font>
  149. <hr/>
  150. Durch dieses Formular werden die Werte in die selbsterstellte
  151. Funktion eingetragen!
  152. <br/>
  153. Wenn eines der Werte <font class=\"PHP-MARK\">keine</font> Zahl oder
  154. <font class=\"PHP-MARK\">kleiner/gleich 0</font> ist,
  155. wird ein Fehler ausgegeben.
  156. <br/>
  157. Solange das Formular nicht abgesendet wurde,
  158. wird unten ein Informationstext angezeigt.
  159. <br/>
  160. Das zus&auml;tzliche Feature ist die Angabe der Einheit,
  161. sie wird Automatisch dem Ergebnis angeh&auml;ngt!
  162. <br/><br/>
  163. <font class=\"PHP-MARK\">Hinweis!:</font>
  164. PHP unterscheidet nicht ziwschen Prozedur- und R&uuml;ckgabefunktion.
  165. <br/>
  166. Dies wurde durch Vereinfachung der Scriptsprache von den
  167. PHP-Entwicklern beabsichtigt!
  168. <hr>";
  169.  
  170. /******* Das Formular ausgeben ************************************************/
  171. <form action=\"31return.php\" method=\"post\">
  172. <table border=\"0\" class=\"PHP-INPUT\">
  173. <tr>
  174. <td>L&auml;nge:</td>
  175. <td>
  176. <input size=\"5\" type=\"text\" name=\"Laenge\" value=\"".$fltLaenge."\"
  177. style=\"direction:rtl;\" class=\"PHP-INPUT\"/>
  178. </td>
  179. </tr>
  180. <tr>
  181. <td>Breite:</td>
  182. <td>
  183. <input size=\"5\" type=\"text\" name=\"Breite\" value=\"".$fltBreite."\"
  184. style=\"direction:rtl;\" class=\"PHP-INPUT\"/>
  185. </td>
  186. </tr>
  187. <tr>
  188. <td>H&ouml;he:</td>
  189. <td>
  190. <input size=\"5\" type=\"text\" name=\"Hoehe\" value=\"".$fltHoehe."\"
  191. style=\"direction:rtl;\" class=\"PHP-INPUT\"/>
  192. </td>
  193. </tr>
  194. <tr>
  195. <td>Einheit:</td>
  196. <td>
  197. <input type=\"radio\" name=\"Einheit\" value=\"mm\" checked=\"checked\"/>
  198. Milimeter
  199. <br/>
  200. <input type=\"radio\" name=\"Einheit\" value=\"cm\"/> Zentimeter
  201. <br/>
  202. <input type=\"radio\" name=\"Einheit\" value=\"m\"/> Meter
  203. </td>
  204. </tr>
  205. <tr>
  206. <td colspan=\"2\">
  207. <input type=\"submit\" value=\"Ausrechnen\" class=\"PHP-INPUT\"/>
  208. </td>
  209. </tr>
  210. </table>
  211. </form>
  212. <hr>";
  213.  
  214. /******* Das Ergebnis ausgeben ************************************************/
  215. print $strErgebnis;
  216.  
  217. /******* HTML-Endtags *********************************************************/
  218. </body>
  219. </html>";
  220.  
  221. /******* EOF ******************************************************************/
  222. ?>

Beispiel 2: {husvedvf}{/husvedvf} gibt einen Fehler aus, weil das Pflichtattribut type fehlt.
plgContentHuSvEDVF>Case: Das Attribut type fehlt!

Beispiel 3: {husvedvf type="source" lang="cpp" title="testtitel" src="/images/stories/bibo/it/source/cpp/info.cpp"}{/husvedvf} lädt info.cpp aus den C++ Info-Beispiel und zeigt es im C++ -Format an.
  1. /******************************************************************************
  2. * CPP-Datei fr das Formular frmInfo *
  3. * ===========================================================================*
  4. * Copyright by Dipl.-Phys. Harald Schaerfer *
  5. * Hilfe & Service von EDV-Fachleuten *
  6. * Reilstr. 6, D-06114 Halle/Saale *
  7. * Tel. (0345) 521 13 40 *
  8. * Edit v0.041 from 2007-10-25 to 2008-07-03 by M. Moebes *
  9. * ===========================================================================*
  10. * Input *
  11. * + Variablen *
  12. * - gstfProgramm[255]: Variable fr den Programmnamen, siehe HUS.H *
  13. * - gstfEdit[255]: Variable fr die Editzeile, siehe HUS.H *
  14. * Process *
  15. * + Objekte, intern deklariert *
  16. * - btnOk: Schliet das Fenster *
  17. * - frmInfo: Infoformular *
  18. * - imgProgramm: Firmenlogo *
  19. * - lblProgramm: Textausgabe des Programmnamens *
  20. * - lblVersion: Textausgabe der Editzeile *
  21. * - lblFirma: Textausgabe der Firmenbezeichnung *
  22. * - lblKommentar: Textausgabe der Programmbeschreibung *
  23. * - pnlInfo: Zusammenfassung der Formularelemente *
  24. * + Variablen, intern deklariert *
  25. * - stfPuffer1[255]; Variable zum Speichern der Zeichenkette aus start.cpp *
  26. * - stfPuffer2[255]; Variable zum Speichern der Zeichenkette aus start.cpp *
  27. * Output *
  28. ******************************************************************************/
  29.  
  30.  
  31. /******* Bibliotheken laden ***************************************************/
  32. #include <vcl.h>
  33. #include <string.h>
  34. #pragma hdrstop
  35.  
  36. #include "info.h"
  37.  
  38. /******* Package-Beschreibungen ***********************************************/
  39. #pragma package(smart_init)
  40. #pragma resource "*.dfm"
  41.  
  42. /******* Variablen und Objekte deklarieren ************************************/
  43. TfrmInfo *frmInfo;
  44.  
  45. __fastcall TfrmInfo::TfrmInfo(TComponent* AOwner)
  46. : TForm(AOwner)
  47. {
  48. /******* Variablen deklarieren ************************************************/
  49. extern char gstfProgramm[255];
  50. extern char gstfEdit[255];
  51. char stfPuffer[255];
  52. char stfPuffer2[255];
  53.  
  54. /******* Werte in den Puffer schreiben ****************************************/
  55. strcpy(stfPuffer, gstfProgramm);
  56. strcpy(stfPuffer2, gstfEdit);
  57.  
  58. /******* Werte im Fenster ausgeben ********************************************/
  59. frmInfo->lblProgramm->Caption=stfPuffer;
  60. frmInfo->lblVersion->Caption=stfPuffer2;
  61.  
  62. //frmInfo->imgProgramm->Picture="TransPos.jpg";
  63. } // __fastcall TfrmInfo::TfrmInfo(TComponent* AOwner)
  64.  
  65.  
  66. /******************************************************************************
  67. * Funktion fr BtnOK, schliet das Fenster frmInfo *
  68. * Edit v1.000 from 2007-11-05 to 2007-11-16 by M. Moebes *
  69. * ---------------------------------------------------------------------------*
  70. * Input *
  71. * - Sender: Zeiger von dem rufenden Formular *
  72. * Process *
  73. * Output *
  74. ******************************************************************************/
  75. void __fastcall TfrmInfo::btnOkClick(TObject *Sender)
  76. {
  77. Close();
  78. } // void __fastcall TfrmInfo::btnOkClick(TObject *Sender)
  79. /******* EOF ******************************************************************/
  80.  
  81.  
  82.  

Beispiel 4: {husvedvf type="source" lang="cpp" title="testtitel" src="/images/stories/bibo/it/source/cpp/info.h"}{/husvedvf} lädt info.h Headerdatei aus den C++ Info-Beispiel und zeigt es im C++ -Format an.
  1. /******************************************************************************
  2. * Header-Datei fuer das Formular frmInfo *
  3. * ===========================================================================*
  4. * Copyright by Dipl.-Phys. Harald Schaerfer *
  5. * Hilfe & Service von EDV-Fachleuten *
  6. * Reilstr. 6, D-06114 Halle/Saale *
  7. * Tel. (0345) 521 13 40 *
  8. * Edit v0.040 from 2007-10-25 to 2008-07-01 by M. Moebes *
  9. * ===========================================================================*
  10. * Input *
  11. * + Variablen *
  12. * - gstfProgramm[255]: Variable fr den Programmnamen, siehe HUS.H *
  13. * - gstfEdit[255]: Variable fr die Editzeile, siehe HUS.H *
  14. * Process *
  15. * + Objekte, intern deklariert *
  16. * - btnOk: Schliet das Fenster *
  17. * - frmInfo: Infoformular *
  18. * - imgProgramm: Firmenlogo *
  19. * - lblProgramm: Textausgabe des Programmnamens *
  20. * - lblVersion: Textausgabe der Editzeile *
  21. * - lblFirma: Textausgabe der Firmenbezeichnung *
  22. * - lblKommentar: Textausgabe der Programmbeschreibung *
  23. * - pnlInfo: Zusammenfassung der Formularelemente *
  24. * + Variablen, intern deklariert *
  25. * - stfPuffer1[255]; Variable zum Speichern der Zeichenkette aus start.cpp *
  26. * - stfPuffer2[255]; Variable zum Speichern der Zeichenkette aus start.cpp *
  27. * Output *
  28. ******************************************************************************/
  29.  
  30. #ifndef InfoH
  31. #define InfoH
  32.  
  33. #include <vcl\System.hpp>
  34. #include <vcl\Windows.hpp>
  35. #include <vcl\SysUtils.hpp>
  36. #include <vcl\Classes.hpp>
  37. #include <vcl\Graphics.hpp>
  38. #include <vcl\Forms.hpp>
  39. #include <vcl\Controls.hpp>
  40. #include <vcl\StdCtrls.hpp>
  41. #include <vcl\Buttons.hpp>
  42. #include <vcl\ExtCtrls.hpp>
  43. #include <jpeg.hpp>
  44.  
  45. class TfrmInfo : public TForm
  46. {
  47. __published:
  48. TPanel *pnlInfo;
  49. TImage *imgProgramm;
  50. TLabel *lblProgramm;
  51. TLabel *lblVersion;
  52. TLabel *lblFirma;
  53. TLabel *lblKommentar;
  54. TButton *btnOk;
  55. void __fastcall btnOkClick(TObject *Sender);
  56. private:
  57. public:
  58. virtual __fastcall TfrmInfo(TComponent* AOwner);
  59. };
  60.  
  61. extern PACKAGE TfrmInfo *frmInfo;
  62. #endif // #ifndef InfoH
  63.  
  64. /******* EOF ******************************************************************/
  65.  
  66.  
Edit v1.000 from 2008-08-22 to 2008-08-22 by TSc

Typattributwert: info

Gibt man als type den Wert info an, erfolgt eine Info-Ausgabe.

Beispiel
Beispiel: {husvedvf type="info"}{/husvedvf} gibt die Info aus.
HuSvEDVF-Plugin-Info
Verfügbare Sprachen zur Syntax-Hervorhebung (Generic Syntax-Highlighting):abap, actionscript, actionscript3, ada, apache, applescript, asm, asp, autoit, bash, basic4gl, blitzbasic, bnf, c, c_mac, caddcl, cadlisp, cfdg, cfm, cpp, cpp-qt, csharp, css, d, delphi, diff, div, dos, dot, eiffel, fortran, freebasic, genero, gettext, glsl, gml, groovy, haskell, html4strict, idl, ini, inno, io, java, java5, javascript, kixtart, latex, lisp, lotusformulas, lotusscript, lua, m68k, matlab, mirc, mpasm, mxml, mysql, nsis, objc, ocaml, ocaml-brief, oobas, oracle8, pascal, per, perl, php, php-brief, plsql, python, qbasic, rails, reg, robots, ruby, sas, scala, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vb, vbnet, verilog, vhdl, visualfoxpro, winbatch, xml, xpp, z80