Haskell 在当地奔跑

Haskell 在当地奔跑,haskell,hoogle,Haskell,Hoogle,我想在我的一个项目上运行hoogle。我成功地从我的项目生成了hoogle数据库(扩展名为.hoo的文件)。 但是当我在本地运行服务器时,hoogle找不到项目中定义的任何函数或类型。 它可以找到一些前奏曲函数,如map,但没有在我的项目中定义的函数。 hoogle dump my project.hoo无错误地转储内容。 我还将我的项目.hoo移动到~/.cabal/share/x86_64-osx-ghc-7.8.4/hoogle-4.2.38/databases,所有.hoo文件都存放在那

我想在我的一个项目上运行
hoogle
。我成功地从我的项目生成了hoogle数据库(扩展名为
.hoo
的文件)。 但是当我在本地运行服务器时,hoogle找不到项目中定义的任何函数或类型。 它可以找到一些前奏曲函数,如
map
,但没有在我的项目中定义的函数。
hoogle dump my project.hoo
无错误地转储内容。 我还将
我的项目.hoo
移动到
~/.cabal/share/x86_64-osx-ghc-7.8.4/hoogle-4.2.38/databases
,所有
.hoo
文件都存放在那里。再也没有成功。
-verbose
开关也不会输出任何有用的信息。 如有任何建议,我们将不胜感激

编辑:

多亏了mhuesch的建议,我才能够得到搜索结果。尽管如此,返回的结果并没有链接到本地黑客文档我在网上找不到的是,hoogle服务器在当前目录中查找名为
default.hoo
的文件。

编辑2:

如果您像我一样拥有5000多个数据库(即,
.hoo
文件),则在组合它们时可能会出现“打开的文件太多”错误。诀窍很简单:运行
hoogle combine x*.hoo-o=parts/x.hoo
for all
x='a'…'z'
然后在零件文件夹中运行
hoogle combine*.hoo-o=default.hoo

编辑3:

如果您想将hoogle搜索结果与本地黑客文档链接, 使用
hoogle convert--doc='absolute-path-to-your-doc'your-package-hoogle-doc.txt default.hoo

我无法使相对路径正常工作。

Hoogle在当前目录(运行命令
Hoogle
的地方)中搜索名为“default.hoo”的数据库,因此如果将数据库重命名为该目录,它应该会找到它

要将其添加到您的阴谋集团目录中的数据库中,我相信这应该有效(取自):

编辑:(回应Oxy的编辑)

我对
default.hoo
的了解来自。这似乎不是很清楚

Hoobddy(上面链接的项目)虽然很酷,但似乎无法满足您的需求。我认为关键在于胡格尔数据的帮助

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

我自己没有做过,所以我不确定。通过从源代码处编译hoogle并添加其本地文档目录,作者实现了本地文档链接。我认为你可以通过使用hoogle数据来避免这种情况。

AFAIK你必须运行
hoogle combine
,才能将你的数据库放在那里-遗憾的是,所有在线文档现在都死锁了,我找不到详细信息-我相信,只要该项目有一个从无到有、自动设置hoogle web服务器的松散角色,就会有人提供帮助它索引了项目的所有Haskell代码。也许这对你有帮助。(免责声明:我参与了这个项目。)太棒了!它实际上以某种方式解决了这个问题。现在,我的功能显示在搜索结果中,但它们没有链接到本地黑客文档。如何链接到包的本地文档?
$ hoogle data --help
...
-l --local[=FILEPATH]  Use local documentation if available
...