-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Search Hoogle and navigate Hackage from the command line.
--
-- Please see the README on GitHub at
-- https://github.com/lazamar/haskell-docs-cli#readme
@package haskell-docs-cli
@version 1.0.0.0
-- | Store results of named computations.
module Data.Cache
create :: MonadIO m => EvictionPolicy -> m Cache
-- | Try to get result from cache. If not present, run computation.
cached :: MonadIO m => Cache -> String -> m ByteString -> m ByteString
enforce :: MonadIO m => EvictionPolicy -> m ()
newtype Store
Store :: FilePath -> Store
data EvictionPolicy
Evict :: MaxBytes -> MaxAgeDays -> Store -> EvictionPolicy
NoStorage :: EvictionPolicy
data Cache
data MaxBytes
MaxBytes :: Integer -> MaxBytes
NoMaxBytes :: MaxBytes
data MaxAgeDays
MaxAgeDays :: Int -> MaxAgeDays
NoMaxAge :: MaxAgeDays
instance GHC.Classes.Ord Data.Cache.Hash
instance GHC.Classes.Eq Data.Cache.Hash
instance GHC.Show.Show Data.Cache.Hash
instance GHC.Classes.Eq Data.Cache.Entry
instance GHC.Show.Show Data.Cache.Entry
instance GHC.Show.Show Data.Cache.SerialisedEntry
module Docs.CLI.Directory
newtype AppCache
AppCache :: FilePath -> AppCache
-- | Create top directory of app cache if it doesn't exist
mkAppCacheDir :: Maybe FilePath -> IO AppCache
getAppHistoryFile :: IO FilePath
module Docs.CLI.Types
type Url = String
-- | Appears at the end of a url after a pound sign, pointing the element
-- to focus on.
-- https://hackage.haskell.org/package/hoogle-5.0.18.1/docs/Hoogle.html#t:Target
-- ^^^^^^^^
type Anchor = Text
dropAnchor :: Url -> Url
takeAnchor :: MonadFail m => Url -> m Anchor
data DeclUrl
DeclUrl :: ModuleUrl -> Anchor -> DeclUrl
-- | Link to an item in a src page
data SourceLink
SourceLink :: Url -> Anchor -> SourceLink
newtype ModuleUrl
ModuleUrl :: Url -> ModuleUrl
-- | Url to a Haddock package page
newtype PackageUrl
PackageUrl :: Url -> PackageUrl
type FileName = String
type FileContent = Text
newtype RelativeUrl
RelativeUrl :: Text -> RelativeUrl
data FileInfo
FileInfo :: FileName -> Maybe Int -> FileContent -> FileInfo
[fName] :: FileInfo -> FileName
[fLine] :: FileInfo -> Maybe Int
[fContent] :: FileInfo -> FileContent
class HasUrl a
getUrl :: HasUrl a => a -> Url
instance GHC.Show.Show Docs.CLI.Types.SourceLink
instance GHC.Classes.Eq Docs.CLI.Types.SourceLink
instance GHC.Show.Show Docs.CLI.Types.ModuleUrl
instance GHC.Classes.Eq Docs.CLI.Types.ModuleUrl
instance GHC.Show.Show Docs.CLI.Types.DeclUrl
instance GHC.Classes.Eq Docs.CLI.Types.DeclUrl
instance GHC.Show.Show Docs.CLI.Types.PackageUrl
instance GHC.Classes.Eq Docs.CLI.Types.PackageUrl
instance Docs.CLI.Types.HasUrl Docs.CLI.Types.DeclUrl
instance Docs.CLI.Types.HasUrl Docs.CLI.Types.ModuleUrl
instance Docs.CLI.Types.HasUrl Docs.CLI.Types.SourceLink
instance Docs.CLI.Types.HasUrl Docs.CLI.Types.PackageUrl
instance Docs.CLI.Types.HasUrl Docs.CLI.Types.Url
-- | Functions to parse and display Haddock HTML
module Docs.CLI.Haddock
-- | An html element
data Html
-- | The root of an html page
data HtmlPage
-- | An exported declaration
data Declaration
Declaration :: Set Anchor -> Anchor -> Html -> Html -> [Html] -> ModuleUrl -> DeclUrl -> String -> Declaration
[dAnchors] :: Declaration -> Set Anchor
-- | Main declaration anchor
[dAnchor] :: Declaration -> Anchor
[dSignature] :: Declaration -> Html
-- | Signature with argument documentation, if available.
[dSignatureExpanded] :: Declaration -> Html
[dContent] :: Declaration -> [Html]
[dModuleUrl] :: Declaration -> ModuleUrl
[dDeclUrl] :: Declaration -> DeclUrl
-- | string to be used when selecting this declaration with tab completion
[dCompletion] :: Declaration -> String
data Module
Module :: String -> Maybe Html -> [Declaration] -> ModuleUrl -> Module
[mTitle] :: Module -> String
[mDescription] :: Module -> Maybe Html
[mDeclarations] :: Module -> [Declaration]
[mUrl] :: Module -> ModuleUrl
data Package
Package :: String -> Maybe String -> Html -> Maybe Html -> [(String, Html)] -> [String] -> PackageUrl -> Package
[pTitle] :: Package -> String
[pSubTitle] :: Package -> Maybe String
[pDescription] :: Package -> Html
[pReadme] :: Package -> Maybe Html
[pProperties] :: Package -> [(String, Html)]
[pModules] :: Package -> [String]
[pUrl] :: Package -> PackageUrl
parseHtmlDocument :: ByteString -> HtmlPage
parseModuleDocs :: ModuleUrl -> HtmlPage -> Module
parsePackageDocs :: PackageUrl -> HtmlPage -> Package
sourceLinks :: ModuleUrl -> HtmlPage -> [(Anchor, SourceLink)]
-- | Convert an html page into a src file and inform of line number of
-- SourceLink
fileInfo :: SourceLink -> HtmlPage -> FileInfo
-- | Types that can be selected with tab completion
class HasCompletion a
completion :: HasCompletion a => a -> String
innerString :: Html -> String
-- | Render Haddock's Html
prettyHtml :: IsHtml html => html -> Doc
numbered :: [Doc] -> [Doc]
parseHoogleHtml :: String -> Html
link :: Doc -> Doc
instance GHC.Classes.Eq Docs.CLI.Haddock.Html
instance GHC.Show.Show Docs.CLI.Haddock.Html
instance Docs.CLI.Haddock.IsHtml Docs.CLI.Haddock.Html
instance Docs.CLI.Haddock.IsHtml Docs.CLI.Haddock.HtmlPage
instance Docs.CLI.Haddock.HasCompletion a => Docs.CLI.Haddock.HasCompletion (GHC.Base.NonEmpty a)
instance Docs.CLI.Haddock.HasCompletion GHC.Base.String
instance Docs.CLI.Haddock.HasCompletion Docs.CLI.Haddock.Declaration
instance Docs.CLI.Haddock.HasCompletion Docs.CLI.Haddock.Module
instance Docs.CLI.Haddock.HasCompletion Docs.CLI.Haddock.Package
-- | Functions and data types to handle Hoogle results
module Docs.CLI.Hoogle
data Item
Declaration :: Declaration -> Item
Module :: Module -> Item
Package :: Package -> Item
fromHoogleTarget :: Target -> Item
data Declaration
Declaration_ :: DeclUrl -> String -> PackageUrl -> String -> ModuleUrl -> Html -> Html -> Target -> String -> Declaration
[dUrl] :: Declaration -> DeclUrl
[dPackage] :: Declaration -> String
[dPackageUrl] :: Declaration -> PackageUrl
[dModule] :: Declaration -> String
[dModuleUrl] :: Declaration -> ModuleUrl
[dDescription] :: Declaration -> Html
[dDocs] :: Declaration -> Html
[dTarget] :: Declaration -> Target
[dCompletion] :: Declaration -> String
data Module
Module_ :: ModuleUrl -> String -> PackageUrl -> Html -> Html -> Target -> String -> Module
[mUrl] :: Module -> ModuleUrl
[mPackage] :: Module -> String
[mPackageUrl] :: Module -> PackageUrl
[mDescription] :: Module -> Html
[mDocs] :: Module -> Html
[mTarget] :: Module -> Target
[mTitle] :: Module -> String
data Package
Package_ :: PackageUrl -> Html -> Html -> Target -> String -> Package
[pUrl] :: Package -> PackageUrl
[pDescription] :: Package -> Html
[pDocs] :: Package -> Html
[pTarget] :: Package -> Target
[pTitle] :: Package -> String
description :: Item -> Html
docs :: Item -> Html
instance GHC.Classes.Eq Docs.CLI.Hoogle.Declaration
instance GHC.Classes.Eq Docs.CLI.Hoogle.Module
instance GHC.Classes.Eq Docs.CLI.Hoogle.Package
instance GHC.Classes.Eq Docs.CLI.Hoogle.Item
instance Docs.CLI.Haddock.HasCompletion Docs.CLI.Hoogle.Item
instance Data.Aeson.Types.FromJSON.FromJSON Docs.CLI.Hoogle.Item
module Docs.CLI.Evaluate
interactive :: M ()
evaluate :: String -> M ()
evaluateCmd :: Cmd -> M ()
data ShellState
ShellState :: Context -> Manager -> Cache -> Bool -> HoogleUrl -> HackageUrl -> ShellState
[sContext] :: ShellState -> Context
[sManager] :: ShellState -> Manager
[sCache] :: ShellState -> Cache
[sNoColours] :: ShellState -> Bool
[sHoogle] :: ShellState -> HoogleUrl
[sHackage] :: ShellState -> HackageUrl
-- | Context referenced by commands that contain an index
data Context
-- | Nothing selected
ContextEmpty :: Context
-- | within search results
ContextSearch :: String -> [TargetGroup] -> Context
-- | looking at module docs
ContextModule :: Module -> Context
-- | looking at a a package's modules
ContextPackage :: Package -> Context
-- | Commands we accept
data Cmd
-- | by default we do a Hoogle search or view/index the current context
ViewAny :: View -> Selection -> Cmd
ViewDeclarationSource :: Selection -> Cmd
ViewDeclaration :: Selection -> Cmd
ViewModule :: View -> Selection -> Cmd
ViewPackage :: View -> Selection -> Cmd
Help :: Cmd
Quit :: Cmd
data Selection
SelectContext :: Selection
SelectByIndex :: Index -> Selection
SelectByPrefix :: String -> Selection
Search :: String -> Selection
data View
Interface :: View
Documentation :: View
newtype HackageUrl
HackageUrl :: Url -> HackageUrl
newtype HoogleUrl
HoogleUrl :: Url -> HoogleUrl
runCLI :: ShellState -> M a -> IO (Either String a)
defaultHoogleUrl :: HoogleUrl
defaultHackageUrl :: HackageUrl
moreInfoText :: Doc
instance Control.Monad.Fail.MonadFail Docs.CLI.Evaluate.M
instance Control.Monad.Catch.MonadThrow Docs.CLI.Evaluate.M
instance Control.Monad.IO.Class.MonadIO Docs.CLI.Evaluate.M
instance Control.Monad.Error.Class.MonadError GHC.Base.String Docs.CLI.Evaluate.M
instance GHC.Base.Monad Docs.CLI.Evaluate.M
instance GHC.Base.Applicative Docs.CLI.Evaluate.M
instance GHC.Base.Functor Docs.CLI.Evaluate.M
instance Docs.CLI.Evaluate.MonadCLI Docs.CLI.Evaluate.M
instance Control.Monad.State.Class.MonadState Docs.CLI.Evaluate.ShellState Docs.CLI.Evaluate.M
module Main
data CacheOption
Unlimited :: CacheOption
Off :: CacheOption
data Options
Options :: String -> Maybe FilePath -> Maybe CacheOption -> Maybe HoogleUrl -> Maybe HackageUrl -> Options
[optQuery] :: Options -> String
[optAppCacheDir] :: Options -> Maybe FilePath
[optCache] :: Options -> Maybe CacheOption
[optHoogle] :: Options -> Maybe HoogleUrl
[optHackage] :: Options -> Maybe HackageUrl
cachePolicy :: Maybe CacheOption -> AppCache -> IO EvictionPolicy
cliOptions :: ParserInfo Options
main :: IO ()
main' :: IO ()