ghci-dap-0.0.16.0: app/GHCi/DAP/Type.hs
{-# LANGUAGE CPP #-}
module GHCi.DAP.Type where
import qualified GHC as G
import qualified Data.Map as M
import Control.Concurrent
import qualified GHCi.GhcApiCompat as GAC
import qualified Haskell.DAP as D
-- |
--
type EvalString = String
-- |
--
type ModuleName = String
-- |
--
type MVarDAPContext = MVar DAPContext
-- |
--
data LogLevel = ErrorLogLevel | WarnLogLevel | InfoLogLevel | DebugLogLevel
deriving (Eq, Ord)
instance Show LogLevel where
show ErrorLogLevel = "[DAP][ERROR]"
show WarnLogLevel = "[DAP][WARN]"
show InfoLogLevel = "[DAP][INFO]"
show DebugLogLevel = "[DAP][DEBUG]"
-- |
--
data SourceBreakpointInfo = SourceBreakpointInfo {
modNameSourceBreakpointInfo :: ModuleName
, srcBPSourceBreakpointInfo :: D.SourceBreakpoint
, hitCntSourceBreakpointInfo :: Int
} deriving (Show, Read, Eq)
-- |
--
data DAPContext = DAPContext {
variableReferenceMapDAPContext :: M.Map Int (GAC.Term, EvalString)
, bindingDAPContext :: [G.TyThing]
, bindingGlobalDAPContext :: [G.TyThing]
, frameIdDAPContext :: Int
, srcBPsDAPContext :: M.Map Int SourceBreakpointInfo
, funcBPsDAPContext :: M.Map Int (D.FunctionBreakpoint, Int)
, runStmtDeclExceptionDAPContext :: Maybe GAC.SourceError
, logLevelDAPContext :: LogLevel
, stackTraceResultDAPContext :: Maybe (G.Resume, [G.History])
, bindingNamesDAPContext :: [G.Name]
, isInspectVariableDAPContext :: Bool
, continueExecResultDAPContext :: Maybe G.ExecResult
}
-- |
--
defaultDAPContext :: DAPContext
defaultDAPContext = DAPContext {
variableReferenceMapDAPContext = M.fromList []
, bindingDAPContext = []
, bindingGlobalDAPContext = []
, frameIdDAPContext = 0
, srcBPsDAPContext = M.fromList []
, funcBPsDAPContext = M.fromList []
, runStmtDeclExceptionDAPContext = Nothing
, logLevelDAPContext = InfoLogLevel
, stackTraceResultDAPContext = Nothing
, bindingNamesDAPContext = []
, isInspectVariableDAPContext = True
, continueExecResultDAPContext = Nothing
}