packages feed

haskell-dap-0.0.8.0: app/Haskell/DAP/GHCi/Type.hs

module Haskell.DAP.GHCi.Type where

import qualified GHC
import RtClosureInspect

import qualified Data.Map as M
import Control.Concurrent
import HscTypes

import qualified GHCi.DAP.IFData as D


-- |
--
type EvalString = String


-- |
--
type ModuleName = String


-- |
--
type MVarDAPContext = MVar DAPContext

-- |
--
data SourceBreakpointInfo = SourceBreakpointInfo {
    modNameSourceBreakpointInfo :: ModuleName
  , srcBPSourceBreakpointInfo   :: D.SourceBreakpoint
  , hitCntSourceBreakpointInfo  :: Int
  } deriving (Show, Read, Eq)


-- |
--
data DAPContext = DAPContext {
    variableReferenceMapDAPContext :: M.Map Int (Term, EvalString)
  , bindingDAPContext :: [GHC.TyThing]
  , bindingGlobalDAPContext :: [GHC.TyThing]
  , frameIdDAPContext :: Int
  , srcBPsDAPContext  :: M.Map Int SourceBreakpointInfo
  , funcBPsDAPContext :: M.Map Int (D.FunctionBreakpoint, Int)
  , traceCmdExecResultDAPContext   :: [Maybe GHC.ExecResult]
  , doContinueExecResultDAPContext :: [GHC.ExecResult]
  , runStmtDeclExceptionDAPContext :: [SourceError]
  }

  
-- |
--
defaultDAPContext :: DAPContext
defaultDAPContext = DAPContext {
    variableReferenceMapDAPContext = M.fromList []
  , bindingDAPContext = []
  , bindingGlobalDAPContext = []
  , frameIdDAPContext = 0
  , srcBPsDAPContext  = M.fromList []
  , funcBPsDAPContext = M.fromList []
  , traceCmdExecResultDAPContext = []
  , doContinueExecResultDAPContext = []
  , runStmtDeclExceptionDAPContext = []
  }