module Language.Haskell.Tools.Refactor.Session where
import Data.Map as Map
import Control.Monad.State
import Control.Reference
import Language.Haskell.Tools.AST (IdDom)
import Language.Haskell.Tools.Refactor (IsBoot(..))
import Language.Haskell.Tools.Refactor.RefactorBase (UnnamedModule)
type RefactorSession = StateT RefactorSessionState
data RefactorSessionState
= RefactorSessionState { _refSessMods :: Map.Map (String, String, IsBoot) (UnnamedModule IdDom)
, _actualMod :: Maybe (String, String, IsBoot)
, _exiting :: Bool
, _dryMode :: Bool
}
initSession :: RefactorSessionState
initSession = RefactorSessionState Map.empty Nothing False False
makeReferences ''RefactorSessionState