Inhaltsverzeichnis

19.7.4 Highlighting – Projekte

19.7.4.1 Projekt 1 – HTML-Editor

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.

BILD HTML-EDITOR

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.

19.7.4.2 Projekt 2 – Text-Editor mit Text-Highligther für die Sprache LIPA

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

BILD LIPA-Editor

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.

Download