IWordDetector Highlight Probleme

Atze

Top Contributor
moin

ich hab immernoch ein kleines schönheitsproblem mit dem albernen IWordDetector.
klappt alles soweit (highlight, damagerepairing), nur wenn vor dem keyword (eigentlich für das wort gültige identifier) stehen, in anderen worten druckbare zeichen, wird das wort trotzdem erkannt. das sollte aber nur so sein wenn es am zeilenanfang oder völlig freistehend vorkommt.

um es mal zu verdeutlichen, "SELECT" ist in meinem fall ein keyword, das gehighlightet werden soll.

das wort ist mit einer wordrule und dem enstprechenden token (farbe) zu den rules hinzugefügt, und in 99% aller fälle funzt das auch. nur in dem einen nicht.

funzt (wort wird gehighlightet):
Code:
SELECT blablabla

funzt (wort wird gehighlightet):
Code:
blablabla SELECT blablabla

funzt (wort wird nicht gehighlightet):
Code:
SELECTblablabla

funzt NICHT! (wort wird gehighlightet):
Code:
blablablaSELECT blablabla

leider hat man keine möglichkeit vor den ersten char zu schauen, es gibt im IWordDetector nur diese beiden methoden. jemand ne ahnung wie ich den anders konfigurieren soll, damit vor dem wort nur whitespace oder der zeilenanfang zugelassen ist?

Java:
public boolean isWordStart(char c) {
		return !Character.isWhitespace(c);
	}
	
	public boolean isWordPart(char c) {
		return Character.isJavaIdentifierStart(c);
	}
 
Zuletzt bearbeitet:

Wildcard

Top Contributor
Du scheinst mir nicht glauben zu wollen das du dir die Arbeit mit Xtext sparen kannst :)
Wenn du mir eine Grammatik, oder ein einfaches Beispiel der Zielsprache (verfremdet, wenn es ein Geheimnis ist) zukommen lässt, kann ich dir zeigen wie einfach du mit Xtext ans Ziel kommst.
 

Atze

Top Contributor
hehe, ein geheimnis ist es nicht, nur nicht sehr verbreitet. :) TROIA, falls es dir was sagt.

naja, das highlighting ist ja bis auf diese sache schon mit jface erschlagen, und besonderheiten gibt es da erstmal nicht die ich dir nennen könnte. es sind halt erstmal generell die keywords, datentypen etc, da kann man als beispiel ja so ziemlich jedes token nehmen. :)

und den parser und damit eine referenzauflösung (und was alles noch vor mir liegt) nimmt mir xtext ja auch nicht ab, oder? ;)
 

Wildcard

Top Contributor
und den parser und damit eine referenzauflösung (und was alles noch vor mir liegt) nimmt mir xtext ja auch nicht ab, oder? ;)
Glaub es, oder nicht, aber genau das tut es. ;) Ein Xtext Editor ist ohne eigenen Code schreiben zu müssen schon sehr nahe dran an der Funktionalität des Eclipse Java Editors.
[EDIT] kurz zur Erklärung:
Xtext inferiert aus einer Grammatik ein komplettes EMF Modell deiner Sprache. Anschließend wird mittels ANTLR ein Parser erzeugt. Mittels des Parsers baut Xtext einen AST deiner Sprache, jagt alles durch den Linker, der Cross References auflöst (auch Dateiübergreifend) und am Ende hast du ein sauberes Objektmodell (keinen einfachen AST mehr).
Oben drauf kommt dann noch IDE Infrastruktur wie Syntax Highlighting, Outline, Validator, Quickfix Processor, Hyperlinking, Completion Proposal Processor,...
Zu diesem Zeitpunkt hast du noch keine Zeile Java Code geschrieben.


Wenn du ein snippet postest, schaue ich mal ob ich dafür eine einfache Grammatik stricken kann. Am besten mit Cross-References, damit du mir auch glaubst das er das wirklich kann :)
 
Zuletzt bearbeitet:

Atze

Top Contributor
hm, hätte nicht gedacht, dass das ding so viel kann :) das 1 min video auf deren page sieht schonmal gut aus. hast mich ja überzeugt, ich schaue es mir mal an und wenn ich nicht klarkomme sag ich nochmal bescheid :) danke erstmal
 

Atze

Top Contributor
hm, bin mi tdem ding ganz zufrieden und fand die möglichkeit der automatischen testgenerierung ganz ansprechend, aber entweder stimmt was mit dem tutorial nicht, oder ich weiß auch nicht

Unit Testing the Language

er kennt bei mir weder die annotationen noch die Objekte in diesem anschnitt. und welches von den 3 ist das "test-plugin"?
 

Wildcard

Top Contributor
Sorry, die Unit Test Geschichte ist glaub recht neu, die habe ich noch gar nicht ausprobiert.
Aber Morgen oder Übermorgen werde ich mir das wohl mal ansehen, denn das interessiert mich auch, dann kann ich vielleicht feedback geben.
Übrigens, wenn deine Sprache komplexere Ausdrücke (arithmetische zB) beinhaltet, solltest du dir unbedingt die Tree Rewrite Actions anschauen. Damit kann der AST umgeschrieben werden damit er weniger tief geschachtelt ist. Sehr nützliches Feature.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Probleme mit Windows 10 und javac Plattformprogrammierung 3
E Probleme mit Netbeans und javaDoc Plattformprogrammierung 6
J Probleme mit Umlauten unter Windows Plattformprogrammierung 2
M Eclipse Probleme beim Ausführen eines Programms Plattformprogrammierung 3
D Probleme bei Compilierung Plattformprogrammierung 1
J Probleme mit Toolbar Konfiguartion in e4 Anwendung. Plattformprogrammierung 0
A Probleme mit disable() Plattformprogrammierung 6
V RCP RCP hat Probleme mit der JAXB-Zuordnung glaub ich Plattformprogrammierung 2
B Eclipse Probleme mit build Plattformprogrammierung 8
M OSGi Probleme / Unklarheiten beim laden von DLL's Plattformprogrammierung 4
Madlip RCP Merere Probleme von win32 auf win64 Plattformprogrammierung 13
X Probleme mit dem OSGi-Framework Plattformprogrammierung 3
M Nach Umbenennung der Packages viele Probleme Plattformprogrammierung 11
G Probleme beim Export Plattformprogrammierung 2
M Teilweise Probleme beim Updaten von Plugins Plattformprogrammierung 3
dzim Probleme mit Eclipse Forms Plattformprogrammierung 2
N Probleme mit PartListener Plattformprogrammierung 5
dzim immer noch Probleme bei PlugIn-Integrierung Plattformprogrammierung 2
G SWT macht große Probleme mit Intel Mac (Leopard) Plattformprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben