StarLighter (Syntaxhighlighter) (altes Projekt)

    • Beta

    Es gibt 40 Antworten in diesem Thema. Der letzte Beitrag () ist von SeriTools.

      StarLighter (Syntaxhighlighter) (altes Projekt)

      StarLighter ist ein relativ schneller Syntaxhighlighter, der auch mit den meisten längeren Codes keine Probleme hat. Die Dll ist gerade mal 16 Kb groß. Der StarLighter bietet unter anderem folgende Möglichkeiten:

      - Syntaxhighlighting von mehreren, natürlich völlig frei anpassbaren Wörtern
      - Einstellung, ob Groß/Kleinschreibung beachtet werden soll
      - Einstellbare Auto-Großschreibung (zb das Wort "CLaSS" wird automatisch zu "Class" und gefärbt, wie man es auch aus VB kennt)

      Die Eigenschaften sind:

      -> Worte: Ein Array mit allen Wörtern.
      -> SyntaxColor: Typ Color. Die Farbe, in die gefärbt werden soll.
      -> IgnoriereGroßKlein: Boolean. Ist denke ich selbsterklärend.
      -> AutoCorrection: Boolean. Ist denke ich ebenfalls selbsterklärend.
      -> Statt Text die Eigenschaft "Code" (ist ja dafür gemacht :D)

      Die Events sind:

      -> Statt TextChanged das Event "CodeChanged".

      !Hinweis! AutoCorrection funktioniert natürlich nur, wenn IgnoriereGroßKlein auch auf True ist!

      So könnte die Initialisierung in etwa aussehen (einfach nur ein paar Wörter testweise die mir gerade bei VB in den Sinn gekommen sind):

      VB.NET-Quellcode

      1. Dim highlighters As Array = New String() {"Public", "Sub", "Private", "ByVal", "ByRef", "Handles", "If", "End If", _
      2. "Do Until", "Do While", "Next", "Loop", "For", "String", "Integer", "Long", _
      3. "Double", "Short", "Char", "End Sub", "Class", "End Class", "Then", " As ", _
      4. "For Each", "Function", "Dim"}
      5. Starlighter1.Worte = highlighters


      Screenshot von einem kleinem Beispiel:



      Joa wie bereits gesagt, Dateigröße minimal (16 Kb).
      Entwickelt in VB 2008.
      Framework 2.0 mindestens.

      Download hier

      Have fun! Benchmark-Programm gibt´s extra :D



      Download des Benchmark

      Hinweis: Damit er funktioniert, muss sich die o.g. Dll im selben Ordner befinden!

      Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von „kevin89“ ()

      vielleicht wäre eine Funktion zum Speichern der Snippets hilfreich. Speichern kann man die Snippets z.B. in einer DB oder in einer *.txt. Dann könnte man nämlich seine Codes weiterverwenden, bzw. die Codeschnipsel, die man sich mühseelig zusammengefriemelt hat weiterverwenden und diese net neu herbeiziehen.
      Ok ;)

      Kann mir vll jemand bei der Eigenschaft "Worte" helfen? Die Property sieht so aus:

      VB.NET-Quellcode

      1. Public Property Worte() As Array
      2. Get
      3. Return syntaxwords
      4. End Get
      5. Set(ByVal value As Array)
      6. syntaxwords = value
      7. End Set
      8. End Property

      Das Zuweisen etc. geht ja auch problemlos. Nur jetzt möchte ich, dass man das Array (wie zb die Items einer Listbox) im IDE bequem hinzufügen/entfernen kann. Wenn man auf die Eigenschaft "Worte" geht kommt auch immer das typische "..." daneben:



      Beim Klick kommt aber folgendes

      Man könnte noch String und Kommentare hinzufügen!
      Und wenn ich:

      Quellcode

      1. Module Module1


      Eungeben und vorher Module asl Wort angegeben habe kommt das raus:
      Module Module1
      ??
      Es sollte aber rauskommen:
      Module Module1

      Wenn du das alles noch machen könntest würde es mir super gefallen :thumbsup:

      P.S. mit Strings und Kommentare mein ich wenn man den String "Hallo" hat rauskommt: "Hallo" oder bei kommentaren 'Hallo rauskommt: 'Hallo
      Hallo Kevin89,

      was soll denn das bitte wiedermal sein.

      VB.NET-Quellcode

      1. Dim syntaxwords() As String

      und

      VB.NET-Quellcode

      1. Public Property Worte() As Array
      2. Get
      3. Return syntaxwords
      4. End Get
      5. Set(ByVal value As Array)
      6. syntaxwords = value
      7. End Set
      8. End Property

      teiben mir fast die Tränen in die Augen.

      Gruss

      mikeb69
      Hey,
      ich würde für die Liste der zu markierenden Wörter kein Array, sondern eher eine Liste (List(Of String)) nehmen.

      MfG,
      -haiyyu
      Heyhey,

      zieh einfach das Starlighter-Control auf deine Form - folgender Code initialisiert den Highlighter, und kann z.B. ins Load-Event:

      VB.NET-Quellcode

      1. Dim highlighters() As String = New String() {"Public", "Sub", "Private", "ByVal", "ByRef", "Handles", "If", "End If", _
      2. "Do Until", "Do While", "Next", "Loop", "For", "String", "Integer", "Long", _
      3. "Double", "Short", "Char", "End Sub", "Class", "End Class", "Then", " As ", _
      4. "For Each", "Function", "Dim"}
      5. Starlighter1.Worte = highlighters

      Wörter wie "Public", "Sub", "Private, "Then" etc. werden dann gehighlightet. Dabei wird ignoriert, ob das jeweilige Wort groß/klein geschrieben ist, es wird automatisch was groß/kleinschreibung angeht geschrieben und gehighlightet. Das lässt sich aber alles - wenn nicht oder anders gewünscht - in den Eigenschaften des Steuerelements anpassen.