Als Beispiel für Text-Highlighting kann ein HTML-Editor auf Basis der Klasse TextEditor (gb.form.editor) dienen, in dem der HTML-Highlighter verwendet wird. Dies ist möglich, da in Gambas ein HTML-Highlighter mit dem internen Namen 'html' existiert und voraussetzungslos verwendet werden kann.
Abbildung 19.7.4.1.1: Quelltext-Editor mit Highlighting für HTML
Das HTML-Editor-Projekt steht Ihnen in einem Projektarchiv im Download-Bereich der Internetseite gambas-buch.de im Kapitel 16.16 TextEditor (gb.form.editor) zur Erprobung zur Verfügung. Dort finden Sie auch eine kurze Beschreibung des Projektes.
Hinweis: Für einen Markdown-Editor hingegen ist die eigenständige Entwicklung der obligatorischen Definitionsdateien wie md.highlight und md.theme erforderlich, um einen Markdown-Highlighter zu implementieren. Wie das realisiert werden kann, wird in den folgenden Abschnitten am Beispiel eines Text-Editors mit Text-Highlighter für die Sprache LIPA gezeigt.
Nach dem Anlegen des Projektes für einen Quelltext-Editor (TextEditor (gb.form.editor)) mit Text-Highlighter für die Sprache LIPA müssen Sie die beiden erforderlichen Definitionsdateien lipa.highlight und lipa.theme für den Text-Highlighter in das Projektverzeichnis kopieren – bevorzugt in die Ordner /highlight und /theme.
Der Quelltext für das Beispiel-Editor-Programm ist überschaubar kurz und wird vollständig angegeben:
' Gambas class file Private lTextHighlighter As TextHighlighter Private lTextHighlighterTheme As New TextHighlighterTheme Public Sub Form_Open() '-- Registration of the definition file lipa.highlight - which is located in the specified directory If Not TextHighlighter.List.Exist("lipa") Then TextHighlighter.Register("lipa", "LIPA", "./highlight/lipa.highlight") Endif '-- Create and return a highlighter from its internal name 'lipa' lTextHighlighter = TextHighlighter["lipa"] '-- The LIPA highlighter theme is loaded lTextHighlighterTheme = lTextHighlighterTheme.Load(Application.Path &/ "theme/lipa.theme") '-- Definition of the essential properties of the ‘TextEditor’ editor used With TextEditor1 .Font = Font["DejaVu Sans Mono,12"] .ShowLineNumber = True .ShowBraces = True .ShowCurrent = True .ShowModified = True .ShowLimit = True .ShowSpaces = False .Wrap = True End With '-- The (syntax) highlighting 'lipa' is activated TextEditor1.Highlight = "lipa" '-- The *extended* Gambas theme is assigned to the `TextEditor` theme! TextEditor1.Theme = lTextHighlighterTheme '-- To change the background color of the editor, you must use the following instruction TextEditor1.Theme["Background"].Color = &HFFFDF4 End Public Sub ButtonLoadLIPASourceCode_Click() Dialog.Path = Application.Path &/ "programs" Dialog.Title = ("Select a lipa file") Dialog.Filter = ["*.lipa", ("LIPA files"), "*", ("All files")] Dialog.FilterIndex = 0 If Dialog.OpenFile(False) Then Return TextEditor1.Load(Dialog.Path, True) FMain.Caption = ("LIPA file: ") & File.Name(Dialog.Path) End
Abbildung 19.7.4.2.1: Quelltext-Editor mit Highlighting für LIPA
Auch dieses Editor-Projekt wird Ihnen in einem Projektarchiv im Download-Bereich der Internetseite gambas-buch.de im Kapitel 19.7.4 zur Verfügung gestellt. Im Projekt finden Sie auch die beiden erforderlichen Definitionsdateien lipa.highlight und lipa.theme für den Highlighter.
Die Quelltexte für den Scanner, Parser und Interpreter für die Sprache LIPA sowie eine Aufgabensammlung und eine Programm-Dokumentation werden noch eingefügt.