Development.IDE.Graph.Database

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

Safe Haskell | None
Language | GHC2021

Development.IDE.Graph.Database

Synopsis

- data ShakeDatabase
- type ShakeValue a = (Show a, Typeable a, Eq a, Hashable a, NFData a)
- shakeNewDatabase :: ShakeOptions -> Rules () -> IO ShakeDatabase
- shakeRunDatabase :: ShakeDatabase -> [Action a] -> IO [a]
- shakeRunDatabaseForKeys :: Maybe [Key] -> ShakeDatabase -> [Action a] -> IO [a]
- shakeProfileDatabase :: ShakeDatabase -> FilePath -> IO ()
- shakeGetBuildStep :: ShakeDatabase -> IO Int
- shakeGetDatabaseKeys :: ShakeDatabase -> IO [(Key, Int)]
- shakeGetDirtySet :: ShakeDatabase -> IO [(Key, Int)]
- shakeGetCleanKeys :: ShakeDatabase -> IO [(Key, Result)]
- shakeGetBuildEdges :: ShakeDatabase -> IO Int

# Documentation

data ShakeDatabase #

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

shakeNewDatabase :: ShakeOptions -> Rules () -> IO ShakeDatabase #

shakeRunDatabase :: ShakeDatabase -> [Action a] -> IO [a] #

shakeRunDatabaseForKeys #

Arguments

:: Maybe [Key] | Set of keys changed since last run. `Nothing` means everything has changed
-> ShakeDatabase |
-> [Action a] |
-> IO [a] |

Assumes that the database is not running a build

shakeProfileDatabase :: ShakeDatabase -> FilePath -> IO () #

Given a `ShakeDatabase`, write an HTML profile to the given file about the latest run.

shakeGetBuildStep :: ShakeDatabase -> IO Int #

Returns the build number

shakeGetDatabaseKeys :: ShakeDatabase -> IO [(Key, Int)] #

Returns an approximation of the database keys, annotated with how long ago (in # builds) they were visited

shakeGetDirtySet :: ShakeDatabase -> IO [(Key, Int)] #

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

shakeGetCleanKeys :: ShakeDatabase -> IO [(Key, Result)] #

Returns the clean keys in the database

shakeGetBuildEdges :: ShakeDatabase -> IO Int #

Returns the total count of edges in the build graph