Eigenes Syntax Highlighting

2012-08-12
2012-11-13
  • VinceLegion
    VinceLegion
    2012-08-12

    Ich möchte gerne ein eigenes Syntax Highlighting erstellen habe aber ein bestimmtes Problem.
    Und zwar gibt es bei der Sprache (oder besser gesagt API) zu der ich das Highlighting erstellen möchte Befehle, die z.B.: so aussehen:
    SendChatMessage("Diese Nachricht wird gesendet…")

    Und jetzt möchte ich gern wissen, wie es möglich ist, das der Begriff SendChatMessage Fett und blau geschrieben ist und alles was in den Klammern steht grau und kursiv ist… Ist so etwas beim Notepad++ überhaupt möglich? Und wenn ja, wie?

     
  • Jolly
    Jolly
    2012-08-12

    SendChatMessage im Reiter Schlüsselwörter eintragen und Blau und Fett wählen
    " ( ) Anführungszeichen, Klammer auf, Klammer zu im Reiter Operatoren zu den Operatoren hinzufügen
    Anführungszeichen bei den Strings als Anfang und Ende eintragen und Grau auswählen.
    Fertig
    Weitere Schlüsselworte einfach mit Leerzeichen getrennt eintragen.

     
  • VinceLegion
    VinceLegion
    2012-08-12

    OK… Schonmal dankeschön, das hat mir schon sehr weiter geholfen… Als ich das jetzt fertig hatte und ein paar kleine Tests vorgenommen habe, hat auch alles super Funktioniert. Allerdings hat sich jetzt eine andere Frage aufgetan.

    Beim Befehl SendChatMessage kann man (wie man sich vieleicht denken kannn) einen Variablen String übergeben.
    Allerdings gibt es noch andere Befehle wie z.B.: UnitClass
    Das könnte dann so aussehen: UnitClass("target")
    Hier wird zwar auch ein String übergeben, allerdings kann man hier nicht jeden beliebigen String übergeben.
    Für diesen Befehl steht eine kleine auswahl von Strings zur verfügung, mit welchen der Befehl umgehen kann. Deswegen hätte ich gern diese Strings nicht in grau, sondern in grün. Kann man sowas auch einstellen?

     
  • Jolly
    Jolly
    2012-08-12

    Das hab ich so nicht hin bekommen, da die Strings "dominant" sind. Ich hab versucht, "target" als Schlüsselwort anzulegen, N++ behandelt es aber als String. Das ist denke ich auch gut so ;-)
    Als Idee: vielleicht legst du einfach die UnitClass und andere besondere Befehle in eine 2. Gruppe Schlüsselworte. Das macht es sicher auch übersichtlicher für dich, wenn die eine andere Farbe und Style haben. Auch die Schriftgröße ist hier vielleicht ein Hilfsmittel.
    Übrigens hab ich vorher das _kursiv _überlesen. Ich denke aber, du hast es selbst gefunden.

     
  • VinceLegion
    VinceLegion
    2012-08-13

    Also das mit dem Kursiv habe ich grade noch so allein hin bekommen ^^
    Die Idee, solche Befehle, wie z.B. UnitClass extra zu behandeln ist schonmal nicht schlecht aber nicht ganz das, was ich suche. Das Problem liegt einfach darin, dass Strings wie z.B.: "target" (oder auch "focus", "mouseover",  "none", uvm…) so eine Art Konstanten in Form von Strings sind. Daher hätte ich für eben diese Strings eine eigene Hervorhebung.
    Wenn es nicht über die Benutzeroberfläche selbst funktioniert, gibt es dann vieleicht die Möglichkeit, ein bischen was im Quellcode von N++ zu ändern? (evtl. in irgend einer der …langauge.xml's)