haskell-tools-daemon-1.0.0.3: Background process for Haskell-tools that editors can connect to.

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Tools.Daemon.Utils

Description

Utility operations for the reprsentation of module collections.

Synopsis

Documentation

moduleCollectionPkgId :: ModuleCollectionId -> Maybe String Source #

Get the name of a module collection from its Id.

lookupModuleColl :: String -> [ModuleCollection SourceFileKey] -> Maybe (ModuleCollection SourceFileKey) Source #

Find the module collection where the given module is contained. Based on module name.

lookupSourceFileColl :: FilePath -> [ModuleCollection SourceFileKey] -> Maybe (ModuleCollection SourceFileKey) Source #

Find the module collection where the given module is contained. Based on source file name.

lookupModuleCollection :: ModSummary -> [ModuleCollection SourceFileKey] -> Maybe (ModuleCollection SourceFileKey) Source #

Find the module collection where the given module is contained. Based on source file name and module name.

lookupModuleInSCs :: String -> [ModuleCollection SourceFileKey] -> Maybe (SourceFileKey, ModuleRecord) Source #

Find the module with the given name. Based on module name.

lookupModInSCs :: SourceFileKey -> [ModuleCollection SourceFileKey] -> Maybe (SourceFileKey, ModuleRecord) Source #

Find the module with the given name. Based on source file name.

lookupSFKInSCs :: SourceFileKey -> [ModuleCollection SourceFileKey] -> Maybe ModuleRecord Source #

Get the module with the given name and source file key.

removeModule :: String -> [ModuleCollection SourceFileKey] -> [ModuleCollection SourceFileKey] Source #

Remove a module with the given name. Based on module name.

removeModuleMS :: ModSummary -> Map SourceFileKey ModuleRecord -> Map SourceFileKey ModuleRecord Source #

Remove a module with the given name from a module collection. Based on module name and file path.

needsGeneratedCode :: SourceFileKey -> [ModuleCollection SourceFileKey] -> CodeGenPolicy Source #

Check if the given module needs code generation. Finds the module if no source file name is present and module names check or if both module names and source file names check.

codeGeneratedFor :: SourceFileKey -> CodeGenPolicy -> [ModuleCollection SourceFileKey] -> [ModuleCollection SourceFileKey] Source #

Marks the given module for code generation. Finds the module if no source file name is present and module names check or if both module names and source file names check. Idempotent operation.

isAlreadyLoaded :: SourceFileKey -> CodeGenPolicy -> [ModuleCollection SourceFileKey] -> Bool Source #

Check if the given module has been already loaded. Based on both module name and source file name.

insertIfMissing :: SourceFileKey -> [ModuleCollection SourceFileKey] -> [ModuleCollection SourceFileKey] Source #

Insert a module with a source file key to our database if it wasn't there already