{-# LANGUAGE GADTs #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Haskell.Debug.Adapter.State.GHCiRun where
import Control.Monad.IO.Class
import qualified System.Log.Logger as L
import qualified Haskell.DAP as DAP
import Haskell.Debug.Adapter.Constant
import Haskell.Debug.Adapter.Type
import Haskell.Debug.Adapter.State.GHCiRun.ConfigurationDone()
import qualified Haskell.Debug.Adapter.State.Utility as SU
import qualified Haskell.Debug.Adapter.Utility as U
instance AppStateIF GHCiRunStateData where
entryAction :: AppState GHCiRunStateData -> AppContext ()
entryAction AppState GHCiRunStateData
GHCiRunState = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP ErrMsg
"GHCiRunState entryAction called."
() -> AppContext ()
forall a. a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
exitAction :: AppState GHCiRunStateData -> AppContext ()
exitAction AppState GHCiRunStateData
GHCiRunState = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP ErrMsg
"GHCiRunState exitAction called."
() -> AppContext ()
forall a. a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
doActivity :: AppState GHCiRunStateData
-> WrapRequest -> AppContext (Maybe StateTransit)
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@InitializeRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@LaunchRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@DisconnectRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@PauseRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@TerminateRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@SetBreakpointsRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@SetFunctionBreakpointsRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@SetExceptionBreakpointsRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@ConfigurationDoneRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@ThreadsRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@StackTraceRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@ScopesRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@VariablesRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@SourceRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@ContinueRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@NextRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@StepInRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@EvaluateRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@CompletionsRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@InternalTransitRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@InternalTerminateRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
doActivity AppState GHCiRunStateData
s (WrapRequest r :: Request a
r@InternalLoadRequest{}) = AppState GHCiRunStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
s Request a
r
instance StateActivityIF GHCiRunStateData DAP.InitializeRequest
instance StateActivityIF GHCiRunStateData DAP.LaunchRequest
instance StateActivityIF GHCiRunStateData DAP.DisconnectRequest
instance StateActivityIF GHCiRunStateData DAP.PauseRequest
instance StateActivityIF GHCiRunStateData DAP.TerminateRequest where
action :: AppState GHCiRunStateData
-> Request TerminateRequest -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (TerminateRequest TerminateRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState TerminateRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ TerminateRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show TerminateRequest
req
TerminateRequest -> AppContext ()
SU.terminateRequest TerminateRequest
req
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a. a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe StateTransit -> AppContext (Maybe StateTransit))
-> Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a b. (a -> b) -> a -> b
$ StateTransit -> Maybe StateTransit
forall a. a -> Maybe a
Just StateTransit
GHCiRun_Shutdown
instance StateActivityIF GHCiRunStateData DAP.SetBreakpointsRequest where
action :: AppState GHCiRunStateData
-> Request SetBreakpointsRequest -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (SetBreakpointsRequest SetBreakpointsRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState SetBreakpointsRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ SetBreakpointsRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show SetBreakpointsRequest
req
SetBreakpointsRequest -> AppContext (Maybe StateTransit)
SU.setBreakpointsRequest SetBreakpointsRequest
req
instance StateActivityIF GHCiRunStateData DAP.SetExceptionBreakpointsRequest where
action :: AppState GHCiRunStateData
-> Request SetExceptionBreakpointsRequest
-> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (SetExceptionBreakpointsRequest SetExceptionBreakpointsRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState SetExceptionBreakpointsRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ SetExceptionBreakpointsRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show SetExceptionBreakpointsRequest
req
SetExceptionBreakpointsRequest -> AppContext (Maybe StateTransit)
SU.setExceptionBreakpointsRequest SetExceptionBreakpointsRequest
req
instance StateActivityIF GHCiRunStateData DAP.SetFunctionBreakpointsRequest where
action :: AppState GHCiRunStateData
-> Request SetFunctionBreakpointsRequest
-> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (SetFunctionBreakpointsRequest SetFunctionBreakpointsRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState SetFunctionBreakpointsRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ SetFunctionBreakpointsRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show SetFunctionBreakpointsRequest
req
SetFunctionBreakpointsRequest -> AppContext (Maybe StateTransit)
SU.setFunctionBreakpointsRequest SetFunctionBreakpointsRequest
req
instance StateActivityIF GHCiRunStateData DAP.ThreadsRequest where
action :: AppState GHCiRunStateData
-> Request ThreadsRequest -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (ThreadsRequest ThreadsRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState ThreadsRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ ThreadsRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show ThreadsRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: ThreadsResponse
res = ThreadsResponse
DAP.defaultThreadsResponse {
DAP.seqThreadsResponse = resSeq
, DAP.request_seqThreadsResponse = DAP.seqThreadsRequest req
, DAP.successThreadsResponse = False
, DAP.messageThreadsResponse = "GHCiRun State. debugging not started."
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ThreadsResponse -> Response
ThreadsResponse ThreadsResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a. a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StateTransit
forall a. Maybe a
Nothing
instance StateActivityIF GHCiRunStateData DAP.StackTraceRequest where
action :: AppState GHCiRunStateData
-> Request StackTraceRequest -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (StackTraceRequest StackTraceRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState StackTraceRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ StackTraceRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show StackTraceRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: StackTraceResponse
res = StackTraceResponse
DAP.defaultStackTraceResponse {
DAP.seqStackTraceResponse = resSeq
, DAP.request_seqStackTraceResponse = DAP.seqStackTraceRequest req
, DAP.successStackTraceResponse = False
, DAP.messageStackTraceResponse = "GHCiRun State. debugging not started."
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ StackTraceResponse -> Response
StackTraceResponse StackTraceResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a. a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StateTransit
forall a. Maybe a
Nothing
instance StateActivityIF GHCiRunStateData DAP.ScopesRequest where
action :: AppState GHCiRunStateData
-> Request ScopesRequest -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (ScopesRequest ScopesRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState ScopesRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ ScopesRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show ScopesRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: ScopesResponse
res = ScopesResponse
DAP.defaultScopesResponse {
DAP.seqScopesResponse = resSeq
, DAP.request_seqScopesResponse = DAP.seqScopesRequest req
, DAP.successScopesResponse = False
, DAP.messageScopesResponse = "GHCiRun State. debugging not started."
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ScopesResponse -> Response
ScopesResponse ScopesResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a. a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StateTransit
forall a. Maybe a
Nothing
instance StateActivityIF GHCiRunStateData DAP.VariablesRequest where
action :: AppState GHCiRunStateData
-> Request VariablesRequest -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (VariablesRequest VariablesRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState VariablesRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ VariablesRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show VariablesRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: VariablesResponse
res = VariablesResponse
DAP.defaultVariablesResponse {
DAP.seqVariablesResponse = resSeq
, DAP.request_seqVariablesResponse = DAP.seqVariablesRequest req
, DAP.successVariablesResponse = False
, DAP.messageVariablesResponse = "GHCiRun State. debugging not started."
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ VariablesResponse -> Response
VariablesResponse VariablesResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a. a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StateTransit
forall a. Maybe a
Nothing
instance StateActivityIF GHCiRunStateData DAP.SourceRequest
instance StateActivityIF GHCiRunStateData DAP.ContinueRequest where
action :: AppState GHCiRunStateData
-> Request ContinueRequest -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (ContinueRequest ContinueRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState ContinueRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ ContinueRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show ContinueRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: ContinueResponse
res = ContinueResponse
DAP.defaultContinueResponse {
DAP.seqContinueResponse = resSeq
, DAP.request_seqContinueResponse = DAP.seqContinueRequest req
, DAP.successContinueResponse = True
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ContinueResponse -> Response
ContinueResponse ContinueResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a. a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe StateTransit -> AppContext (Maybe StateTransit))
-> Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a b. (a -> b) -> a -> b
$ StateTransit -> Maybe StateTransit
forall a. a -> Maybe a
Just StateTransit
GHCiRun_DebugRun
instance StateActivityIF GHCiRunStateData DAP.NextRequest where
action :: AppState GHCiRunStateData
-> Request NextRequest -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (NextRequest NextRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState NextRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ NextRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show NextRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: NextResponse
res = NextResponse
DAP.defaultNextResponse {
DAP.seqNextResponse = resSeq
, DAP.request_seqNextResponse = DAP.seqNextRequest req
, DAP.successNextResponse = True
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ NextResponse -> Response
NextResponse NextResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a. a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe StateTransit -> AppContext (Maybe StateTransit))
-> Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a b. (a -> b) -> a -> b
$ StateTransit -> Maybe StateTransit
forall a. a -> Maybe a
Just StateTransit
GHCiRun_DebugRun
instance StateActivityIF GHCiRunStateData DAP.StepInRequest where
action :: AppState GHCiRunStateData
-> Request StepInRequest -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (StepInRequest StepInRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState StepInRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ StepInRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show StepInRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: StepInResponse
res = StepInResponse
DAP.defaultStepInResponse {
DAP.seqStepInResponse = resSeq
, DAP.request_seqStepInResponse = DAP.seqStepInRequest req
, DAP.successStepInResponse = True
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ StepInResponse -> Response
StepInResponse StepInResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a. a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe StateTransit -> AppContext (Maybe StateTransit))
-> Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a b. (a -> b) -> a -> b
$ StateTransit -> Maybe StateTransit
forall a. a -> Maybe a
Just StateTransit
GHCiRun_DebugRun
instance StateActivityIF GHCiRunStateData DAP.EvaluateRequest where
action :: AppState GHCiRunStateData
-> Request EvaluateRequest -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (EvaluateRequest EvaluateRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState EvaluateRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ EvaluateRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show EvaluateRequest
req
EvaluateRequest -> AppContext (Maybe StateTransit)
SU.evaluateRequest EvaluateRequest
req
instance StateActivityIF GHCiRunStateData DAP.CompletionsRequest where
action :: AppState GHCiRunStateData
-> Request CompletionsRequest -> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (CompletionsRequest CompletionsRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState CompletionsRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ CompletionsRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show CompletionsRequest
req
CompletionsRequest -> AppContext (Maybe StateTransit)
SU.completionsRequest CompletionsRequest
req
instance StateActivityIF GHCiRunStateData HdaInternalTransitRequest
instance StateActivityIF GHCiRunStateData HdaInternalTerminateRequest where
action :: AppState GHCiRunStateData
-> Request HdaInternalTerminateRequest
-> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (InternalTerminateRequest HdaInternalTerminateRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState InternalTerminateRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ HdaInternalTerminateRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show HdaInternalTerminateRequest
req
AppContext ()
SU.internalTerminateRequest
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a. a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe StateTransit -> AppContext (Maybe StateTransit))
-> Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a b. (a -> b) -> a -> b
$ StateTransit -> Maybe StateTransit
forall a. a -> Maybe a
Just StateTransit
GHCiRun_Shutdown
instance StateActivityIF GHCiRunStateData HdaInternalLoadRequest where
action :: AppState GHCiRunStateData
-> Request HdaInternalLoadRequest
-> AppContext (Maybe StateTransit)
action AppState GHCiRunStateData
_ (InternalLoadRequest HdaInternalLoadRequest
req) = do
IO () -> AppContext ()
forall a. IO a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ErrMsg -> ErrMsg -> IO ()
L.debugM ErrMsg
_LOG_APP (ErrMsg -> IO ()) -> ErrMsg -> IO ()
forall a b. (a -> b) -> a -> b
$ ErrMsg
"GHCiRunState InternalTerminateRequest called. " ErrMsg -> ErrMsg -> ErrMsg
forall a. [a] -> [a] -> [a]
++ HdaInternalLoadRequest -> ErrMsg
forall a. Show a => a -> ErrMsg
show HdaInternalLoadRequest
req
AppContext ()
SU.internalTerminateRequest
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a. a -> StateT AppStores (ExceptT ErrMsg IO) a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe StateTransit -> AppContext (Maybe StateTransit))
-> Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a b. (a -> b) -> a -> b
$ StateTransit -> Maybe StateTransit
forall a. a -> Maybe a
Just StateTransit
GHCiRun_Shutdown