haskell-docs-4.1.0: A program to find and display the docs of a name from a given module.

Safe HaskellNone

Haskell.Docs.Haddock

Contents

Description

Haddock compatibilty layer and query functions.

Synopsis

Searching for ident docs

searchIdent :: Maybe PackageConfig -> Identifier -> Ghc (Either DocsException [IdentDoc])Source

Search a name in the given module.

searchPackageModuleIdent :: Maybe PackageConfig -> PackageName -> ModuleName -> Identifier -> Ghc (Either DocsException [IdentDoc])Source

Search a name in the given module from the given package.

searchInPackages :: [PackageConfig] -> Maybe ModuleName -> Identifier -> Ghc (Either a [IdentDoc])Source

Search for the identifier in a module in any of the given packages.

searchWithPackage :: PackageConfig -> Maybe ModuleName -> Identifier -> Ghc (Either DocsException [IdentDoc])Source

Search for the given identifier in the given package.

searchWithInterface :: PackageConfig -> Identifier -> InstalledInterface -> Ghc (Either DocsException [IdentDoc])Source

Search for the given identifier in the interface.

Get documentation of parts of things

interfaceNameMap :: InstalledInterface -> Map String (Doc String)Source

Get a mapping from names to doc string of that name from a Haddock interface.

interfaceArgMap :: InstalledInterface -> Map String (Map Int (Doc Name))Source

Get a mapping from names to doc string of that name from a Haddock interface.

lookupArgsDocs :: InstalledInterface -> Identifier -> Ghc (Maybe [(Int, Doc String)])Source

Find arguments documentation for the identifier.

Querying for packages and interfaces

getPackagesByModule :: ModuleName -> Ghc [PackageConfig]Source

Search for a module's package, returning suggestions if not found. Filters out the given value.

getHaddockInterfacesByPackage :: PackageConfig -> Ghc [Either DocsException InterfaceFile]Source

Get the Haddock interfaces of the given package.

Internal functions

descendSearch :: PackageConfig -> Identifier -> Name -> Ghc (Either DocsException [IdentDoc])Source

The module symbol doesn't actually exist in the module we intended, so we descend into the module that it does exist in and restart our search process.