![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Neuer Benutzer
Registriert seit: 27.10.2005
Beiträge: 7
|
Hallo!
Ich habe mich jetzt schon etwas länger mit dem Thema Syntax Highlighting beschäftigt. Mein Ziel ist es, beliebigen Source Code, der in einem JTextPane steht, zu hightlighten. Die Informationen (Schlüsselwörter etc.) sollen in Dateien stehen und dort ausgelesen werden. Im Folgenden möchte ich mal kurz einen Überblick über meinen aktuellen Stand der Dinge geben. Wenn irgendwas nicht stimmt oder ich was falsch verstanden habe, dann korregiert mich bitte. Wie ich herausgefunden habe, brauche ich da so etwas, was sich "Scanner" nennt. Dieser Scanner parset praktisch den Text in einzelne Tokens. Diese können dann eingefärbt werden. Als erstes, wirklich interessantes, hab ich den Scanner von http://www.cs.bris.ac.uk/Teaching/Re...MS30122/tools/ gefunden. Leider funktioniert der mitgelieferte Java-Scanner nicht tadellos. Beim editieren des Textes tauchen Fehler beim Highlighten auf. Dann bin ich JLex bzw. JFlex gestoßen. Das sind Java-Programme, die Scanner erstellen (Scannergeneratoren). (Ab wann brauch mal den CUP dazu? Das hab ich nicht ganz verstanden.) Das Problem ist da aber, dass man dort vorher die Angaben über die Sprache machen muss und diese nicht in Konfigurationsdateien auslagern kann. Außerdem ist mir nicht ganz klar, wie man das mit dem JTextPane verknüpft. Immerhin will ich ja nicht bei jedem Buchstaben, der getippt wird, den kompleten Text highlighten. Also wie könnte so was aussehen? Hat da jemand Erfahrungen oder ein paar Tipps? Gibt es noch irgendwo Docus dazu? Gruß Konstantin |
|
|
|
|
|
Nach oben #2 |
|
Projektleiter
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
|
Ich setze bei meinem Editor auf eine auf der veralterten Syntax-Komponente aus JEdit basierende Komponente. Allerdings kann man dort bislang auch noch keine Konfigurationsdateien verwenden, sondern muss den kompletten Parser in Java schreiben - eine Höllenarbeit.
Vielleicht kannst du dich ja mal mit der Editor-Komponente, die in NetBeans integriert ist, auseinander setzen.
__________________
Patrick Gotthardts Weblog. |
|
|
|
|
|
Nach oben #3 |
|
Neuer Benutzer
Registriert seit: 27.10.2005
Beiträge: 7
|
Ich hab mich jetzt mal mit der Syntax-Componente von JEdit auseinandergesetzt. Wollte mir dann mit Hilfe von dem JEdit-Code meine eigene Text-Komponente schreibe, habe dabei aber festgestellt, dass das veralterter Code ist, der sich nur mit -source 1.3 übersetzen lässt. Dieser Code benutz viele Methoden, die deprecated sind.
Der Versuch, mir eine eigene Komponente mir "mordernen" Mitteln ist mangels Erfahrung gescheitert. Ich habe versucht von JComponent abzuleiten, was aber eine Menge arbeit macht, dieses ganze Text-Gedöhnse zu Implementieren. Das Ableiten von JTextComponent hat gar nicht geklappt. Kann mir irgendwer links zu Tutorials o. ä. geben, die das Erstellen von (Text-)Componenten behandeln? Oder vielleicht auch ein Buch, welches das Behandelt? Hat jemand noch andere Ideen, wie ich diese TextComponente realisieren kann? Danke im Voraus. |
|
|
|
|
|
Nach oben #4 |
|
Projektleiter
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
|
http://java.sun.com/products/jfc/tsc...kit/index.html
Vielleicht hilft dir das ja. Ich fand's seinerzeit völlig unverständlich und unbrauchbar (zumal der Parser nicht richtig funktioniert)
__________________
Patrick Gotthardts Weblog. |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [SQLite] near "AUTOINCREMENT": syntax error | Prophet | Datenbanken | 5 | 11.05.2006 18:55 |
| synthax highlighting Klasse für HTML und PHP | robind | Desktop-Applikationen und Grafik | 15 | 16.01.2006 15:11 |
| line wrap mit jtextpane | beny_mcde | Desktop-Applikationen und Grafik | 3 | 12.02.2005 17:53 |
| URI Syntax | bluelight | Allgemeine Java-Programmierung | 3 | 11.02.2005 10:32 |
| XML in JTextPane darstellen | Elathir | HTML, XML und CSS | 1 | 20.01.2005 11:44 |