Development.IDE.Graph.Internal.Action

hls-graph-2.9.0.0: Haskell Language Server internal graph API

Safe Haskell | None
Language | GHC2021

Development.IDE.Graph.Internal.Action

Synopsis

- type ShakeValue a = (Show a, Typeable a, Eq a, Hashable a, NFData a)
- actionFork :: Action a -> (Async a -> Action b) -> Action b
- actionBracket :: IO a -> (a -> IO b) -> (a -> Action c) -> Action c
- actionCatch :: Exception e => Action a -> (e -> Action a) -> Action a
- actionFinally :: Action a -> IO b -> Action a
- alwaysRerun :: Action ()
- apply1 :: (RuleResult key ~ value, ShakeValue key, Typeable value) => key -> Action value
- apply :: (Traversable f, RuleResult key ~ value, ShakeValue key, Typeable value) => f key -> Action (f value)
- applyWithoutDependency :: (Traversable f, RuleResult key ~ value, ShakeValue key, Typeable value) => f key -> Action (f value)
- parallel :: [Action a] -> Action [a]
- runActions :: Database -> [Action a] -> IO [a]
- getDirtySet :: Action [(Key, Int)]
- getKeysAndVisitedAge :: Action [(Key, Int)]

# Documentation

type ShakeValue a = (Show a, Typeable a, Eq a, Hashable a, NFData a) #

actionFork :: Action a -> (Async a -> Action b) -> Action b #

actionBracket :: IO a -> (a -> IO b) -> (a -> Action c) -> Action c #

actionCatch :: Exception e => Action a -> (e -> Action a) -> Action a #

actionFinally :: Action a -> IO b -> Action a #

alwaysRerun :: Action () #

Always rerun this rule when dirty, regardless of the dependencies.

apply1 :: (RuleResult key ~ value, ShakeValue key, Typeable value) => key -> Action value #

apply :: (Traversable f, RuleResult key ~ value, ShakeValue key, Typeable value) => f key -> Action (f value) #

applyWithoutDependency :: (Traversable f, RuleResult key ~ value, ShakeValue key, Typeable value) => f key -> Action (f value) #

Evaluate a list of keys without recording any dependencies.

parallel :: [Action a] -> Action [a] #

runActions :: Database -> [Action a] -> IO [a] #

getDirtySet :: Action [(Key, Int)] #

Returns the set of dirty keys annotated with their age (in # of builds)

getKeysAndVisitedAge :: Action [(Key, Int)] #