ghcide-0.7.0.0: The core of an IDE

Development.IDE.Session

Description

The logic for setting up a ghcide session by tapping into hie-bios.

Synopsis

Documentation

Constructors

 SessionLoadingOptions FieldsfindCradle :: FilePath -> IO (Maybe FilePath) loadCradle :: FilePath -> IO (Cradle Void) getCacheDirs :: String -> [String] -> IO CacheDirsGiven the project name and a set of command line flags, return the path for storing generated GHC artifacts, or Nothing to respect the cradle setting

Given a root directory, return a Shake Action which setups an IdeGhcSession given a file. Some of the many things this does:

• Find the cradle for the file
• Get the session options,
• Get the GHC lib directory
• Make sure the GHC compiletime and runtime versions match
• Restart the Shake session

This is the key function which implements multi-component support. All components mapping to the same hie.yaml file are mapped to the same HscEnv which is updated as new components are discovered.