ついでに、Hoogle検索できる、少しだけ便利なELispを書いた。
インストール
cabalでインストールできる。$ cabal install hoogle
多くのライブラリに依存しており、インストールには少し時間がかかる。
データベースを作成する。
$ hoogle data
データベースのダウンロードに少し時間がかかる。
試してみる
$ hoogle Data.ListData.List module Data.List
package List
package ListLike
package ListTree
package ListZipper
Data.Maybe listToMaybe :: [a] -> Maybe a
package list-extras
package list-grouping
〜以下略〜
検索できたが、テキストベースだとちょっと見難い。
サーバーにする
サーバーとしても起動できる。以下の例は3000番ポートで起動する場合。
$ hoogle server --port 3000
ブラウザから http://localhost:3000/ を開くと、
見慣れたHoogleの画面が表示される。
EmacsでHoogle検索
EmacsからHoogleを直接検索できると便利だけど、誰か作っていないかな?とりあえず、browse-url で検索文字列をHoogleに渡して、w3mで表示できると便利そうなので、作ってみた。
;;; w3mをデフォルトにする場合は以下をコメントアウトする
;;(require 'w3m-load)
;;(setq browse-url-browser-function 'w3m-browse-url)
(defun hoogle (keyword)
(interactive "sKeyword:")
(let ((url (format "http://localhost:3000/?hoogle=%s" keyword)))
(browse-url url)))
M-x hoogle 検索文字列を入力すると、Emacs上に検索結果を表示する。
なかなか便利だけど、検索結果画面内のリンクの先は hackage.haskell.org なのか。
ここから先もローカルにできると良いのだけど。