Quais são as possibilidades, se houver, de obter documentos offline para bibliotecas centrais Haskell (e talvez mais)?
Às vezes levo meu laptop para a cafeteria onde não há wi-fi, e seria bom ter algo como Hoogle, mas para uso offline.
Quais são as possibilidades, se houver, de obter documentos offline para bibliotecas centrais Haskell (e talvez mais)?
Às vezes levo meu laptop para a cafeteria onde não há wi-fi, e seria bom ter algo como Hoogle, mas para uso offline.
Respostas:
Hoogle está disponível off-line, instalável em Cabal: http://hackage.haskell.org/package/hoogle
As instruções de uso estão em http://www.haskell.org/haskellwiki/Hoogle#Command_Line_Search_Flags .
Uso:
$ 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
Crie um banco de dados padrão com hoogle data(mais informações em http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html ).
EDIT: Uma sessão de uso após instalar o Hoogle localmente:
$ hoogle
No query entered
Try --help for command line options
$ hoogle data
(downloads databases...takes a few minutes)
Encontrei um erro aqui ... aparentemente, ele está relacionado à versão do Cabal, então eu atualizei isso (http://hackage.haskell.org/trac/hackage/ticket/811). Isso não ajudou, então eu executei hoogle data all, o que cancelei porque estava demorando muito (parece que vai passar por todos os pacotes no Hackage). Ele ainda não permitiria uma consulta como, hoogle mapmas permitiu hoogle map +base(ou seja, restringiu a pesquisa ao basepacote) Espero que funcione para você!
EDIT2: Isso parece resolver o problema (para mim):
$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
hoogle data --localLevei 3 minutos (a maioria dos quais estava baixando). Posso então executar o hoogle foldlque encontra a função foldl ou hoogle server --localvisitar o http://localhost/qual é um servidor completo e inclui links para a documentação HTML.
hoogle data alle hoogle data --localfaço / baixa um monte de coisas, mas ainda não me deixa encontrar funções em pacotes (por exemplo parseFileWithMode). Isso deveria funcionar?
hoogle +haskell-src-exts parseFile
hoogle server --localprecisa de mais visibilidade. É o analogon para, por exemplo godoc -http.
A documentação HTML pode ser baixada .tar.bz2no site da Haskell:
https://downloads.haskell.org/~ghc/latest/docs/
Acabei de baixar https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2 e é exatamente o que esperava.
Existem também outras opções, como Dash e Zeal , e veja também o tópico do reddit .
hoogle server --local
Se você instalar a Plataforma Haskell, ela incluirá os documentos do GHC e os documentos da biblioteca do GHC (que cobrem as bibliotecas centrais). No Windows, eles estão no menu Iniciar em "Todos os programas | Plataforma Haskell".
haskell-platform-docvocê pode instalar.
Edite seu arquivo ~ / .cabal / config. Procure a linha (provavelmente comentada) que diz documentation: False. Altere essa linha para documentation: Truee descomente. Agora, quando você construir projetos com cabal installdocumentação também será criado e salvo localmente.
Procure um pouco mais naquele mesmo arquivo de configuração e você encontrará opções de coisas como doc-index-file, docdir, datadir, prefix, etc, que permitem que você configure onde a documentação é armazenada.
Pode não ser "canônico" per se, mas acredito que a opção mais útil é um software docset como dash (OS X) / zeal + docsets gerados. Desta forma, você obterá a pesquisa gratuitamente e também terá a opção de criar seus conjuntos de documentos personalizados. Não há problema em obter a documentação de haddock do pacote 'básico' com qualquer um dos projetos fora da caixa. Você pode construir conjuntos de documentos personalizados com haddocset ou dash-haskell . Também se integra perfeitamente com emacs / vim / outros editores, permite que você tenha conjuntos de documentos baseados em projeto (você terá as versões relevantes por projeto desta forma, esqueça todo esse trabalho com hoogle local!) E não restringir você a qualquer fluxo de construção que você possa ter.
Se você construir seu projeto com cabal-installvocê pode definir documentation: Trueem seu e ~/.cabal/config, em seguida, reinstalar as dependências para obter haddocks gerados localmente.
Se estiver usando pilha , você pode utilizar o stack haddockcomando para construir suas dependências e projeto com hadoques gerados.
Eu uso devdocs.io , ele tem documentos para várias linguagens e bibliotecas (incluindo Haskell) e tem um modo offline.
O Velocity é uma ferramenta universal gratuita e bonita para fazer exatamente isso. Suporta uma ampla gama de linguagens, tecnologias e bibliotecas, e atualização com um clique.
Provavelmente, você encontrará mais do que já está usando na lista de documentação.
Para Windows, instale os pacotes wget e curl do cygwin. Isso vai permitir hoogle data.
Se você estiver usando uma distribuição derivada do Debian e seus pacotes, então você encontrará a documentação combinada de todos os pacotes Haskell instalados (se você também instalar os libghc-foo-docpacotes) em
file:///usr/share/doc/ghc-doc/html/libraries/index.html
Além disso, os libghc-foo-docpacotes contêm os arquivos necessários para o hoogle, portanto, se você apt-get install hoogle, você deve ser capaz hooglede pesquisar imediatamente em todas as bibliotecas instaladas dessa forma.
documentation: Trueao seu~/.cabal/configarquivo e reinstalando esses pacotes comcabal install world --reinstall.