SearchWPで単語の区切りに全角スペースを使うには

SearchWP[en]Firefoxの検索バーからページ内検索やハイライトができる拡張機能ツールバーにボタンを2つ(HighlightとTerms Toolbar)加えるだけで使える。複数の単語を別々にページ内検索で使えたり、前に検索(Shift+クリック)や大文字小文字の区別(Ctrl+クリック)もできて便利。
一つ困った事に、デフォルトでは単語の区切りに使えるのが半角「 」「+」「(」「)」「"」のみ。全角スペースを使えない。日本語で検索する際、単語の区切りに半角スペースを入力するのは手間がかかり不便だ。2005-12-28追記:SearchWP 0.5.5から全角スペースも単語の区切りに使えるようになった。

全角スペースを単語の区切りに使えるように改造する

実はSearchWPのファイルを一行修正すると、単語の区切りに全角スペースを使えるようになる。今回はその紹介。

必要な道具はZIPを扱える圧縮・解凍ソフトとUTF-8を扱えるエディタ。作業例では、SearchWP 0.5.2、圧縮・解凍ソフトは7-Zip、エディタはサクラエディタを使った。7-Zipを使うと拡張機能で使うxpiファイルやjarファイルの中を直接編集できる。名前の変更や解凍・圧縮の手間が省けるのでおすすめ。(参考:朝顔日記 - 7-zip File Manager で xyzzy を使う

作業1 termsUtil.jsの場所

修正するファイルは「termsUtil.js」、これをエディタで開く。場所は以下の通り。

SearchWPをインストール済みの場合
プロファイルフォルダ/extensions/{3e270ac3-8936-43fb-ad20-b4685172a83d}/chrome/searchwp.jar/content/termsUtil.js
インストール前のxpiファイルの場合(xpiファイルは
//addons.mozilla.org/extensions/moreinfo.php?application=firefox&category=Search%20Tools&numpg=10&id=376">Mozilla Updateでダウンロードできる):searchwp-0.5.2.xpi/chrome/searchwp.jar/content/termsUtil.js

xpiファイルやjarファイルはZIPで圧縮されている。7-Zipだと普通のフォルダのように開ける。開けない場合は、拡張子をzipに書き換えて解凍する。

作業2 termsUtil.jsの修正

「termsUtil.js」を開いたら、78行目あたりにある次のコメントを探す。

// these characters do not occur on the search term buttons,
// except in quoted phrases

このコメントの上に次の一行を追加し、UTF-8形式で保存する。

case String.fromCharCode(12288):


保存後エディタを閉じると、7-Zipから「書庫を更新しますか?」と聞かれるので「OK」を押す。xpiファイルやjarファイルを解凍した場合は、ZIPで圧縮しなおし、元の拡張子に戻す。
JavaScriptに追加した1行は、Stringオブジェクトが文字列、fromCharCodeメソッドがISO Lathin 1文字コードを文字に変換、12288がISO Lathin 1文字コードで全角スペースです。作業の大まかな意味は、Terms Toolbarに現れない単語の条件に全角スペースを加えた、というところ。

作業3 Firefoxを起動する

SearchWPをインストール済みの場合
Firefoxを起動すると、単語の区切りに全角スペースを使えるようになる。
インストール前のxpiファイルの場合
修正したxpiファイルをFirefoxにインストールする。Firefoxを再起動すると、単語の区切りに全角スペースを使えるようになる。

参考になりました

//www.geocities.jp/kitaro_ja/ff_google/googlebar.html">Firefox用Googlebar:元ネタはここのGooglebar「ちょっと改造」。それをSearchWPに直接応用できた。