2004-06-27 (Sun)

XUL/Migemo のパッチ

Firefox のお話しなので、興味がない方はすっ飛ばしましょう。

通常の Find as you type は、全テキストに対する検索とリンクのみに対する検索とを別々に実行する事が出来て便利そうなのですが、XUL/Migemo を利用している場合は、現状だとどちらか片方しか使えなくて便利さを実感する事が出来ません。

XUL/Migemo にもせっかくリンクのみの検索が実装されているのだから、通常の Find as you type の様に、起動するキーにより動作を代えるのもそれほど難しくないだろうと思ってソースを眺めてた所、ちょっと書き変えただけで動作するようになりました。

またままた作者さんにメールを送りつけましたが、本業が忙しそうで反映されるのに時間がかかるかもしれませんから、変更した箇所を書いておきます。xpi ファイルを用意するやり方は全くもって知らないので、ちょっと面倒ですがお許しを。

まずプロファイルディレクトリ内にある extensions というディレクトリの中のどこかから、xulmigemo.jar という zip で圧縮されたファイルを探してきます。こいつを解凍すると、content/romaninput.js というファイルがあるので、以下のパッチをあてるか手動で書き換えるかして Firefox を再起動すればOKです。

偉そうに語りましたが、実際には大した事はしてません。変数名 hogehoge だし(笑)

以下は XUL/Migemo ver0.1.9 で試しました。それ以外のバージョンでも行数が違うと思いましたが、基本的には動作するはずです。

diff -ru content.old/romaninput.js content/romaninput.js
--- content.old/romaninput.js	2004-05-04 00:24:32.000000000 +0900
+++ content/romaninput.js	2004-06-27 18:19:32.000000000 +0900
@@ -35,6 +35,7 @@
 var XM_NOTFOUND=2;
 var XM_NOTLINK=4;
 var gFoundRange;
+var hogehoge=false;
 
 function xmFind(){
 search(false,(gCurrentKeyword=="" ? gPrevKeyword : null));
@@ -144,7 +145,12 @@
 				//alert("migemo is not active. not autostart.");
 				//オートスタートではない
 				if(e.charCode==47){//オートスタートではないが。"/"が押されているのでスタートする。
-					isXMigemoActive=true;
+					isXMigemoActive=true; hogehoge=false;
+					if(e.preventDefault) e.preventDefault();
+					return;
+				}
+				else if(e.charCode==92) {
+					isXMigemoActive=true; hogehoge=true;
 					if(e.preventDefault) e.preventDefault();
 					return;
 				}
@@ -608,7 +614,7 @@
 	foundRange.startContainer.ownerDocument.defaultView.focus();
 	//setSelectionAndScroll(foundRange,selCon);
 	var rv = isInsideLink(foundRange);//リンクにfocusをセットする役割も持つ
-	if(getPrefValue("xulmigemo.linksonly", "bool", "true")=="true"){
+	if(hogehoge || getPrefValue("xulmigemo.linksonly", "bool", "true")=="true"){
 //		alert(rv);
 		if(rv==true){
 			setSelectionAndScroll(foundRange,selCon);

再起動したら動作を確認してみましょう。設定で、AutoStart にチェックが入っている場合はチェックを外す必要があります。

/ を押してから検索した場合は、通常の全テキスト検索。\ を押してから検索した場合は、リンク文字列の検索になります。

ちなみに通常の Find as you type ですと、リンクのみの検索の場合は ' が割り当てられていますが、日本語106キーボードで qwerty 配列の場合、' はとてつもなく不便なので、\ にしました。

まだリンクのみ検索を利用した操作には慣れませんが、こいつに慣れればマウス離れがまた一歩進む気がします。

Posted by Kyosuke Takayama at 2004-06-27 (Sun) 21:30 printable version

この記事へのコメント

1) plus7 (2004-07-02 (Fri) 18:52)

本日適用しました。本当にすみません。

2) takayama (2004-07-02 (Fri) 22:09)

取り込んで頂き有難うございました。
いやぁ、実はあの後掲示板見たりして、AutoStart にチェックが入っていない場合に対応していないから、駄目ジャンとか思ってたんですよね。(^^;

コメントはお気軽にどうぞ

Cookie に保存しますか?


・スパム対策のため、http:// を含むコメントの投稿は出来ません。
・スパムチェックのため、投稿がすぐに反映されない場合があります。
・メールアドレス入力欄には何も入力しないでください。

トラックバック

トラックバックURL: http://espion.just-size.jp/mt-tb.cgi/153


 
Copyright (C) Kyosuke Takayama, All rights reserved.