hsdev-0.1.7.1: Haskell development library and tool with support of autocompletion, symbol info, go to declaration, find references etc.

Safe HaskellNone
LanguageHaskell98

HsDev.Symbols.Resolve

Synopsis

Documentation

newtype ResolveM a Source

Resolve monad uses existing Database and ResolvedTree as state.

Constructors

ResolveM 

Fields

runResolveM :: ReaderT (Database, ModuleMap) (State ResolvedTree) a
 

type ResolvedTree = Map ModuleId ResolvedModule Source

Tree of resolved modules

data ResolvedModule Source

Module with declarations bringed to scope and with exported declarations

scopeModule :: ResolvedModule -> Module Source

Make Module with scope declarations

exportsModule :: ResolvedModule -> Module Source

Make Module with exported only declarations

resolve :: (Traversable t, Foldable t) => Database -> t Module -> t ResolvedModule Source

Resolve modules, function is not IO, so all file names must be canonicalized

resolveOne :: Database -> Module -> ResolvedModule Source

Resolve one module

resolveImports :: Module -> [Import] -> ResolveM [Declaration] Source

Bring declarations into scope by imports

resolveImport :: Set String -> Module -> Import -> ResolveM [Declaration] Source

Bring declarations into scope, first parameter is set of visible packages

mergeImported :: [Declaration] -> [Declaration] Source

Merge imported declarations