やはり、漢字やタイ語云々についてはルールの中に組み入れるのはやめ、
- 分割ルールで分割可能と判断され
- 分割位置の左右の Scripts.txt 内のプロパティが Common でなく
- 分割位置の左右の Scripts.txt 内のプロパティが同一である
場合には分割しないようにした。この拡張ルールは [cci]Unistring.getWords(str, useScripts)[/cci] の第 2 引数で有効にするかを指定できる。
それから、UAX#29 のルールだと、空白類を1文字ずつ分割してしまう。これはそういうようにデザインされているのかわからないが、wasavi に組み込むにあたってはとても不便そうだ。そういうわけで連続する空白類はひとまとまりの擬似的な単語として扱うようにした。
ちなみに Scripts.txt 併用ルールだと、連続する絵文字はひとまとめに扱われない。絵文字は Common スクリプトに含まれるからだ。でも、たとえば Chrome や Firefox で Ctrl+← や Ctrl+→ 使うとひとまとめにしてるんだよね。どうしようかな。