6

hoogle私は私のプロジェクトで実行したいです。プロジェクトからhoogle データベース (.hoo拡張子付きのファイル) を正常に生成しました。しかし、サーバーをローカルで実行すると、プロジェクトで定義されている関数や型を hoogle が見つけることができません。などのいくつかのプレリュード関数を見つけることができますがmap、私のプロジェクトで定義されている関数は見つかりません。 hoogle dump my-project.hooエラーなしでコンテンツをダンプします。また、すべてのファイルが存在する場所に移動my-project.hooしました。再び成功しません。 switch も有用な情報を出力しません。どんな提案でも大歓迎です。~/.cabal/share/x86_64-osx-ghc-7.8.4/hoogle-4.2.38/databases.hoo-verbose

編集:

さんの提案のおかげでmhuesch、検索結果を得ることができました。ただし、返された結果はローカルのハッキング ドキュメントにリンクされていません。Web のどこにも見つからなかったのは、hoogle サーバーがdefault.hoo現在のディレクトリで呼び出されたファイルを探しているということです。

編集2:

私のように、5000 以上のデータベース (つまり.hooファイル) を持っている場合、それらを結合するときに「開いているファイルが多すぎます」というエラーが表示されることがあります。トリックは簡単です。hoogle combine x*.hoo -o=parts/x.hooすべてに対してx='a' ... 'z'実行hoogle combine *.hoo -o=default.hooしてから、parts フォルダーで実行します。

編集3:

hoogle の検索結果をローカルのハック ドキュメントとリンクさせたい場合は、 を使用しますhoogle convert --doc='absolute-path-to-your-doc' your-package-hoogle-doc.txt default.hoo。相対パスを機能させることができませんでした。

4

1 に答える 1

3

Hoogle は現在のディレクトリ (コマンドhoogleが実行される場所) で「default.hoo」という名前のデータベースを検索するので、データベースの名前をその名前に変更すると、それが見つかるはずです。

cabal ディレクトリのデータベースに追加するには、これでうまくいくと思います ( http://newartisans.com/2012/09/running-a-fully-local-hoogle/から取得):

cd {...path to hoogle databases dir...}
mv default.hoo default.hoo-prev
hoogle combine *.hoo

編集: (の編集に応じてOxy)

私の知識はここdefault.hooから来ています。あまり知られていないようです。

hoobuddy (上記のリンクされたプロジェクト) はクールですが、あなたが望むものには対処していないようです。その鍵はHoogleデータの助けにあると思います

$ hoogle data --help
...
-l --local[=FILEPATH]  Use local documentation if available
...

自分でやったことがないので自信がありません。この記事の著者は、ソースから hoogle をコンパイルし、ローカルの docs ディレクトリを追加することで、ローカル ドキュメント リンクを実現しました。フーグルデータを使えばそれを回避できると思います。

于 2015-04-07T20:58:24.227 に答える