Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Prepare the call graph for rendering
Synopsis
- data RenderConfig = RenderConfig {
- showCalls :: Bool
- showTypes :: Bool
- showKey :: Bool
- showGHCKeys :: Bool
- showModulePath :: Bool
- locMode :: LocMode
- clusterModules :: ClusterModules
- pRenderConfig :: Parser RenderConfig
- renderGraph :: RenderConfig -> CallGraph -> Either RenderError RenderGraph
- data RenderError
- ppRenderError :: Prints RenderError
- type ID = String
- data RenderGraph = RenderGraph {
- renderRoots :: Either (NonEmpty RenderModule) (NonEmpty (Tree RenderNode))
- callEdges :: Set (ID, ID)
- typeEdges :: Set (ID, ID)
- data RenderModule = RenderModule {
- moduleLabel :: String
- moduleId :: ID
- moduleDecls :: NonEmpty (Tree RenderNode)
- data RenderNode = RenderNode {
- nodeId :: ID
- nodeType :: DeclType
- nodeLabelLines :: [String]
- nodeExported :: Bool
- data ClusterModules
- if' :: Bool -> a -> Maybe a
Documentation
data RenderConfig Source #
RenderConfig | |
|
data RenderError Source #
data RenderGraph Source #
A representation of the call graph that's convenient for rendering.
Structurally, it's the same as CallGraph
, in that it's a tree of nodes and a flat list of edges.
The differences is that as much of the non-backend-specific preprocessing has already been taken care of.
- Nodes and modules have a unique string ID
- Nodes and modules contain their desired label
- Render roots are guaranteed to be non-empty
- Set of calls and types are empty on --hide-{calls, types}
- Modules are flattened depending on --no-cluster-modules
RenderGraph | |
|
data RenderModule Source #
RenderModule | |
|
data RenderNode Source #
RenderNode | |
|