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):
funzt (wort wird gehighlightet):
funzt (wort wird nicht gehighlightet):
funzt NICHT! (wort wird gehighlightet):
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?
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: