我想在我的项目上运行hoogle
。我从项目中成功生成了hoogle数据库(扩展名为.hoo
的文件)。
但是当我在本地运行服务器时,hoogle找不到我项目中定义的任何功能或类型。
它可以找到一些前奏函数,例如map
,但没有找到我的项目中定义的函数。
hoogle dump my-project.hoo
转储内容没有错误。
我还将my-project.hoo
移至~/.cabal/share/x86_64-osx-ghc-7.8.4/hoogle-4.2.38/databases
所有.hoo
个文件所在的位置。再没有成功。
-verbose
开关也不输出任何有用的信息。
任何建议都表示赞赏。
修改
感谢mhuesch
的建议,我能够获得搜索结果。虽然,返回的结果没有链接到本地hackage文档。 我无法在网络上找到的任何内容是,haogle服务器会在当前目录中查找名为default.hoo
的文件。
编辑2:
如果您和我一样拥有5000多个数据库(即,.hoo
文件),您可能会收到太多打开的文件"组合它们时出错。诀窍很简单:为所有hoogle combine x*.hoo -o=parts/x.hoo
运行x='a' ... 'z'
,然后在parts文件夹中运行hoogle combine *.hoo -o=default.hoo
。
编辑3:
如果您想将您的搜索结果与本地hackage文档相关联,
使用hoogle convert --doc='absolute-path-to-your-doc' your-package-hoogle-doc.txt default.hoo
。
我无法获得相对路径的工作。
答案 0 :(得分:2)
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
的了解来自here。似乎似乎并不是很清楚。
hoobuddy(上面链接的项目),虽然很酷,似乎没有解决你想要的问题。我认为关键在于借助于hoogle数据
$ hoogle data --help
...
-l --local[=FILEPATH] Use local documentation if available
...
我自己没有这样做,所以我不确定。 this writeup的作者通过从源代码编译hoogle并添加其本地docs目录来实现本地文档链接。我认为你可以通过使用hoogle数据来避免这种情况。