Syntax Highlighting nach eigener Definition
-
Moin moin
Ich schreibe gerade an einem Programm, welches Wellenformen als Hex-File exportieren kann.
Da man je nach Anwendung ein anderes Format (Header, Zeilenaufbau, etc.) braucht, möchte ich dem Benutzer die Möglichkeit geben, seine eigene Definition zu machen.Damit der Benutzer sieht ob er Fehler macht, möchte ich einen Syntax Highlighting machen, welches drei verschiedene Datensorten akzeptiert:
- Text "Das ist ein Text"
- Zahlen 22, 0x16
- Keywords : Irgendwelche Zeichenfolgen (Nur Buchstaben und Zahlen)
Jeder Wert muss mit einem + von den anderen Werten getrennt sein, es dürfen nicht zwei Werte zwischen einem + geschrieben werden.
Beispiel:
"Text" + Keyword + 22 + 0xF4 + Fehler + "Text" 22Hier würde Fehler und "Text" 22 Rot unterstrichen, da es Fehler sind. Die anderen Textteilen würden dann in den entsprechenden Farben geschrieben.
Ich habe bereits vorhandene Syntax Highlightings angeschaut, aber diese sind leider alle nur für Code...
Ich wäre sehr froh wenn mir da jemand helfen könnte.Grüsse
Chiller
-
Moeglicher Weise hilft dir das hier weiter:
http://www.dreamincode.net/forums/topic/57072-syntax-highlight-in-c%23/
-
Danke.
Mit dem kann ich schon mal nach Schlüsselwörter suchen, aber...
Wie kann ich dann die korrekte Formatierung prüfen? Das wird ja das eigentlich schwierige am Ganzen.Z.B. sollen Pluszeichen welche in einem Textteil sind nicht als Trennzeichen verwendet werden.
Weisst du wie das z.B. im Visual Studio gelöst wurde, dass die Formatierung sauber läuft?
Gibt es da einen Algorythmus?Grüsse
Chiller
-
-
Naja das was in Visual Studio passiert sind ja zwei unterschiedliche Dinge. Einmal hast du einen Syntaxhighlighter welcher dir Stumpf deine Keywords markiert und du brauchst einen On-The-Fly Parser der den Text ueberprueft. So solltest du das auch in deinem Programm trennen.
Algorithmen gibt es dafuer keine vorgefertigten, das musst du dir leider selbst schreiben.
-
@dot:
So weit ich das verstanden habe ist die SDK eigentlich dazu gedacht, macros für VS zu schreiben. Ich will aber ein Programm schreiben, welches das VS nicht voraussetzt. Wenn ich mich irre, dann korrigiere mich bitte.@Firefighter:
Stimmt, ist eigentlich logisch, dass das zwei Abläufe sind.Ich habe mir überlegt, ob es nicht sinnvoll wäre den ganzen Text in Objekte zu unterteilen und alles was zu einem Objekt gemacht wurde, aus dem Text zu entfernen. Diese Objekte würden dann ein paar Infos haben wie: Den Text oder Wert, Startpunkt im Text, Länge im Text,
Durch die Unterteilung in Objekten könnte ich gleich sehen ob es Fehler gibt, da auch Pluszeichen in solche Objekte umgewandelt würden. Falls dann noch etwas im Text übrig bleibt ist es ein Fehler.
Das einfärben würde ich dann anhand der Objekte machen.Ich weiss noch nicht ob das Funktionieren wird, aber bis jetzt sehe ich noch kein Problem.
Grüsse
Chiller
-
Oh sry, ich dachte du wolltest Syntaxhighlighting für eine eigene Sprache in VS einbauen...