Mar 14, 2007

XUL/Migemo [Forked Edition] 0.5.0

XUL/Migemo勝手改造版の新版を公開した。目に見える所では、アイコンを追加したのと、クイックMigemo検索(自動的に始まる、もしくは「/」キーで開始する検索)の終了トリガーを変更できるようにしたくらいしか違いは無い。

根本的に変わったのはバックエンドで、先日から取り組んでた事の成果を反映して、主要な部分をXPCOMコンポーネント化した。以下、開発者向けの情報。

本家XUL/MigemoのコアAPIに相当する物として、nsIXMigemoというインターフェースを用意してある。XUL/Migemo [Forked Edition]が動作するウィンドウでは本家と同じAPIが使えるけれども、それ以外の場所でも、以下のようにすれば同じような機能が使える。

以下は正規表現の取得の例。


var XMigemo = Components
      .classes['@piro.sakura.ne.jp/xmigemo/core;1']
      .createInstance(Components.interfaces.pIXMigemo);

var regexp = new RegExp(XMigemo.getRegExp('unko'), 'i');

今度は範囲を指定して検索し、ヒットした箇所をDOM2 Rangeで取得する例。


var body = _content.document.body;
var range = _content.document.createRange();
range.selectNodeContents(body);

var startPoint = _content.document.createRange();
startPoint.setStartBefore(body);

var endPoint = _content.document.createRange();
endPoint.setEndAfter(body);

var foundRanges = XMigemo.regExpFindArr(
      'fire ?fox|thunderbird', 'i',
      range, startPoint, endPoint);
for (var i in foundRanges)
  dump('found term '+i+' is '+foundRanges[i].toString());

呼び出し元の実装は限定してないはずなので、JavaScript以外からも呼べるはずなんだけど、試してないから分からない。

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能