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 map
mas permitiu hoogle map +base
(ou seja, restringiu a pesquisa ao base
pacote) 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 --local
Levei 3 minutos (a maioria dos quais estava baixando). Posso então executar o hoogle foldl
que encontra a função foldl ou hoogle server --local
visitar o http://localhost/
qual é um servidor completo e inclui links para a documentação HTML.
hoogle data all
e hoogle data --local
faç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 --local
precisa de mais visibilidade. É o analogon para, por exemplo godoc -http
.
A documentação HTML pode ser baixada .tar.bz2
no 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-doc
você pode instalar.
Edite seu arquivo ~ / .cabal / config. Procure a linha (provavelmente comentada) que diz documentation: False
. Altere essa linha para documentation: True
e descomente. Agora, quando você construir projetos com cabal install
documentaçã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-install
você pode definir documentation: True
em seu e ~/.cabal/config
, em seguida, reinstalar as dependências para obter haddocks gerados localmente.
Se estiver usando pilha , você pode utilizar o stack haddock
comando 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-doc
pacotes) em
file:///usr/share/doc/ghc-doc/html/libraries/index.html
Além disso, os libghc-foo-doc
pacotes contêm os arquivos necessários para o hoogle, portanto, se você apt-get install hoogle
, você deve ser capaz hoogle
de pesquisar imediatamente em todas as bibliotecas instaladas dessa forma.
documentation: True
ao seu~/.cabal/config
arquivo e reinstalando esses pacotes comcabal install world --reinstall
.