Hatena::Groupkeysnail

basyura snail

 | 

2010-03-24

Google でリファレンス検索

| 21:44 |  Google でリファレンス検索 - basyura snail を含むブックマーク はてなブックマーク -  Google でリファレンス検索 - basyura snail

【3/25 - ダメダメだったので修正】

shell.add の第五引数に true を設定しないと _keysnail.js を再読み込みしても反映されない。最初に書いて動いたものが動いてるのにそれに気付かずリファクタリングしていった結果がこれだよ orz

shell.add(names, description, callback, extra, replace);
    * names(Array)
          o コマンド名となる文字列の配列
    * description(String)
          o コマンドの簡易説明
    * callback(Function)
          o 実行される function オブジェクト
    * additional(Object)
          o 補完機能やコマンド引数などを格納するオブジェクト (省略可能)
    * replace(Boolean)
          o 既に存在するコマンドの場合、置き換えるか否か (省略可能)
Command System (Japanese)

site の指定も「http://doc.okkez.net/188/」に修正。



Ruby の新リファレンスマニュアル(http://doc.okkez.net/188/)。検索窓が有るんだけど検索が妙に遅いことが良くある。ヒットしない単語で検索かけちゃうと遅い気がするけどよく分からない。

遅いんだったら Google で site 使って検索すりゃいいじゃんと思いつき、そんなら keysnail からコマンドで検索できると楽でいいじゃんと思って実装してみた。

zou-search まんまだけど、コマンドと site を指定すれば他にも簡単に登録できるようにしてみた。

function defineGoogleSearchCommand(names, description , site) {
  shell.add(names , description ,
    function (args, extra) {
      let words = encodeURIComponent(extra.left + " site:" + site);
      let url = "http://www.google.co.jp/search?q=" + words + "&ie=utf-8&oe=utf-8";
      gBrowser.loadOneTab(url, null, null, null, extra.bang);
    },
    {
      bang      : true,
      literal   : 0,
      completer : function (args, extra) {
        let engines = [util.suggest.ss.getEngineByName("Google")];
        return completer.fetch.suggest(engines, true)(extra.left || "", extra.whole || "");
      },
  	},
	true);
}

defineGoogleSearchCommand(
  ["rubyapi"] , 
  M({ja: "Ruby API 検索", en: "ruby api search"}) , 
  "http://doc.okkez.net/188/"
);

わざわざプラグイン化しなくても _keysnail.js に登録すればいいのでらくちん。

補完した後に半角スペースを入れるのはできないのかな?地味にめんどくさい。

トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20100324
 |