web-dev-qa-db-fra.com

Documentation hors ligne Haskell?

Quelles sont les possibilités, le cas échéant, d'obtenir des documents hors ligne pour les bibliothèques de base Haskell (et peut-être plus)?

Parfois, j'emmène mon ordinateur portable au café où il n'y a pas de wifi, et ce serait bien d'avoir quelque chose comme Hoogle mais pour une utilisation hors ligne.

93
Andriy Drozdyuk

Hoogle est disponible hors ligne, installable depuis Cabal: http://hackage.haskell.org/package/hoogle

Les instructions d'utilisation sont à http://www.haskell.org/haskellwiki/Hoogle#Command_Line_Search_Flags .

Usage:

$ 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

Créez une base de données par défaut avec hoogle data (plus d'informations sur http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html ).

EDIT: Une session d'utilisation après avoir installé Hoogle localement:

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

J'ai rencontré une erreur ici ... apparemment, elle est liée à la version de Cabal, j'ai donc mis à jour cela (http://hackage.haskell.org/trac/hackage/ticket/811). Cela n'a pas aidé, alors j'ai couru hoogle data all, que j'ai annulé car cela prenait tellement de temps (il semble passer par chaque package sur Hackage). Il n'autoriserait toujours pas une requête comme hoogle map mais a permis hoogle map +base (c'est-à-dire restreindre la recherche au package base) Espérons que cela fonctionne pour vous!

EDIT2: Cela semble résoudre le problème (pour moi):

$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
51
li.davidm

La documentation HTML peut être téléchargée au format .tar.bz2 sur le site Web de Haskell:

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

Je viens de télécharger https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2 et c'est exactement ce que j'espérais.

Il existe également d'autres options, telles que Dash et Zeal , et voir également ce fil reddit .

21

Si vous installez la plate-forme Haskell, elle inclut les documents GHC et les documents de bibliothèque GHC (qui couvrent les bibliothèques principales). Sous Windows, ils se trouvent dans le menu Démarrer sous "Tous les programmes | Haskell Platform".

14
arx

Modifiez votre fichier ~/.cabal/config. Recherchez la ligne (probablement commentée) qui indique documentation: False. Remplacez cette ligne par documentation: True et décommentez-le. Maintenant, lorsque vous créez des projets avec cabal install la documentation sera également construite et enregistrée localement.

Regardez un peu plus dans ce même fichier de configuration et vous trouverez des options telles que doc-index-file, docdir, datadir, prefix, etc. qui vous permettent de configurer où la documentation est stockée.

10
mightybyte

Ce n'est peut-être pas "canonique" en soi, mais je pense que l'option la plus utile est un logiciel docset comme dash (OS X)/ zeal + docsets générés. De cette façon, vous obtiendrez la recherche gratuitement et aurez également une option pour créer vos ensembles de documents personnalisés. Ce n'est pas un problème pour obtenir la documentation haddock du package "de base" avec l'un des projets prêts à l'emploi. Vous pouvez créer des ensembles de documents personnalisés avec haddocset ou dash-haskell . De plus, il s'intègre bien avec emacs/vim/autres éditeurs, vous permet d'avoir des docsets basés sur des projets (vous aurez les versions pertinentes sur une base par projet de cette façon, oubliez tous ces tracas avec hoogle local!) Et ne le faites pas vous restreindre à n'importe quel flux de génération que vous pouvez avoir.

Si vous construisez votre projet avec cabal-install vous pouvez définir documentation: True dans votre ~/.cabal/config, puis réinstallez les dépendances pour obtenir les haddocks générés localement.

Si vous utilisez stack , vous pouvez utiliser stack haddock commande pour construire vos dépendances et projeter avec des haddocks générés.

5
dredozubov

J'utilise devdocs.io , il a des documents pour de nombreuses langues et bibliothèques (y compris Haskell) et dispose d'un mode hors ligne.

3
stusherwin

Pour Windows, installez les packages wget et curl de cygwin. Cela permettra à hoogle data.

1
Pete Klein

Velocity est un bel outil universel gratuit pour faire exactement cela. Il prend en charge un large éventail de langues, de technologies et de bibliothèques, ainsi qu'une mise à jour en un clic.

Vous pourrez probablement trouver plus de ce que vous utilisez déjà dans sa liste de documentation.

1
hardcore

Si vous utilisez une distribution dérivée de Debian et leurs packages, vous trouverez la documentation combinée de tous les packages Haskell installés (si vous installez également le libghc-foo-doc packages) sur

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

De plus, le libghc-foo-doc les packages contiennent les fichiers nécessaires pour hoogle, donc si vous apt-get install hoogle, vous devriez immédiatement pouvoir utiliser hoogle pour rechercher dans toutes les bibliothèques installées de cette façon.

0
Joachim Breitner