Jakie są możliwości uzyskania dokumentów offline dla podstawowych bibliotek Haskell (a może i więcej)?
Czasami zabieram laptopa do kawiarni, w której nie ma Wi-Fi, i fajnie byłoby mieć coś takiego jak Hoogle, ale do użytku offline.
Jakie są możliwości uzyskania dokumentów offline dla podstawowych bibliotek Haskell (a może i więcej)?
Czasami zabieram laptopa do kawiarni, w której nie ma Wi-Fi, i fajnie byłoby mieć coś takiego jak Hoogle, ale do użytku offline.
Odpowiedzi:
Hoogle jest dostępny w trybie offline, można go zainstalować z Cabal: http://hackage.haskell.org/package/hoogle
Instrukcje użytkowania znajdują się pod adresem http://www.haskell.org/haskellwiki/Hoogle#Command_Line_Search_Flags .
Stosowanie:
$ 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
Utwórz domyślną bazę danych za pomocą hoogle data
(więcej informacji na http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html ).
EDYCJA: sesja użytkowania po lokalnej instalacji Hoogle:
$ hoogle
No query entered
Try --help for command line options
$ hoogle data
(downloads databases...takes a few minutes)
Wystąpił tutaj błąd ... najwyraźniej jest on związany z wersją Cabal, więc zaktualizowałem to (http://hackage.haskell.org/trac/hackage/ticket/811). To nie pomogło, więc uruchomiłem hoogle data all
, co anulowałem, ponieważ trwało to tak długo (wydaje się, że przechodzi przez każdą paczkę na Hackage). Nadal nie pozwalał na takie zapytanie, hoogle map
ale pozwalał hoogle map +base
(tj. Ograniczał wyszukiwanie do base
pakietu). Mam nadzieję, że zadziała!
EDIT2: Wydaje się, że rozwiązuje problem (dla mnie):
$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
zajęło mi 3 minuty (z czego większość była pobierana). Mogę następnie uruchomić, hoogle foldl
która znajduje funkcję foldl, lub hoogle server --local
odwiedzić witrynę, http://localhost/
która jest zarówno pełnym serwerem, jak i zawiera linki do dokumentacji HTML.
hoogle data all
i hoogle data --local
rób / pobieraj wiele rzeczy, ale nadal nie pozwala mi znaleźć funkcji w pakietach (np parseFileWithMode
.). Czy to ma zadziałać?
hoogle +haskell-src-exts parseFile
hoogle server --local
potrzebuje większej widoczności. To analogon do np godoc -http
.
Dokumentację HTML można pobrać .tar.bz2
ze strony internetowej Haskell:
https://downloads.haskell.org/~ghc/latest/docs/
Właśnie pobrałem https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2 i właśnie tego oczekiwałem.
Istnieją również inne opcje, takie jak Dash i Zeal , a także zobacz ten wątek reddit .
hoogle server --local
Jeśli zainstalujesz platformę Haskell, będzie ona zawierała dokumentację GHC i dokumentację biblioteki GHC (która obejmuje podstawowe biblioteki). W systemie Windows znajdują się w menu Start pod „Wszystkie programy | Platforma Haskell”.
haskell-platform-doc
które można zainstalować.
Edytuj swój plik ~ / .cabal / config. Poszukaj linii (prawdopodobnie zakomentowanej), która mówi documentation: False
. Zmień tę linię na documentation: True
i usuń komentarz. Teraz, gdy budujesz projekty z cabal install
dokumentacją, będą również budowane i zapisywane lokalnie.
Rozejrzyj się trochę więcej w tym samym pliku konfiguracyjnym, a znajdziesz opcje, takie jak plik indeksu doc, docdir, datadir, prefiks itp., Które pozwalają skonfigurować miejsce przechowywania dokumentacji.
Może nie być „kanoniczne” jako takie, ale uważam, że najbardziej użyteczną opcją jest oprogramowanie docset, takie jak dash (OS X) / gorliwość + generowane zestawy dokumentów. W ten sposób uzyskasz bezpłatne wyszukiwanie, a także będziesz mieć możliwość tworzenia niestandardowych zestawów dokumentów. Nie ma problemu, aby pobrać dokumentację plamiaka z pakietu „bazowego” z którymkolwiek z projektów po wyjęciu z pudełka. Możesz tworzyć niestandardowe zestawy dokumentów za pomocą haddocset lub dash-haskell . Również ładnie integruje się z emacs / vim / innymi edytorami, pozwala na tworzenie dokumentów opartych na projektach (w ten sposób będziesz mieć odpowiednie wersje dla poszczególnych projektów, zapomnij o wszystkich kłopotach z lokalnym hoogle!) I nie ogranicza Cię do dowolnego przepływu kompilacji, jaki możesz mieć.
Jeśli budujesz swój projekt cabal-install
, możesz ustawić documentation: True
w swoim ~/.cabal/config
, a następnie ponownie zainstalować zależności, aby lokalnie wygenerować plamiak.
Jeśli używasz stosu , możesz użyć stack haddock
polecenia, aby zbudować swoje zależności i projekt z wygenerowanymi plamiakami.
Używam devdocs.io , ma dokumenty dla wielu języków i bibliotek (w tym Haskell) i ma tryb offline.
W systemie Windows zainstaluj pakiety wget i curl cygwin. To umożliwi hoogle data
.
Jeśli używasz dystrybucji wywodzącej się z Debiana i ich pakietów, połączoną dokumentację wszystkich zainstalowanych pakietów Haskell (jeśli instalujesz również libghc-foo-doc
pakiety) znajdziesz na
file:///usr/share/doc/ghc-doc/html/libraries/index.html
Ponadto libghc-foo-doc
pakiety zawierają niezbędne pliki dla hoogle, więc jeśli ty apt-get install hoogle
, powinieneś natychmiast móc użyć hoogle
do przeszukiwania wszystkich zainstalowanych w ten sposób bibliotek.
documentation: True
do~/.cabal/config
pliku, a następnie ponownie instalując te pakiety zcabal install world --reinstall
.