-- ---------------------------------------------------------------------------- -- | -- Module : Main -- Author : Krasimir Angelov & Simon Marlow -- Copyright : (c) Krasimir Angelov, Microsoft Corporation -- -- Haskell project state -- -- ---------------------------------------------------------------------------- module ProjectState ( ProjectState(..), ) where import qualified GHC import VsProject import SiteServices import ProjectContent ( ProjectContent ) import VsTypes ( VSITEMID ) import Wtypes ( HIMAGELIST ) import Com ( IUnknown, GUID ) import Data.IORef ( IORef ) import Control.Concurrent ( MVar ) -- ---------------------------------------------------------------------------- data ProjectState = ProjectState { prjSelf :: IVsProject () , prjImageLists :: (HIMAGELIST,HIMAGELIST) , prjServices :: SiteServices , prjContent :: ProjectContent , prjName :: String , prjLocation :: FilePath , prjParent :: {-# UNPACK #-} !(IORef (IUnknown ())) , prjParentID :: {-# UNPACK #-} !(IORef VSITEMID) , prjGUID :: {-# UNPACK #-} !(IORef (Maybe GUID)) , prjCompiler :: IVsCfg () , prjGHC :: {-# UNPACK #-} !(MVar GHC.Session) , prjRemoveMe :: IVsProject () -> IO () }