Syntax-Highlighting - HowTo

    • VB.NET

    Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von programmer71.

      Syntax-Highlighting - HowTo

      Unter Syntaxhighlighting versteht man die verschiedenfarbige Formatierung von (Programm-)Code. Diese Farben heben beispielsweise die Funktionsdeklarationen usw. hervor. Das hat den Vorteil, dass der Code dadurch viel übersichtlicher und viel einfacher zu lesen ist. Wenn nun jemand in VB.Net (oder C#) einen Codeeditor (oder Ähnliches) machen will, ist Syntax-Highlighting eine wichtige Grundlage.

      Ich stelle euch hier eine Methode vor, die ohne komplizierte RegEx-Plattern funktioniert. Stattdessen nehme ich ein externes Control:
      DigitalRune TextEditorControl
      Das ist ein sehr mächtiges Control, welches noch viele weitere Möglichkeiten bietet, um einen guten Codeeditor zu programmieren.

      Wenn die ihr euch das Control heruntergeladen habt (Gratis für private Applikationen), findet ihr im Ordner ...\DigitalRune-TextEditor-1.3.0\DigitalRune-TextEditor-1.3.0\DigitalRune.Windows.TextEditor\bin\Debug eine DLL mit dem Namen DigitalRune.Windows.TextEditor.dll. Diese zieht ihr in die ToolBox von eurer VB IDE.

      Platziert ein "TextEditorControl" auf eurer Form und öffnet die Codeansicht bei der Sub "Form_Load". Dort müsst ihr dem TextEditorControl (Standardname: TextEditorControl1) eine Syntaxstrategie zuweisen, damit das Control weiss, von welcher Sprache die Syntax hervorgehoben werden soll:

      VB.NET-Quellcode

      1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      2. TextEditorControl1.Document.HighlightingStrategy = DigitalRune.Windows.TextEditor.Highlighting.HighlightingManager.Manager.FindHighlighter("VBNET")
      3. End Sub

      Mit diesem Code wird die Syntax von VB.Net gewählt (Bei der Methode "FindHighlighter()").
      Wenn ihr nun also die Syntax von beispielsweise VB.Net gewählt habt, könnt ihr das Programm starten und einen kleinen VB.Net-Code eingeben:

      Der Code sollte nun in den richtigen Farben hervorgehoben werden.



      Das Control beherrscht von Anfang an verschiedene Syntaxen.
      Hier eine Liste von den verfügbaren Syntaxen (Name - String für die Funktion "FindHighlighter()"):
      • VB.Net - "VBNET"
      • XML - "XML"
      • JavaScript - "JavaScript"
      • TeX - "TeX"
      • Patch - "Patch"
      • PHP - "PHP"
      • HTML - "HTML"
      • Java - "Java"
      • HLSL - "HLSL"
      • C-Sharp - "C#"
      • C++ - "C++.NET"
      • ASPX - "ASP/XHTML"
      • Batch - "BAT"
      • Boo - "Boo"
      • Cg- "Cg"
      • Coco - "Coco

      Vielen Dank für das Lesen meines (ersten) Tutorials.
      Eine kurze Rückmeldung wäre nett :)


      Grüsse
      Pascal

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „ErfinderDesRades“ ()

      Ich würd es besser finden, wenn es ein Control dafür gäbe, wo man die hervorgehobenen Worte selbst definieren kann und/oder Farbe der Strings und/oder Kommentarfarbe. Aber gut erklärt, hab mich schon immer gefragt, wie man das uberhaupt hinkriegt. :thumbsup:

      VB_Gamer schrieb:

      Ich würd es besser finden, wenn es ein Control dafür gäbe, wo man die hervorgehobenen Worte selbst definieren kann und/oder Farbe der Strings und/oder Kommentarfarbe. Aber gut erklärt, hab mich schon immer gefragt, wie man das uberhaupt hinkriegt. :thumbsup:

      kann man aber ohne so control auch machen, nur da wirds nicht soo gut ^^
      und man muss selbst alle wörter wissen die hervorgehoben werden sollen
      Hei ist ja mal ein Super Tutorial,
      ich habe grade angefangen mit Digital Rune zu arbeiten
      sag mal weißt du auch wie man eigenes Syntax Highlighten für diesen Control macht?
      ich war schon dabei irgendwie c# umzuschreiben um herauszufinden wie ich an Intellisense und Highlighting komme

      Würde mich freuen wenn du näheres weißt
      LG.L
      Ich habe mir DigitalRune-TextEditor-1.3 gedownloadet aber ich finde kein \bin Verzeichnis o_O.

      Kann mir wer die .Dll hochladen :(?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Hawk1337“ ()

      Oh.. Sry
      Ich hatte vergessen zu erwähnen, dass zuerst das Projekt ...\DigitalRune-TextEditor-1.3.0\DigitalRune-TextEditor-1.3.0\DigitalRune.Windows.TextEditor\DigitalRune.Windows.TextEditor.csproj geöffnet werden muss. Danach müsst ihr auf "Debuggen" (F5) klicken und dann erscheint eine Fehlermeldung. Die DLL wird jedoch trotzdem erstellt, zusammen mit dem besagten \bin Verzeichnis.

      Tut mir Leid, dass ich das vergessen hatte zu erwähnen.


      Grüsse
      Pascal

      PascalN schrieb:

      Oh.. Sry
      Ich hatte vergessen zu erwähnen, dass zuerst das Projekt ...\DigitalRune-TextEditor-1.3.0\DigitalRune-TextEditor-1.3.0\DigitalRune.Windows.TextEditor\DigitalRune.Windows.TextEditor.csproj geöffnet werden muss. Danach müsst ihr auf "Debuggen" (F5) klicken und dann erscheint eine Fehlermeldung. Die DLL wird jedoch trotzdem erstellt, zusammen mit dem besagten \bin Verzeichnis.

      Tut mir Leid, dass ich das vergessen hatte zu erwähnen.


      Grüsse
      Pascal
      Und dafür braucht man Visual C#.....