# JTextPane mit Java (eclipse) Syntax Highlighting



## Purgator (17. Nov 2010)

Aloha,
ich weiß dass es das Thema Syntax Highlighting häufiger gibt - jedoch habe ich bisher nicht das gefunden was ich suche.
Generell soll ich für ein derzeitiges Projekt (Java) Syntax Highlighting implementieren und auch wenn das komisch klingt, mir wurde gesagt ich solle nichts selber schreiben sondern etwas vorgefertigtes nehmen (wahrscheinlich wegen getesteter effizienz und bereits geschehener Bugausmerzung... oder einfach wegen Zeitersparnis).
Dazu habe ich auch ein paar fertige (kostenlose) Sachen gefunden:
Syntax Highlighting
Compiler Tools
jsyntaxpane - Project Hosting on Google Code
Derzeit wird Ostermiller's Version genutzt - auch wenn einzelne Sachen angepasst wurden oder evtl. noch angepasst werden müssen.
Die JSyntaxPane wird nicht genutzt, weil sie anscheinend bereits noch zusätzliche Features implementiert (Zeilennummern, undo/redo...) welche nicht standartmäßig enthalten sein sollen (d.h. man soll z.B. einen Editor mit Highlighting haben, welcher jedoch keine Zeilennummern anzeigt).
Das aus Bristol wurde erst vor kurzem gefunden, scheint jedoch auch keine Vorteile gegenüber Ostermiller zu haben.

Mein Problem ist nun, dass gewünscht wurde wenn möglich das Eclipse Highlighting einzubinden. Seltsamerweise finde ich über Google dafür keine Vorgegebenen Klassen (für eine JTextPane).

Daher meine Frage ob jemanden von euch so etwas bekannt ist, oder ob ich entweder doch das selber schreiben müsste bzw. vorhandenes anpassen?


----------



## Purgator (17. Nov 2010)

Was mir jetzt erst auffällt... eclipse stellt ja auch Variablennamen farbig da (blau bei mir).
Jedoch nicht nur Variablen in dieser Klasse, sondern auch aus anderen (z.B. Color.red).
Damit dürfte die Einfärbung ja nur möglich sein, wenn man zugriff auf alle importierten/verwendeten Klassen hat.
Da dies in meinen Fall nicht unbedingt so sein dürfte, ist das exakte eclipse Syntax Highlighting so gar nicht möglich - oder übersehe ich da gerade einen Trick?
Z.B. (als "Trick") wenn etwas da steht, was kein String ist, aber ein Punkt enthalten ist (Hierarchie basierter Zugriff) und am Ende keine Klammern sind (Methode) dann muss es eine Variable sein (weiß jetzt nicht ob es bei diesem Fall tatsächlich eine Variable sein muss, oder ob es noch andere Fälle gibt, daher die Frage).


----------



## Michael... (17. Nov 2010)

Purgator hat gesagt.:


> Da dies in meinen Fall nicht unbedingt so sein dürfte, ist das exakte eclipse Syntax Highlighting so gar nicht möglich - oder übersehe ich da gerade einen Trick?


Ich sehe da keinen Trick. Die IDE betreibt ja nicht nur Syntax Highlighting, sondern überprüft diese auch und bietet Vorschläge zur Codevervollständigung. Von daher kennt Ecllipse sehr genau Struktur und Aufbau importierter Klassen.


----------



## Purgator (17. Nov 2010)

Ja, das meinte ich damit auch nicht.
Nur das was ich entwickeln soll besitzt halt nicht zwangsläufig alle Klassen (da kein Kompiler integriert ist, ist dies auch nicht nötig) - wenn ich nun aber das gleiche Highlighting wie eclipse umsetzen will, kann ich ja trotzdem nicht auf die Klassen zugreifen (ob eclipse das wirklich macht weiß ich allerdings nicht...), ich müsste also ein anderes Vorgehen wählen.
Darauf sollte sich meine Frage eigentlich beziehen, sry das ich mich nicht ganz klar ausdrückte.


----------



## Michael... (17. Nov 2010)

Musst ja nicht alle Klassen besitzen. Es reicht ja diese zu kennen ;-)
Ohne die Klassen zu kennen, macht so ein Highlighting m.M. keinen Sinn bzw. ist nicht möglich.

Wenn Du auf Basis Deines "Tricks" (der ja letztendlich nur Informationen aus dem aktuellen Kontext bzw. Inhalt auswertet) Textteile hervorhebst, hat das ja nur die Aussagequalität: "Das könnte jetzt eventuell eine Variable sein - aber ganz sicher ist das nicht."


----------

