UbiquityでCPANのモジュール検索

UbiquityCPANモジュールを検索できるようにしてみました。

使い方ですが、

  • Alt+Spaceで起動
  • cpan Moose とtypeしてモジュールをcpanから検索

です。

表示部分は、そのままHTML表示して手を抜いてるのであれですが、jQueryが使えるので、その辺は自由に変更できます。
http://gist.github.com/8080

makeSearchCommand({
  name: "cpan",
  url: "http://search.cpan.org/search?q={QUERY}&mode=module",
  icon: "http://search.cpan.org/favicon.icon",
  description: "Searches <a href=\"http://search.cpan.org/\">CPAN</a> for your words.",
  preview: function(pblock, directObject){
    var searchTerm = directObject.text;
    var pTemplate = "Searches <b>${query}</b> from <a href=\"http://search.cpan.org/\">CPAN</a>.";
    var pData = {query: searchTerm};
    pblock.innerHTML = CmdUtils.renderTemplate(pTemplate, pData);
    var url = "http://search.cpan.org/search";
    var params = {q: searchTerm, mode: "module"};
    jQuery.get( url, params, function(data) {
       jQuery(pblock).html(data);
    });
  }
});

使ってみた感想としては、コマンドの結果をpreviewできるのがコマンドの使い勝手をとてもよくしているように感じました。また、開発環境込みで提供されているというのは、Ubiquityのエコシステムが上手く行っている大きな要因だと感じました。

開発面でいうとjQueryとTemplateエンジンが組み込まれているので、開発が楽ですね。ただ、現状だとcommand editorで編集しても保存されないときがあるようで、デバッグではまることがあるなぁという感じです。ここらは今後の改善に期待といったところでしょうか。