ウェブ検索の設定

廃れた仕様です。新しい情報は新しいgoogle-modeの設定のまとめ - Giraffe+の開発についてのブログです。

google-modeはウェブ検索関数を呼びます。その関数(WebSearch)を上書き定義すれば動作を設定できるようになっていました。
しかし、それでは細かい設定をするために全体を書き換えることになり、非効率的であり仕様の変化などにも柔軟性を欠きます。
そこで、Giraffe.web_search関数はGiraffe.before_web_search, Giraffe.after_web_search, Giraffe.web_search_make_urlの3つの関数を呼び出す仕様にしました。検索前、検索後、実行URL生成、この3つを独立に定義可能にしたわけです。
デフォルトの設定は、before_web_searchとafter_web_searchはそれぞれBeforeExecuteとAfterExecuteを呼ぶようになっています。web_search_make_urlはnkf32.dllがある場合はUTF-8、なければShift_jisにクエリーをエンコードしてURLを生成します。その際、Giraffe.GOOGLE_URLが定義されていれば、それを"http://www.google.co.jp/search?"の代わりに使います。
そしてもうひとつ設定可能なのが検索メニューです。googl-modeでCtrl+Enterを打つとweb-search-menu.giraffeを呼び出します。このファイルはデフォルトでは未実装です。スクリプトで設定可能なのに、他ファイルで設定可能なスクリプトを書くのが面倒に感じられたり、自分が使わないものは作る気になれなかったりしたためです。それと、メニューに関しては、まったく別の、なにかメニューを作る専用言語のようなものを用意するのがいいかと考えてます。
web-search-menu.giraffeは、関数を再定義するよりファイルを使ってのオーバーロードのほうがいいかとこういう仕様にしてしまいましたが、そうでもなさそうなので変更することになるかもしれません。そうなったとしても、デフォルトでweb-search-menu.giraffeを呼び出す関数になるだけでしょうから、あれこれ書き直す必要などは生じないはずです。ちなみに私はweb-search-menu.giraffeを、メニューを表示するのではなく、ブラウザの検索ダイアログにクエリーを貼り付けるスクリプトにしています。