Які існують можливості отримання офлайн-документів для основних бібліотек Haskell (а може і більше)?
Іноді я беру свій ноутбук у кав’ярню, де немає wifi, і було б непогано мати щось на зразок Hoogle, але для використання в автономному режимі.
Які існують можливості отримання офлайн-документів для основних бібліотек Haskell (а може і більше)?
Іноді я беру свій ноутбук у кав’ярню, де немає wifi, і було б непогано мати щось на зразок Hoogle, але для використання в автономному режимі.
Відповіді:
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 ).
EDIT: Сеанс використання після локальної установки 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
hoogle data --local
мені знадобилося 3 хвилини (більшість з яких завантажувалось), то я можу запустити, hoogle foldl
який знаходить функцію foldl, або hoogle server --local
потім відвідати http://localhost/
який є повноцінним сервером і містить посилання на документацію HTML.
hoogle data all
і hoogle data --local
робити / завантажувати багато матеріалів, але це все ще не дозволяє мені знаходити функції в пакетах (наприклад parseFileWithMode
). Це має працювати?
hoogle +haskell-src-exts parseFile
hoogle server --local
потребує більшої видимості. Це аналог напр godoc -http
.
Документацію HTML можна завантажити .tar.bz2
з веб-сайту Haskell:
https://downloads.haskell.org/~ghc/latest/docs/
Щойно я завантажив https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2, і саме на це я сподівався.
Є й інші параметри, такі як Dash і Zeal , і дивіться також цю нитку reddit .
hoogle server --local
Якщо ви встановите платформу Haskell, вона включає документи GHC та документи GHC-бібліотеки (які охоплюють основні бібліотеки). У Windows вони знаходяться в меню "Пуск" у розділі "Усі програми | Платформа Haskell".
haskell-platform-doc
ви можете встановити.
Відредагуйте файл ~ / .cabal / config. Шукайте рядок (напевно, прокоментований), який говорить documentation: False
. Змініть цей рядок documentation: True
і коментуйте його. Тепер, коли ви будуєте проекти з cabal install
документацією, також буде побудовано та збережено локально.
Погляньте трохи більше на цей же конфігураційний файл, і ви знайдете такі параметри, як doc-index-файл, docdir, datadir, префікс тощо, що дозволяють налаштувати, де зберігається документація.
Це може бути не "канонічним", але я вважаю, що найбільш корисним варіантом є таке програмне забезпечення для доксетів, як тире (OS X) / ревність + створені доксети. Таким чином, ви отримаєте пошук безкоштовно, а також матимете можливість створювати свої власні доксети. Немає жодної проблеми отримати документацію на вигук базового пакету для будь-якого з проектів. Ви можете створювати власні доксети за допомогою haddocset або dash-haskell . Крім того, він чудово інтегрується з редакторами emacs / vim / інші, дозволяє вам мати проектні доксети (у вас будуть відповідні версії на проектній основі таким чином, забудьте про всі ці клопоти з локальним google!) І не обмежують будь-який потік збірки, який ви можете мати.
Якщо ви будуєте свій проект, cabal-install
ви можете встановити documentation: True
свій ~/.cabal/config
, а потім перевстановити залежності, щоб отримати згенеровані вигуки локально.
Якщо ви використовуєте стек , ви можете використовувати stack haddock
команду для побудови залежностей і проектування з генерованими вигуками.
Я використовую devdocs.io , він має документи для багатьох мов і бібліотек (включаючи Haskell) і має офлайн-режим.
Якщо ви випадково використовуєте похідний дистрибутив Debian та їхні пакети, ви знайдете комбіновану документацію всіх встановлених пакетів Haskell (якщо ви також встановите libghc-foo-doc
пакети) на
file:///usr/share/doc/ghc-doc/html/libraries/index.html
Крім того, libghc-foo-doc
пакети містять необхідні файли для hoogle, тож якщо ви apt-get install hoogle
, то вам слід негайно мати можливість користуватися hoogle
пошуком усіх встановлених таким чином бібліотек.
documentation: True
до свого~/.cabal/config
файлу та повторно встановивши ці пакункиcabal install world --reinstall
.