Haskell离线文档?


Answers:


53

Hoogle可以脱机使用,可以从Cabal安装:http ://hackage.haskell.org/package/hoogle

使用说明位于http://www.haskell.org/haskellwiki/Hoogle#Command_Line_Search_Flags

用法:

$ hoogle --help
Hoogle v4.2.8, (C) Neil Mitchell 2004-2011
http://haskell.org/hoogle

hoogle [COMMAND] ... [OPTIONS]

Commands:
  [search]  Perform a search
  data      Generate Hoogle databases
  server    Start a Hoogle server
  combine   Combine multiple databases into one
  convert   Convert an input file to a database
  test      Run tests
  dump      Dump sections of a database to stdout
  rank      Generate ranking information
  log       Analyse log files

Common flags:
  -? --help     Display help message
  -V --version  Print version information
  -v --verbose  Loud verbosity
  -q --quiet    Quiet verbosity

使用创建默认数据库hoogle data(有关更多信息,请参见http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html)。

编辑:本地安装Hoogle后的使用情况会话:

$ hoogle
No query entered
Try --help for command line options
$ hoogle data
(downloads databases...takes a few minutes)

我在这里遇到了一个错误...显然与Cabal的版本有关,所以我对此进行了更新(http://hackage.haskell.org/trac/hackage/ticket/811)。那没有帮助,所以我跑了hoogle data all,由于花费了很长时间(似乎遍历了Hackage上的每个程序包)而取消了。它仍然不允许类似的查询,hoogle map但确实允许hoogle map +base(例如,将搜索限制在base包中)希望它对您有用!

EDIT2:这似乎可以解决问题(对我来说):

$cd .cabal/share/hoogle-4.2.8/databases
$hoogle combine base.hoo
$hoogle foldl\'
Data.List foldl' :: (a -> b -> a) -> a -> [b] -> a
Data.Foldable foldl' :: Foldable t => (a -> b -> a) -> a -> t b -> a

15
您可能还希望通过添加documentation: True~/.cabal/config文件中,然后使用来重新安装这些软件包,从而为已安装的软件包启用文档cabal install world --reinstall
hammar 2012年

2
hoogle data --local我花了3分钟的时间(大部分时间在下载过程中),然后我可以运行hoogle foldl它来查找foldl函数,或者hoogle server --local然后访问http://localhost/它既是完整的服务器,包含指向HTML文档的链接。
尼尔·米切尔

1
@NeilMitchell hoogle data allhoogle data --local执行/下载了大量内容,但是仍然不能让我在包中找到函数(例如parseFileWithMode)。这应该工作吗?
nh2 2012年

1
@ nh2:默认情况下,Hoogle仅搜索平台,请尝试hoogle +haskell-src-exts parseFile
Neil Mitchell

1
hoogle server --local需要更多的可见性。它类似于godoc -http
sjakobi 2014年

21

可以.tar.bz2从Haskell网站下载HTML文档:

https://downloads.haskell.org/~ghc/latest/docs/

我刚刚下载了https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2,这正是我一直希望的。

还有其他选项,例如Dash和Zeal,另请参阅reddit thread


答案不是最新的:(似乎第一个链接已断开
。– MaiaVictor

在那里。谢谢!
MaiaVictor,2015年

这对我来说是最好的答案,因为我无法通过hoogle server --local
user24601

14

如果安装Haskell平台,它将包含GHC文档和GHC库文档(涵盖了核心库)。在Windows上,它们位于“所有程序| Haskell Platform”下的“开始”菜单上。


很高兴知道。linux上有类似的东西吗?
Andriy Drozdyuk

我认为Haskell平台在不同的操作系统上应该是相同的,但是我从未在Linux上使用过。如果已安装,则可以尝试搜索文件“ Data-Binary.html”(Data.Binary的文档)以查看文档是否已安装在某处。
arx 2012年

4
@drozzy:在Debian / Ubuntu上,我相信有些文档包haskell-platform-doc可以安装。
li.davidm 2012年

haskell平台将不再维护,并且始终过时,因此我不认为这是一个好答案
dredozubov 2015年

1
@dredozubov来源?我找不到关于将来无法维护的任何信息。
Andriy Drozdyuk '16

10

编辑〜/ .cabal / config文件。寻找说的线(可能已注释掉)documentation: False。将该行更改为documentation: True并取消注释。现在,当您使用cabal install文档构建项目时,还将在本地构建和保存项目。

在相同的配置文件中四处查看,您会发现诸如doc-index-file,docdir,datadir,prefix等之类的选项,这些选项使您可以配置文档的存储位置。


5

它本身可能不是“规范的”,但我认为最有用的选择是dash(OS X)/ zeal +生成的docsets之类的docset软件。这样,您将免费获得搜索,还可以选择构建自定义文档集。可以将其中两个项目的“基础”软件包haddock文档都打开。您可以使用haddocsetdash-haskell构建自定义文档。它还与emacs / vim / other编辑器很好地集成在一起,允许您拥有基于项目的文档集(这样您就可以在每个项目的基础上获得相关版本,而不必为本地麻烦而烦恼了所有这些麻烦!)并且不要将您限制为您可以拥有的任何构建流程。

如果您使用来构建项目,则cabal-install可以documentation: True在中进行设置~/.cabal/config,然后重新安装依赖项以在本地获取生成的haddocks。

如果使用stack,则可以利用stack haddock命令来构建依赖关系并使用生成的haddocks项目。



1

速度是一种免费而美观的通用工具。它支持多种语言,技术和库,以及一键式更新。

您可能可以在其文档列表中找到更多已经使用的功能。



0

如果您正巧使用Debian派生的发行版及其软件包,则可以在以下位置找到所有已安装的Haskell软件包(如果您还安装了libghc-foo-doc软件包)的组合文档。

file:///usr/share/doc/ghc-doc/html/libraries/index.html

此外,这些libghc-foo-doc软件包还包含必要的文件,因此,如果使用apt-get install hoogle,那么您应该可以立即hoogle搜索通过这种方式安装的所有库。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.