~LineRuleって怪しいぞ
文字列のパーティションを決定し,色づけなどのために使用するSingleLineRuleクラスを使ってみたけど,なんかおかしい。。。
以下のように自作のパーティションスキャナを作って,その中でSingleLineRuleオブジェクトにより,
[......]
という文字列があったら色付けしようと思ってやってみた。
public class ManuscriptPartitionScanner extends RuleBasedPartitionScanner {
....
public ManuscriptPartitionScanner() {
super();
IToken headerToken = new Token(MANUSCRIPT_HEADER);
List ruleList = new ArrayList();
ruleList.add(new SingleLineRule("[", "]", headerToken));
IPredicateRule[] rules;
rules = (IPredicateRule[])(ruleList.toArray(new IPredicateRule[0]));
setPredicateRules(rules);
}
}
実行結果は,ちゃんと [......] が色づけされてOK!なんだけど,一旦 [......] と入力した後に,
[....]..]
というように文字列中に終了文字を挿入すると,なぜか ...] が相変わらず色づけされたまま。
う~ん。。。文字の追加や削除が発生したときに,その影響範囲を決定するための Damager や Repairer などを自作して,ちゃんと「パーティションが変わったぞ!」って知らせてあげないといけないのかな。。。でも XMLEditor のサンプルはちゃんとタグ中に強引に > を打つとそこまでで色付けが解除されるし。。。
なんでだろう。。。
| 固定リンク
この記事へのコメントは終了しました。
コメント