haskell-debug-adapter 0.0.30.0 → 0.0.31.0
raw patch · 22 files changed
+492/−442 lines, 22 files
Files
- Changelog.md +3/−0
- haskell-debug-adapter.cabal +2/−2
- src/Haskell/Debug/Adapter/Application.hs +3/−4
- src/Haskell/Debug/Adapter/State/Contaminated.hs +86/−71
- src/Haskell/Debug/Adapter/State/DebugRun.hs +69/−41
- src/Haskell/Debug/Adapter/State/DebugRun/Continue.hs +5/−4
- src/Haskell/Debug/Adapter/State/DebugRun/InternalTerminate.hs +3/−4
- src/Haskell/Debug/Adapter/State/DebugRun/Next.hs +6/−5
- src/Haskell/Debug/Adapter/State/DebugRun/Scopes.hs +6/−5
- src/Haskell/Debug/Adapter/State/DebugRun/StackTrace.hs +6/−4
- src/Haskell/Debug/Adapter/State/DebugRun/StepIn.hs +5/−5
- src/Haskell/Debug/Adapter/State/DebugRun/Terminate.hs +3/−4
- src/Haskell/Debug/Adapter/State/DebugRun/Threads.hs +4/−3
- src/Haskell/Debug/Adapter/State/DebugRun/Variables.hs +5/−4
- src/Haskell/Debug/Adapter/State/GHCiRun.hs +89/−79
- src/Haskell/Debug/Adapter/State/GHCiRun/ConfigurationDone.hs +4/−4
- src/Haskell/Debug/Adapter/State/Init.hs +121/−26
- src/Haskell/Debug/Adapter/State/Init/Initialize.hs +4/−2
- src/Haskell/Debug/Adapter/State/Init/Launch.hs +10/−10
- src/Haskell/Debug/Adapter/State/Shutdown.hs +7/−7
- src/Haskell/Debug/Adapter/State/Utility.hs +6/−14
- src/Haskell/Debug/Adapter/Type.hs +45/−144
Changelog.md view
@@ -1,4 +1,7 @@ +20190505 haskell-debug-adapter-0.0.31.0+ * [MODIFY] refactor some types.+ 20190402 haskell-debug-adapter-0.0.30.0 * [INFO] support ghci-dap-0.0.12.0.
haskell-debug-adapter.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 936ac0a678039fb371ec5218b03ba08c8d2bb157ef6e48a790ee90ffa813d461+-- hash: bdbb77dee4fb24c9ebba6688c717b597fe7f4a5777a04bae83277c3c8361e821 name: haskell-debug-adapter-version: 0.0.30.0+version: 0.0.31.0 synopsis: Haskell Debug Adapter. description: Please see README.md category: Development
src/Haskell/Debug/Adapter/Application.hs view
@@ -25,7 +25,7 @@ -- |--- +-- defaultAppStores :: S.Handle -> S.Handle -> IO AppStores defaultAppStores inHdl outHdl = do reqStore <- newMVar []@@ -163,8 +163,7 @@ appMain (WrapRequest (InternalTransitRequest (HdaInternalTransitRequest s))) = transit s appMain reqW = do stateW <- view appStateWAppStores <$> get- - getStateRequestW stateW reqW >>= actionW >>= \case+ doActivityW stateW reqW >>= \case Nothing -> return () Just st -> transit st @@ -174,7 +173,7 @@ transit st = actExitState >> updateState st >> actEntryState- + where actExitState = do stateW <- view appStateWAppStores <$> get
src/Haskell/Debug/Adapter/State/Contaminated.hs view
@@ -15,16 +15,16 @@ import qualified Haskell.Debug.Adapter.State.Utility as SU --- | +-- | ---instance AppStateIF ContaminatedState where+instance AppStateIF ContaminatedStateData where -- | -- entryAction ContaminatedState = do liftIO $ L.debugM _LOG_APP "ContaminatedState entryAction called." return () - + -- | -- exitAction ContaminatedState = do@@ -32,49 +32,66 @@ return () - -- | + -- | --- getStateRequest ContaminatedState (WrapRequest (InitializeRequest req)) = SU.unsupported $ show req- getStateRequest ContaminatedState (WrapRequest (LaunchRequest req)) = SU.unsupported $ show req- getStateRequest ContaminatedState (WrapRequest (DisconnectRequest req)) = SU.unsupported $ show req- getStateRequest ContaminatedState (WrapRequest (PauseRequest req)) = SU.unsupported $ show req- getStateRequest ContaminatedState (WrapRequest (TerminateRequest req)) = return . WrapStateRequest $ Contaminated_Terminate req- - getStateRequest ContaminatedState (WrapRequest (SetBreakpointsRequest req)) = return . WrapStateRequest $ Contaminated_SetBreakpoints req- getStateRequest ContaminatedState (WrapRequest (SetFunctionBreakpointsRequest req)) = return . WrapStateRequest $ Contaminated_SetFunctionBreakpoints req- getStateRequest ContaminatedState (WrapRequest (SetExceptionBreakpointsRequest req)) = return . WrapStateRequest $ Contaminated_SetExceptionBreakpoints req- getStateRequest ContaminatedState (WrapRequest (ConfigurationDoneRequest req)) = SU.unsupported $ show req- getStateRequest ContaminatedState (WrapRequest (ThreadsRequest req)) = return . WrapStateRequest $ Contaminated_Threads req- getStateRequest ContaminatedState (WrapRequest (StackTraceRequest req)) = return . WrapStateRequest $ Contaminated_StackTrace req- getStateRequest ContaminatedState (WrapRequest (ScopesRequest req)) = return . WrapStateRequest $ Contaminated_Scopes req- getStateRequest ContaminatedState (WrapRequest (VariablesRequest req)) = return . WrapStateRequest $ Contaminated_Variables req- getStateRequest ContaminatedState (WrapRequest (ContinueRequest req)) = return . WrapStateRequest $ Contaminated_Continue req- getStateRequest ContaminatedState (WrapRequest (NextRequest req)) = return . WrapStateRequest $ Contaminated_Next req- getStateRequest ContaminatedState (WrapRequest (StepInRequest req)) = return . WrapStateRequest $ Contaminated_StepIn req- getStateRequest ContaminatedState (WrapRequest (EvaluateRequest req)) = return . WrapStateRequest $ Contaminated_Evaluate req- getStateRequest ContaminatedState (WrapRequest (CompletionsRequest req)) = return . WrapStateRequest $ Contaminated_Completions req- getStateRequest ContaminatedState (WrapRequest (InternalTransitRequest req)) = SU.unsupported $ show req- getStateRequest ContaminatedState (WrapRequest (InternalTerminateRequest req)) = return . WrapStateRequest $ Contaminated_InternalTerminate req- getStateRequest ContaminatedState (WrapRequest (InternalLoadRequest req)) = return . WrapStateRequest $ Contaminated_InternalLoad req+ doActivity s (WrapRequest r@InitializeRequest{}) = action2 s r+ doActivity s (WrapRequest r@LaunchRequest{}) = action2 s r+ doActivity s (WrapRequest r@DisconnectRequest{}) = action2 s r+ doActivity s (WrapRequest r@PauseRequest{}) = action2 s r+ doActivity s (WrapRequest r@TerminateRequest{}) = action2 s r+ doActivity s (WrapRequest r@SetBreakpointsRequest{}) = action2 s r+ doActivity s (WrapRequest r@SetFunctionBreakpointsRequest{}) = action2 s r+ doActivity s (WrapRequest r@SetExceptionBreakpointsRequest{}) = action2 s r+ doActivity s (WrapRequest r@ConfigurationDoneRequest{}) = action2 s r+ doActivity s (WrapRequest r@ThreadsRequest{}) = action2 s r+ doActivity s (WrapRequest r@StackTraceRequest{}) = action2 s r+ doActivity s (WrapRequest r@ScopesRequest{}) = action2 s r+ doActivity s (WrapRequest r@VariablesRequest{}) = action2 s r+ doActivity s (WrapRequest r@ContinueRequest{}) = action2 s r+ doActivity s (WrapRequest r@NextRequest{}) = action2 s r+ doActivity s (WrapRequest r@StepInRequest{}) = action2 s r+ doActivity s (WrapRequest r@EvaluateRequest{}) = action2 s r+ doActivity s (WrapRequest r@CompletionsRequest{}) = action2 s r+ doActivity s (WrapRequest r@InternalTransitRequest{}) = action2 s r+ doActivity s (WrapRequest r@InternalTerminateRequest{}) = action2 s r+ doActivity s (WrapRequest r@InternalLoadRequest{}) = action2 s r +-- |+-- default nop.+--+instance StateActivityIF ContaminatedStateData DAP.InitializeRequest -- |+-- default nop.+--+instance StateActivityIF ContaminatedStateData DAP.LaunchRequest++-- |+-- default nop.+--+instance StateActivityIF ContaminatedStateData DAP.DisconnectRequest++-- |+-- default nop.+--+instance StateActivityIF ContaminatedStateData DAP.PauseRequest++-- | -- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.TerminateRequest where- action (Contaminated_Terminate req) = do+instance StateActivityIF ContaminatedStateData DAP.TerminateRequest where+ action2 _ (TerminateRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState TerminateRequest called. " ++ show req SU.terminateRequest req return $ Just Contaminated_Shutdown - -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.SetBreakpointsRequest where- action (Contaminated_SetBreakpoints req) = do+instance StateActivityIF ContaminatedStateData DAP.SetBreakpointsRequest where+ action2 _ (SetBreakpointsRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState SetBreakpointsRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultSetBreakpointsResponse {@@ -87,12 +104,11 @@ U.addResponse $ SetBreakpointsResponse res return Nothing - -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.SetFunctionBreakpointsRequest where- action (Contaminated_SetFunctionBreakpoints req) = do+instance StateActivityIF ContaminatedStateData DAP.SetFunctionBreakpointsRequest where+ action2 _ (SetFunctionBreakpointsRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState SetFunctionBreakpointsRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultSetFunctionBreakpointsResponse {@@ -105,12 +121,11 @@ U.addResponse $ SetFunctionBreakpointsResponse res return Nothing - -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.SetExceptionBreakpointsRequest where- action (Contaminated_SetExceptionBreakpoints req) = do+instance StateActivityIF ContaminatedStateData DAP.SetExceptionBreakpointsRequest where+ action2 _ (SetExceptionBreakpointsRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState SetExceptionBreakpointsRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultSetExceptionBreakpointsResponse {@@ -123,12 +138,16 @@ U.addResponse $ SetExceptionBreakpointsResponse res return Nothing +-- |+-- default nop.+--+instance StateActivityIF ContaminatedStateData DAP.ConfigurationDoneRequest -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.ThreadsRequest where- action (Contaminated_Threads req) = do+instance StateActivityIF ContaminatedStateData DAP.ThreadsRequest where+ action2 _ (ThreadsRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState ThreadsRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultThreadsResponse {@@ -141,12 +160,11 @@ U.addResponse $ ThreadsResponse res return Nothing - -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.StackTraceRequest where- action (Contaminated_StackTrace req) = do+instance StateActivityIF ContaminatedStateData DAP.StackTraceRequest where+ action2 _ (StackTraceRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState StackTraceRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultStackTraceResponse {@@ -159,13 +177,11 @@ U.addResponse $ StackTraceResponse res return Nothing -- -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.ScopesRequest where- action (Contaminated_Scopes req) = do+instance StateActivityIF ContaminatedStateData DAP.ScopesRequest where+ action2 _ (ScopesRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState ScopesRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultScopesResponse {@@ -178,13 +194,11 @@ U.addResponse $ ScopesResponse res return Nothing -- -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.VariablesRequest where- action (Contaminated_Variables req) = do+instance StateActivityIF ContaminatedStateData DAP.VariablesRequest where+ action2 _ (VariablesRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState VariablesRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultVariablesResponse {@@ -197,67 +211,68 @@ U.addResponse $ VariablesResponse res return Nothing - -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.ContinueRequest where- action (Contaminated_Continue req) = do+instance StateActivityIF ContaminatedStateData DAP.ContinueRequest where+ action2 _ (ContinueRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState ContinueRequest called. " ++ show req restartEvent return $ Just Contaminated_Shutdown - -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.NextRequest where- action (Contaminated_Next req) = do+instance StateActivityIF ContaminatedStateData DAP.NextRequest where+ action2 _ (NextRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState NextRequest called. " ++ show req restartEvent return $ Just Contaminated_Shutdown - -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.StepInRequest where- action (Contaminated_StepIn req) = do+instance StateActivityIF ContaminatedStateData DAP.StepInRequest where+ action2 _ (StepInRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState StepInRequest called. " ++ show req restartEvent return $ Just Contaminated_Shutdown - -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.EvaluateRequest where- action (Contaminated_Evaluate req) = do+instance StateActivityIF ContaminatedStateData DAP.EvaluateRequest where+ action2 _ (EvaluateRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState EvaluateRequest called. " ++ show req SU.evaluateRequest req - -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState DAP.CompletionsRequest where- action (Contaminated_Completions req) = do+instance StateActivityIF ContaminatedStateData DAP.CompletionsRequest where+ action2 _ (CompletionsRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState CompletionsRequest called. " ++ show req SU.completionsRequest req -- |--- Any errors should be critical. don't catch anything here.+-- default nop. ---instance StateRequestIF ContaminatedState HdaInternalTerminateRequest where- action (Contaminated_InternalTerminate req) = do+instance StateActivityIF ContaminatedStateData HdaInternalTransitRequest++-- |+-- Any errors should be sent back as False result Response+--+instance StateActivityIF ContaminatedStateData HdaInternalTerminateRequest where+ action2 _ (InternalTerminateRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState InternalTerminateRequest called. " ++ show req SU.internalTerminateRequest return $ Just Contaminated_Shutdown- -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF ContaminatedState HdaInternalLoadRequest where- action (Contaminated_InternalLoad req) = do+instance StateActivityIF ContaminatedStateData HdaInternalLoadRequest where+ action2 _ (InternalLoadRequest req) = do liftIO $ L.debugM _LOG_APP $ "ContaminatedState InternalLoadRequest called. " ++ show req SU.loadHsFile $ pathHdaInternalLoadRequest req return Nothing
src/Haskell/Debug/Adapter/State/DebugRun.hs view
@@ -29,7 +29,7 @@ import qualified Haskell.Debug.Adapter.State.Utility as SU -instance AppStateIF DebugRunState where+instance AppStateIF DebugRunStateData where -- | -- entryAction DebugRunState = do@@ -43,36 +43,52 @@ return () - -- | + -- | --- getStateRequest DebugRunState (WrapRequest (InitializeRequest req)) = SU.unsupported $ show req- getStateRequest DebugRunState (WrapRequest (LaunchRequest req)) = SU.unsupported $ show req- getStateRequest DebugRunState (WrapRequest (DisconnectRequest req)) = SU.unsupported $ show req- getStateRequest DebugRunState (WrapRequest (PauseRequest req)) = SU.unsupported $ show req- - getStateRequest DebugRunState (WrapRequest (TerminateRequest req)) = return . WrapStateRequest $ DebugRun_Terminate req- getStateRequest DebugRunState (WrapRequest (SetBreakpointsRequest req)) = return . WrapStateRequest $ DebugRun_SetBreakpoints req- getStateRequest DebugRunState (WrapRequest (SetFunctionBreakpointsRequest req)) = return . WrapStateRequest $ DebugRun_SetFunctionBreakpoints req- getStateRequest DebugRunState (WrapRequest (SetExceptionBreakpointsRequest req)) = return . WrapStateRequest $ DebugRun_SetExceptionBreakpoints req+ doActivity s (WrapRequest r@InitializeRequest{}) = action2 s r+ doActivity s (WrapRequest r@LaunchRequest{}) = action2 s r+ doActivity s (WrapRequest r@DisconnectRequest{}) = action2 s r+ doActivity s (WrapRequest r@PauseRequest{}) = action2 s r+ doActivity s (WrapRequest r@TerminateRequest{}) = action2 s r+ doActivity s (WrapRequest r@SetBreakpointsRequest{}) = action2 s r+ doActivity s (WrapRequest r@SetFunctionBreakpointsRequest{}) = action2 s r+ doActivity s (WrapRequest r@SetExceptionBreakpointsRequest{}) = action2 s r+ doActivity s (WrapRequest r@ConfigurationDoneRequest{}) = action2 s r+ doActivity s (WrapRequest r@ThreadsRequest{}) = action2 s r+ doActivity s (WrapRequest r@StackTraceRequest{}) = action2 s r+ doActivity s (WrapRequest r@ScopesRequest{}) = action2 s r+ doActivity s (WrapRequest r@VariablesRequest{}) = action2 s r+ doActivity s (WrapRequest r@ContinueRequest{}) = action2 s r+ doActivity s (WrapRequest r@NextRequest{}) = action2 s r+ doActivity s (WrapRequest r@StepInRequest{}) = action2 s r+ doActivity s (WrapRequest r@EvaluateRequest{}) = action2 s r+ doActivity s (WrapRequest r@CompletionsRequest{}) = action2 s r+ doActivity s (WrapRequest r@InternalTransitRequest{}) = action2 s r+ doActivity s (WrapRequest r@InternalTerminateRequest{}) = action2 s r+ doActivity s (WrapRequest r@InternalLoadRequest{}) = action2 s r - getStateRequest DebugRunState (WrapRequest (ConfigurationDoneRequest req)) = SU.unsupported $ show req+-- |+-- default nop.+--+instance StateActivityIF DebugRunStateData DAP.InitializeRequest - getStateRequest DebugRunState (WrapRequest (ThreadsRequest req)) = return . WrapStateRequest $ DebugRun_Threads req- getStateRequest DebugRunState (WrapRequest (StackTraceRequest req)) = return . WrapStateRequest $ DebugRun_StackTrace req- getStateRequest DebugRunState (WrapRequest (ScopesRequest req)) = return . WrapStateRequest $ DebugRun_Scopes req- getStateRequest DebugRunState (WrapRequest (VariablesRequest req)) = return . WrapStateRequest $ DebugRun_Variables req- getStateRequest DebugRunState (WrapRequest (ContinueRequest req)) = return . WrapStateRequest $ DebugRun_Continue req- getStateRequest DebugRunState (WrapRequest (NextRequest req)) = return . WrapStateRequest $ DebugRun_Next req- getStateRequest DebugRunState (WrapRequest (StepInRequest req)) = return . WrapStateRequest $ DebugRun_StepIn req- getStateRequest DebugRunState (WrapRequest (EvaluateRequest req)) = return . WrapStateRequest $ DebugRun_Evaluate req- getStateRequest DebugRunState (WrapRequest (CompletionsRequest req)) = return . WrapStateRequest $ DebugRun_Completions req+-- |+-- default nop.+--+instance StateActivityIF DebugRunStateData DAP.LaunchRequest - getStateRequest DebugRunState (WrapRequest (InternalTransitRequest req)) = SU.unsupported $ show req- getStateRequest DebugRunState (WrapRequest (InternalTerminateRequest req)) = return . WrapStateRequest $ DebugRun_InternalTerminate req- getStateRequest DebugRunState (WrapRequest (InternalLoadRequest req)) = return . WrapStateRequest $ DebugRun_InternalLoad req+-- |+-- default nop.+--+instance StateActivityIF DebugRunStateData DAP.DisconnectRequest -- |+-- default nop. --+instance StateActivityIF DebugRunStateData DAP.PauseRequest++-- |+-- goEntry :: AppContext () goEntry = view stopOnEntryAppStores <$> get >>= \case True -> stopOnEntry@@ -91,7 +107,7 @@ P.cmdAndOut cmd res <- P.expectH P.stdoutCallBk- + withAdhocAddDapHeader $ filter (U.startswith _DAP_HEADER) res where@@ -123,7 +139,7 @@ P.cmdAndOut cmd res <- P.expectH P.stdoutCallBk- + withAdhocDelDapHeader $ filter (U.startswith _DAP_HEADER) res -- |@@ -156,7 +172,7 @@ return $ U.strip $ func ++ " " ++ funcArgs startDebugDAP args = do- + let dap = ":dap-continue " cmd = dap ++ U.showDAP args dbg = dap ++ show args@@ -164,10 +180,10 @@ P.cmdAndOut cmd U.debugEV _LOG_APP dbg P.expectH $ P.funcCallBk lineCallBk- + return () - + lineCallBk :: Bool -> String -> AppContext () lineCallBk True s = U.sendStdoutEvent s lineCallBk False s@@ -196,46 +212,58 @@ -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState DAP.SetBreakpointsRequest where- action (DebugRun_SetBreakpoints req) = do+instance StateActivityIF DebugRunStateData DAP.SetBreakpointsRequest where+ action2 _ (SetBreakpointsRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState SetBreakpointsRequest called. " ++ show req SU.setBreakpointsRequest req -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState DAP.SetExceptionBreakpointsRequest where- action (DebugRun_SetExceptionBreakpoints req) = do+instance StateActivityIF DebugRunStateData DAP.SetExceptionBreakpointsRequest where+ action2 _ (SetExceptionBreakpointsRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState SetExceptionBreakpointsRequest called. " ++ show req SU.setExceptionBreakpointsRequest req -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState DAP.SetFunctionBreakpointsRequest where- action (DebugRun_SetFunctionBreakpoints req) = do+instance StateActivityIF DebugRunStateData DAP.SetFunctionBreakpointsRequest where+ action2 _ (SetFunctionBreakpointsRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState SetFunctionBreakpointsRequest called. " ++ show req SU.setFunctionBreakpointsRequest req -- |+-- default nop. ---instance StateRequestIF DebugRunState DAP.EvaluateRequest where- action (DebugRun_Evaluate req) = do+instance StateActivityIF DebugRunStateData DAP.ConfigurationDoneRequest++-- |+-- Any errors should be sent back as False result Response+--+instance StateActivityIF DebugRunStateData DAP.EvaluateRequest where+ action2 _ (EvaluateRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState EvaluateRequest called. " ++ show req SU.evaluateRequest req -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState DAP.CompletionsRequest where- action (DebugRun_Completions req) = do+instance StateActivityIF DebugRunStateData DAP.CompletionsRequest where+ action2 _ (CompletionsRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState CompletionsRequest called. " ++ show req SU.completionsRequest req +-- |+-- default nop.+--+instance StateActivityIF DebugRunStateData HdaInternalTransitRequest -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState HdaInternalLoadRequest where- action (DebugRun_InternalLoad req) = do+instance StateActivityIF DebugRunStateData HdaInternalLoadRequest where+ action2 _ (InternalLoadRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState InternalLoadRequest called. " ++ show req SU.loadHsFile $ pathHdaInternalLoadRequest req return $ Just DebugRun_Contaminated
src/Haskell/Debug/Adapter/State/DebugRun/Continue.hs view
@@ -16,9 +16,10 @@ import qualified Haskell.Debug.Adapter.GHCi as P -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState DAP.ContinueRequest where- action (DebugRun_Continue req) = do+instance StateActivityIF DebugRunStateData DAP.ContinueRequest where+ action2 _ (ContinueRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState ContinueRequest called. " ++ show req app req @@ -26,7 +27,7 @@ -- app :: DAP.ContinueRequest -> AppContext (Maybe StateTransit) app req = flip catchError errHdl $ do- + let args = DAP.argumentsContinueRequest req dap = ":dap-continue " cmd = dap ++ U.showDAP args@@ -46,7 +47,7 @@ U.addResponse $ ContinueResponse res return Nothing- + where lineCallBk :: Bool -> String -> AppContext () lineCallBk True s = U.sendStdoutEvent s
src/Haskell/Debug/Adapter/State/DebugRun/InternalTerminate.hs view
@@ -13,13 +13,12 @@ import qualified Haskell.Debug.Adapter.State.Utility as SU -- |--- Any errors should be critical. don't catch anything here.+-- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState HdaInternalTerminateRequest where- action (DebugRun_InternalTerminate req) = do+instance StateActivityIF DebugRunStateData HdaInternalTerminateRequest where+ action2 _ (InternalTerminateRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState InternalTerminateRequest called. " ++ show req app req- -- | --
src/Haskell/Debug/Adapter/State/DebugRun/Next.hs view
@@ -16,9 +16,10 @@ import qualified Haskell.Debug.Adapter.GHCi as P -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState DAP.NextRequest where- action (DebugRun_Next req) = do+instance StateActivityIF DebugRunStateData DAP.NextRequest where+ action2 _ (NextRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState NextRequest called. " ++ show req app req @@ -26,7 +27,7 @@ -- app :: DAP.NextRequest -> AppContext (Maybe StateTransit) app req = flip catchError errHdl $ do- + let args = DAP.argumentsNextRequest req dap = ":dap-next " cmd = dap ++ U.showDAP args@@ -46,7 +47,7 @@ U.addResponse $ NextResponse res return Nothing- + where lineCallBk :: Bool -> String -> AppContext () lineCallBk True s = U.sendStdoutEvent s@@ -63,7 +64,7 @@ Left err -> errHdl err >> return () Right (Left err) -> errHdl err >> return () Right (Right body) -> U.handleStoppedEventBody body- + -- | --
src/Haskell/Debug/Adapter/State/DebugRun/Scopes.hs view
@@ -15,11 +15,12 @@ import qualified Haskell.Debug.Adapter.Utility as U import qualified Haskell.Debug.Adapter.GHCi as P + -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState DAP.ScopesRequest where- --action :: (StateRequest s r) -> AppContext ()- action (DebugRun_Scopes req) = do+instance StateActivityIF DebugRunStateData DAP.ScopesRequest where+ action2 _ (ScopesRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState ScopesRequest called. " ++ show req app req @@ -27,7 +28,7 @@ -- app :: DAP.ScopesRequest -> AppContext (Maybe StateTransit) app req = flip catchError errHdl $ do- + let args = DAP.argumentsScopesRequest req dap = ":dap-scopes " cmd = dap ++ U.showDAP args@@ -38,7 +39,7 @@ P.expectH $ P.funcCallBk lineCallBk return Nothing- + where lineCallBk :: Bool -> String -> AppContext () lineCallBk True s = U.sendStdoutEvent s
src/Haskell/Debug/Adapter/State/DebugRun/StackTrace.hs view
@@ -15,10 +15,12 @@ import qualified Haskell.Debug.Adapter.Utility as U import qualified Haskell.Debug.Adapter.GHCi as P + -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState DAP.StackTraceRequest where- action (DebugRun_StackTrace req) = do+instance StateActivityIF DebugRunStateData DAP.StackTraceRequest where+ action2 _ (StackTraceRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState StackTraceRequest called. " ++ show req app req @@ -26,7 +28,7 @@ -- app :: DAP.StackTraceRequest -> AppContext (Maybe StateTransit) app req = flip catchError errHdl $ do- + let args = DAP.argumentsStackTraceRequest req dap = ":dap-stacktrace " cmd = dap ++ U.showDAP args@@ -37,7 +39,7 @@ P.expectH $ P.funcCallBk lineCallBk return Nothing- + where lineCallBk :: Bool -> String -> AppContext () lineCallBk True s = U.sendStdoutEvent s
src/Haskell/Debug/Adapter/State/DebugRun/StepIn.hs view
@@ -16,10 +16,10 @@ import qualified Haskell.Debug.Adapter.GHCi as P -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState DAP.StepInRequest where- --action :: (StateRequest s r) -> AppContext ()- action (DebugRun_StepIn req) = do+instance StateActivityIF DebugRunStateData DAP.StepInRequest where+ action2 _ (StepInRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState StepInRequest called. " ++ show req app req @@ -27,7 +27,7 @@ -- app :: DAP.StepInRequest -> AppContext (Maybe StateTransit) app req = flip catchError errHdl $ do- + let args = DAP.argumentsStepInRequest req dap = ":dap-step-in " cmd = dap ++ U.showDAP args@@ -47,7 +47,7 @@ U.addResponse $ StepInResponse res return Nothing- + where lineCallBk :: Bool -> String -> AppContext () lineCallBk True s = U.sendStdoutEvent s
src/Haskell/Debug/Adapter/State/DebugRun/Terminate.hs view
@@ -14,13 +14,12 @@ import qualified Haskell.Debug.Adapter.State.Utility as SU -- |--- Any errors should be critical. don't catch anything here.+-- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState DAP.TerminateRequest where- action (DebugRun_Terminate req) = do+instance StateActivityIF DebugRunStateData DAP.TerminateRequest where+ action2 _ (TerminateRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState TerminateRequest called. " ++ show req app req- -- | --
src/Haskell/Debug/Adapter/State/DebugRun/Threads.hs view
@@ -12,9 +12,10 @@ import qualified Haskell.Debug.Adapter.Utility as U -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState DAP.ThreadsRequest where- action (DebugRun_Threads req) = do+instance StateActivityIF DebugRunStateData DAP.ThreadsRequest where+ action2 _ (ThreadsRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState ThreadsRequest called. " ++ show req app req @@ -30,5 +31,5 @@ } U.addResponse $ ThreadsResponse res- + return Nothing
src/Haskell/Debug/Adapter/State/DebugRun/Variables.hs view
@@ -16,9 +16,10 @@ import qualified Haskell.Debug.Adapter.GHCi as P -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF DebugRunState DAP.VariablesRequest where- action (DebugRun_Variables req) = do+instance StateActivityIF DebugRunStateData DAP.VariablesRequest where+ action2 _ (VariablesRequest req) = do liftIO $ L.debugM _LOG_APP $ "DebugRunState VariablesRequest called. " ++ show req app req @@ -26,7 +27,7 @@ -- app :: DAP.VariablesRequest -> AppContext (Maybe StateTransit) app req = flip catchError errHdl $ do- + let args = DAP.argumentsVariablesRequest req dap = ":dap-variables " cmd = dap ++ U.showDAP args@@ -37,7 +38,7 @@ P.expectH $ P.funcCallBk lineCallBk return Nothing- + where lineCallBk :: Bool -> String -> AppContext () lineCallBk True s = U.sendStdoutEvent s
src/Haskell/Debug/Adapter/State/GHCiRun.hs view
@@ -13,7 +13,7 @@ import qualified Haskell.Debug.Adapter.State.Utility as SU import qualified Haskell.Debug.Adapter.Utility as U -instance AppStateIF GHCiRunState where+instance AppStateIF GHCiRunStateData where -- | -- entryAction GHCiRunState = do@@ -27,79 +27,90 @@ return () - -- | + -- | --- getStateRequest GHCiRunState (WrapRequest (InitializeRequest req)) = SU.unsupported $ show req- getStateRequest GHCiRunState (WrapRequest (LaunchRequest req)) = SU.unsupported $ show req- getStateRequest GHCiRunState (WrapRequest (DisconnectRequest req)) = SU.unsupported $ show req- getStateRequest GHCiRunState (WrapRequest (PauseRequest req)) = SU.unsupported $ show req- - getStateRequest GHCiRunState (WrapRequest (TerminateRequest req)) = return . WrapStateRequest $ GHCiRun_Terminate req- getStateRequest GHCiRunState (WrapRequest (SetBreakpointsRequest req)) = return . WrapStateRequest $ GHCiRun_SetBreakpoints req- getStateRequest GHCiRunState (WrapRequest (SetFunctionBreakpointsRequest req)) = return . WrapStateRequest $ GHCiRun_SetFunctionBreakpoints req- getStateRequest GHCiRunState (WrapRequest (SetExceptionBreakpointsRequest req)) = return . WrapStateRequest $ GHCiRun_SetExceptionBreakpoints req- getStateRequest GHCiRunState (WrapRequest (ConfigurationDoneRequest req)) = return . WrapStateRequest $ GHCiRun_ConfigurationDone req- - getStateRequest GHCiRunState (WrapRequest (ThreadsRequest req)) = return . WrapStateRequest $ GHCiRun_Threads req- getStateRequest GHCiRunState (WrapRequest (StackTraceRequest req)) = return . WrapStateRequest $ GHCiRun_StackTrace req- getStateRequest GHCiRunState (WrapRequest (ScopesRequest req)) = return . WrapStateRequest $ GHCiRun_Scopes req- getStateRequest GHCiRunState (WrapRequest (VariablesRequest req)) = return . WrapStateRequest $ GHCiRun_Variables req+ doActivity s (WrapRequest r@InitializeRequest{}) = action2 s r+ doActivity s (WrapRequest r@LaunchRequest{}) = action2 s r+ doActivity s (WrapRequest r@DisconnectRequest{}) = action2 s r+ doActivity s (WrapRequest r@PauseRequest{}) = action2 s r+ doActivity s (WrapRequest r@TerminateRequest{}) = action2 s r+ doActivity s (WrapRequest r@SetBreakpointsRequest{}) = action2 s r+ doActivity s (WrapRequest r@SetFunctionBreakpointsRequest{}) = action2 s r+ doActivity s (WrapRequest r@SetExceptionBreakpointsRequest{}) = action2 s r+ doActivity s (WrapRequest r@ConfigurationDoneRequest{}) = action2 s r+ doActivity s (WrapRequest r@ThreadsRequest{}) = action2 s r+ doActivity s (WrapRequest r@StackTraceRequest{}) = action2 s r+ doActivity s (WrapRequest r@ScopesRequest{}) = action2 s r+ doActivity s (WrapRequest r@VariablesRequest{}) = action2 s r+ doActivity s (WrapRequest r@ContinueRequest{}) = action2 s r+ doActivity s (WrapRequest r@NextRequest{}) = action2 s r+ doActivity s (WrapRequest r@StepInRequest{}) = action2 s r+ doActivity s (WrapRequest r@EvaluateRequest{}) = action2 s r+ doActivity s (WrapRequest r@CompletionsRequest{}) = action2 s r+ doActivity s (WrapRequest r@InternalTransitRequest{}) = action2 s r+ doActivity s (WrapRequest r@InternalTerminateRequest{}) = action2 s r+ doActivity s (WrapRequest r@InternalLoadRequest{}) = action2 s r - getStateRequest GHCiRunState (WrapRequest (ContinueRequest req)) = return . WrapStateRequest $ GHCiRun_Continue req- getStateRequest GHCiRunState (WrapRequest (NextRequest req)) = return . WrapStateRequest $ GHCiRun_Next req- getStateRequest GHCiRunState (WrapRequest (StepInRequest req)) = return . WrapStateRequest $ GHCiRun_StepIn req+-- |+-- default nop.+--+instance StateActivityIF GHCiRunStateData DAP.InitializeRequest - getStateRequest GHCiRunState (WrapRequest (EvaluateRequest req)) = return . WrapStateRequest $ GHCiRun_Evaluate req- getStateRequest GHCiRunState (WrapRequest (CompletionsRequest req)) = return . WrapStateRequest $ GHCiRun_Completions req+-- |+-- default nop.+--+instance StateActivityIF GHCiRunStateData DAP.LaunchRequest - getStateRequest GHCiRunState (WrapRequest (InternalTransitRequest req)) = SU.unsupported $ show req+-- |+-- default nop.+--+instance StateActivityIF GHCiRunStateData DAP.DisconnectRequest - getStateRequest GHCiRunState (WrapRequest (InternalTerminateRequest req)) = return . WrapStateRequest $ GHCiRun_InternalTerminate req- getStateRequest GHCiRunState (WrapRequest (InternalLoadRequest req)) = return . WrapStateRequest $ GHCiRun_InternalLoad req+-- |+-- default nop.+--+instance StateActivityIF GHCiRunStateData DAP.PauseRequest +-- |+-- Any errors should be sent back as False result Response+--+instance StateActivityIF GHCiRunStateData DAP.TerminateRequest where+ action2 _ (TerminateRequest req) = do+ liftIO $ L.debugM _LOG_APP $ "GHCiRunState TerminateRequest called. " ++ show req + SU.terminateRequest req++ return $ Just GHCiRun_Shutdown+ -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.SetBreakpointsRequest where- action (GHCiRun_SetBreakpoints req) = do+instance StateActivityIF GHCiRunStateData DAP.SetBreakpointsRequest where+ action2 _ (SetBreakpointsRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState SetBreakpointsRequest called. " ++ show req SU.setBreakpointsRequest req -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.SetExceptionBreakpointsRequest where- action (GHCiRun_SetExceptionBreakpoints req) = do+instance StateActivityIF GHCiRunStateData DAP.SetExceptionBreakpointsRequest where+ action2 _ (SetExceptionBreakpointsRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState SetExceptionBreakpointsRequest called. " ++ show req SU.setExceptionBreakpointsRequest req -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.SetFunctionBreakpointsRequest where- action (GHCiRun_SetFunctionBreakpoints req) = do+instance StateActivityIF GHCiRunStateData DAP.SetFunctionBreakpointsRequest where+ action2 _ (SetFunctionBreakpointsRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState SetFunctionBreakpointsRequest called. " ++ show req SU.setFunctionBreakpointsRequest req - -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.TerminateRequest where- action (GHCiRun_Terminate req) = do- liftIO $ L.debugM _LOG_APP $ "GHCiRunState TerminateRequest called. " ++ show req-- SU.terminateRequest req-- return $ Just GHCiRun_Shutdown----- |--- Any errors should be sent back as False result Response----instance StateRequestIF GHCiRunState DAP.ThreadsRequest where- action (GHCiRun_Threads req) = do+instance StateActivityIF GHCiRunStateData DAP.ThreadsRequest where+ action2 _ (ThreadsRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState ThreadsRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultThreadsResponse {@@ -112,13 +123,11 @@ U.addResponse $ ThreadsResponse res return Nothing -- -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.StackTraceRequest where- action (GHCiRun_StackTrace req) = do+instance StateActivityIF GHCiRunStateData DAP.StackTraceRequest where+ action2 _ (StackTraceRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState StackTraceRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultStackTraceResponse {@@ -131,13 +140,11 @@ U.addResponse $ StackTraceResponse res return Nothing -- -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.ScopesRequest where- action (GHCiRun_Scopes req) = do+instance StateActivityIF GHCiRunStateData DAP.ScopesRequest where+ action2 _ (ScopesRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState ScopesRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultScopesResponse {@@ -150,13 +157,11 @@ U.addResponse $ ScopesResponse res return Nothing -- -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.VariablesRequest where- action (GHCiRun_Variables req) = do+instance StateActivityIF GHCiRunStateData DAP.VariablesRequest where+ action2 _ (VariablesRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState VariablesRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultVariablesResponse {@@ -170,12 +175,11 @@ return Nothing - -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.ContinueRequest where- action (GHCiRun_Continue req) = do+instance StateActivityIF GHCiRunStateData DAP.ContinueRequest where+ action2 _ (ContinueRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState ContinueRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultContinueResponse {@@ -192,8 +196,8 @@ -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.NextRequest where- action (GHCiRun_Next req) = do+instance StateActivityIF GHCiRunStateData DAP.NextRequest where+ action2 _ (NextRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState NextRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultNextResponse {@@ -210,8 +214,8 @@ -- | -- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.StepInRequest where- action (GHCiRun_StepIn req) = do+instance StateActivityIF GHCiRunStateData DAP.StepInRequest where+ action2 _ (StepInRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState StepInRequest called. " ++ show req resSeq <- U.getIncreasedResponseSequence let res = DAP.defaultStepInResponse {@@ -225,37 +229,43 @@ return $ Just GHCiRun_DebugRun - -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.EvaluateRequest where- action (GHCiRun_Evaluate req) = do+instance StateActivityIF GHCiRunStateData DAP.EvaluateRequest where+ action2 _ (EvaluateRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState EvaluateRequest called. " ++ show req SU.evaluateRequest req -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.CompletionsRequest where- action (GHCiRun_Completions req) = do+instance StateActivityIF GHCiRunStateData DAP.CompletionsRequest where+ action2 _ (CompletionsRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState CompletionsRequest called. " ++ show req SU.completionsRequest req +-- |+-- default nop.+--+instance StateActivityIF GHCiRunStateData HdaInternalTransitRequest -- |--- Any errors should be critical. don't catch anything here.+-- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState HdaInternalTerminateRequest where- action (GHCiRun_InternalTerminate req) = do+instance StateActivityIF GHCiRunStateData HdaInternalTerminateRequest where+ action2 _ (InternalTerminateRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState InternalTerminateRequest called. " ++ show req SU.internalTerminateRequest return $ Just GHCiRun_Shutdown- -- |+-- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState HdaInternalLoadRequest where- action (GHCiRun_InternalLoad req) = do- liftIO $ L.debugM _LOG_APP $ "GHCiRunState InternalLoadRequest called. " ++ show req- SU.loadHsFile $ pathHdaInternalLoadRequest req- return $ Just GHCiRun_Contaminated+instance StateActivityIF GHCiRunStateData HdaInternalLoadRequest where+ action2 _ (InternalLoadRequest req) = do+ liftIO $ L.debugM _LOG_APP $ "GHCiRunState InternalTerminateRequest called. " ++ show req+ SU.internalTerminateRequest+ return $ Just GHCiRun_Shutdown+
src/Haskell/Debug/Adapter/State/GHCiRun/ConfigurationDone.hs view
@@ -15,10 +15,10 @@ import qualified Haskell.Debug.Adapter.Utility as U -- |--- Any errors should be critical. don't catch anything here.+-- Any errors should be sent back as False result Response ---instance StateRequestIF GHCiRunState DAP.ConfigurationDoneRequest where- action (GHCiRun_ConfigurationDone req) = do+instance StateActivityIF GHCiRunStateData DAP.ConfigurationDoneRequest where+ action2 _ (ConfigurationDoneRequest req) = do liftIO $ L.debugM _LOG_APP $ "GHCiRunState ConfigurationDoneRequest called. " ++ show req app req @@ -40,7 +40,7 @@ } U.addResponse $ ConfigurationDoneResponse res- + -- launch response must be sent after configuration done response. reqSeq <- view launchReqSeqAppStores <$> get resSeq <- U.getIncreasedResponseSequence
src/Haskell/Debug/Adapter/State/Init.hs view
@@ -6,17 +6,17 @@ import Control.Monad.IO.Class import Control.Monad.Except import qualified System.Log.Logger as L+import qualified Haskell.DAP as DAP import Haskell.Debug.Adapter.Type import Haskell.Debug.Adapter.Constant import Haskell.Debug.Adapter.State.Init.Initialize() import Haskell.Debug.Adapter.State.Init.Launch()-import qualified Haskell.Debug.Adapter.State.Utility as SU --- | +-- | ---instance AppStateIF InitState where+instance AppStateIF InitStateData where -- | -- entryAction InitState = do@@ -29,28 +29,123 @@ liftIO $ L.debugM _LOG_APP "InitState exitAction called." return () - -- | + -- | --- getStateRequest InitState (WrapRequest (InitializeRequest req)) = return . WrapStateRequest $ Init_Initialize req- getStateRequest InitState (WrapRequest (LaunchRequest req)) = return . WrapStateRequest $ Init_Launch req- getStateRequest InitState (WrapRequest (DisconnectRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (PauseRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (TerminateRequest req)) = SU.unsupported $ show req- - getStateRequest InitState (WrapRequest (SetBreakpointsRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (SetFunctionBreakpointsRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (SetExceptionBreakpointsRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (ConfigurationDoneRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (ThreadsRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (StackTraceRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (ScopesRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (VariablesRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (ContinueRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (NextRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (StepInRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (EvaluateRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (CompletionsRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (InternalTransitRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (InternalTerminateRequest req)) = SU.unsupported $ show req- getStateRequest InitState (WrapRequest (InternalLoadRequest req)) = SU.unsupported $ show req+ doActivity s (WrapRequest r@InitializeRequest{}) = action2 s r+ doActivity s (WrapRequest r@LaunchRequest{}) = action2 s r+ doActivity s (WrapRequest r@DisconnectRequest{}) = action2 s r+ doActivity s (WrapRequest r@PauseRequest{}) = action2 s r+ doActivity s (WrapRequest r@TerminateRequest{}) = action2 s r+ doActivity s (WrapRequest r@SetBreakpointsRequest{}) = action2 s r+ doActivity s (WrapRequest r@SetFunctionBreakpointsRequest{}) = action2 s r+ doActivity s (WrapRequest r@SetExceptionBreakpointsRequest{}) = action2 s r+ doActivity s (WrapRequest r@ConfigurationDoneRequest{}) = action2 s r+ doActivity s (WrapRequest r@ThreadsRequest{}) = action2 s r+ doActivity s (WrapRequest r@StackTraceRequest{}) = action2 s r+ doActivity s (WrapRequest r@ScopesRequest{}) = action2 s r+ doActivity s (WrapRequest r@VariablesRequest{}) = action2 s r+ doActivity s (WrapRequest r@ContinueRequest{}) = action2 s r+ doActivity s (WrapRequest r@NextRequest{}) = action2 s r+ doActivity s (WrapRequest r@StepInRequest{}) = action2 s r+ doActivity s (WrapRequest r@EvaluateRequest{}) = action2 s r+ doActivity s (WrapRequest r@CompletionsRequest{}) = action2 s r+ doActivity s (WrapRequest r@InternalTransitRequest{}) = action2 s r+ doActivity s (WrapRequest r@InternalTerminateRequest{}) = action2 s r+ doActivity s (WrapRequest r@InternalLoadRequest{}) = action2 s r++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.DisconnectRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.PauseRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.TerminateRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.SetBreakpointsRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.SetFunctionBreakpointsRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.SetExceptionBreakpointsRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.ConfigurationDoneRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.ThreadsRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.StackTraceRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.ScopesRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.VariablesRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.ContinueRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.NextRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.StepInRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.EvaluateRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData DAP.CompletionsRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData HdaInternalTransitRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData HdaInternalTerminateRequest++-- |+-- default nop.+--+instance StateActivityIF InitStateData HdaInternalLoadRequest+
src/Haskell/Debug/Adapter/State/Init/Initialize.hs view
@@ -12,11 +12,13 @@ import qualified Haskell.Debug.Adapter.Utility as U import Haskell.Debug.Adapter.Utility ++ -- | -- Any errors should be critical. don't catch anything here. ---instance StateRequestIF InitState DAP.InitializeRequest where- action (Init_Initialize req) = do+instance StateActivityIF InitStateData DAP.InitializeRequest where+ action2 _ (InitializeRequest req) = do liftIO $ L.debugM _LOG_APP $ "InitState InitializeRequest called. " ++ show req app req
src/Haskell/Debug/Adapter/State/Init/Launch.hs view
@@ -26,22 +26,22 @@ import qualified Haskell.Debug.Adapter.Logger as L import qualified Haskell.Debug.Adapter.GHCi as P + -- | -- Any errors should be critical. don't catch anything here. ---instance StateRequestIF InitState DAP.LaunchRequest where- action (Init_Launch req) = do+instance StateActivityIF InitStateData DAP.LaunchRequest where+ action2 _ (LaunchRequest req) = do liftIO $ L.debugM _LOG_APP $ "InitState LaunchRequest called. " ++ show req app req - -- | -- @see https://github.com/Microsoft/vscode/issues/4902 -- @see https://microsoft.github.io/debug-adapter-protocol/overview--- +-- app :: DAP.LaunchRequest -> AppContext (Maybe StateTransit) app req = flip catchError errHdl $ do- + setUpConfig req setUpLogger req createTasksJsonFile@@ -66,7 +66,7 @@ -- ConfigurationDone request. initSeq <- U.getIncreasedResponseSequence U.addResponse $ InitializedEvent $ DAP.defaultInitializedEvent {DAP.seqInitializedEvent = initSeq}- + return $ Just Init_GHCiRun where@@ -93,7 +93,7 @@ setUpConfig req = do let args = DAP.argumentsLaunchRequest req appStores <- get- + let wsMVar = appStores^.workspaceAppStores ws = DAP.workspaceLaunchRequestArguments args _ <- liftIO $ takeMVar wsMVar@@ -154,13 +154,13 @@ -- checkDir jsonDir = liftIO (doesDirectoryExist jsonDir) >>= \case False -> throwError $ "setting folder not found. skip saveing tasks.json. DIR:" ++ jsonDir- True -> return () + True -> return () -- | -- checkFile jsonFile = liftIO (doesFileExist jsonFile) >>= \case True -> throwError $ "tasks.json file exists. " ++ jsonFile- False -> return () + False -> return () -- | --@@ -179,7 +179,7 @@ cmdStr = DAP.ghciCmdLaunchRequestArguments args cmdList = filter (not.null) $ U.split " " cmdStr cmd = head cmdList- + U.debugEV _LOG_APP $ show cmdList opts <- addWithGHC (tail cmdList)
src/Haskell/Debug/Adapter/State/Shutdown.hs view
@@ -12,9 +12,9 @@ import Haskell.Debug.Adapter.Constant --- | +-- | ---instance AppStateIF ShutdownState where+instance AppStateIF ShutdownStateData where -- | -- entryAction ShutdownState = do@@ -24,7 +24,7 @@ return () - + -- | -- exitAction ShutdownState = do@@ -32,10 +32,10 @@ throwError msg - -- | + -- | --- getStateRequest ShutdownState _ = do+ doActivity ShutdownState _ = do let msg = "ShutdownState does not support any request."- throwError msg-+ infoEV _LOG_APP msg+ return Nothing
src/Haskell/Debug/Adapter/State/Utility.hs view
@@ -17,14 +17,6 @@ import qualified Haskell.Debug.Adapter.GHCi as P --- | ----unsupported :: String -> AppContext WrapStateRequest-unsupported reqStr = do- let msg = "InitState does not support this request. " ++ reqStr- throwError msg-- -- | -- setBreakpointsRequest :: DAP.SetBreakpointsRequest -> AppContext (Maybe StateTransit)@@ -39,7 +31,7 @@ P.expectH $ P.funcCallBk lineCallBk return Nothing- + where lineCallBk :: Bool -> String -> AppContext () lineCallBk True s = U.sendStdoutEvent s@@ -102,13 +94,13 @@ U.addResponse $ SetExceptionBreakpointsResponse res return Nothing- + where getOptions filters | null filters = ["-fno-break-on-exception", "-fno-break-on-error"] | filters == ["break-on-error"] = ["-fno-break-on-exception", "-fbreak-on-error"] | filters == ["break-on-exception"] = ["-fbreak-on-exception", "-fno-break-on-error"]- | otherwise = ["-fbreak-on-exception", "-fbreak-on-error" ] + | otherwise = ["-fbreak-on-exception", "-fbreak-on-error" ] go opt = do let cmd = ":set " ++ opt@@ -132,7 +124,7 @@ P.expectH $ P.funcCallBk lineCallBk return Nothing- + where lineCallBk :: Bool -> String -> AppContext () lineCallBk True s = U.sendStdoutEvent s@@ -203,7 +195,7 @@ P.expectH $ P.funcCallBk lineCallBk return Nothing- + where lineCallBk :: Bool -> String -> AppContext () lineCallBk True s = U.sendStdoutEvent s@@ -276,7 +268,7 @@ U.addResponse $ CompletionsResponse res return Nothing- + where -- | --
src/Haskell/Debug/Adapter/Type.hs view
@@ -2,10 +2,10 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE StandaloneDeriving #-} module Haskell.Debug.Adapter.Type where - import Data.Default import Control.Lens import Data.Aeson@@ -17,12 +17,12 @@ import qualified System.IO as S import qualified Data.Text as T import qualified System.Log.Logger as L---import qualified Data.ByteString as B import qualified System.Process as S import qualified Data.Version as V import qualified Haskell.DAP as DAP import Haskell.Debug.Adapter.TH.Utility+import Haskell.Debug.Adapter.Constant -------------------------------------------------------------------------------- instance FromJSON L.Priority where@@ -38,10 +38,10 @@ toJSON (L.CRITICAL) = String $ T.pack "CRITICAL" toJSON (L.ALERT) = String $ T.pack "ALERT" toJSON (L.EMERGENCY) = String $ T.pack "EMERGENCY"- + -------------------------------------------------------------------------------- -- | Config Data--- +-- data ConfigData = ConfigData { _workDirConfigData :: FilePath , _logFileConfigData :: FilePath@@ -53,7 +53,7 @@ instance Default ConfigData where def = ConfigData { _workDirConfigData = "."- , _logFileConfigData = "haskell-debug-adapter.log" + , _logFileConfigData = "haskell-debug-adapter.log" , _logLevelConfigData = L.WARNING } @@ -84,7 +84,7 @@ } deriving (Show, Read, Eq) $(deriveJSON defaultOptions { fieldLabelModifier = fieldModifier "HdaInternalTransitRequest" } ''HdaInternalTransitRequest)- + data HdaInternalTerminateRequest = HdaInternalTerminateRequest { msgHdaInternalTerminateRequest :: String } deriving (Show, Read, Eq)@@ -99,7 +99,7 @@ -------------------------------------------------------------------------------- -- | DAP Request Data--- +-- $(deriveJSON defaultOptions {fieldLabelModifier = rdrop "Source"} ''DAP.Source)@@ -171,7 +171,7 @@ -- request-data Request a where +data Request a where InitializeRequest :: DAP.InitializeRequest -> Request DAP.InitializeRequest LaunchRequest :: DAP.LaunchRequest -> Request DAP.LaunchRequest DisconnectRequest :: DAP.DisconnectRequest -> Request DAP.DisconnectRequest@@ -194,11 +194,13 @@ InternalTerminateRequest :: HdaInternalTerminateRequest -> Request HdaInternalTerminateRequest InternalLoadRequest :: HdaInternalLoadRequest -> Request HdaInternalLoadRequest +deriving instance Show r => Show (Request r)+ data WrapRequest = forall a. WrapRequest (Request a) -------------------------------------------------------------------------------- -- | DAP Response Data--- +-- -- jsonize $(deriveJSON defaultOptions {fieldLabelModifier = rdrop "Response"} ''DAP.Response)@@ -269,7 +271,7 @@ -- response-data Response = +data Response = InitializeResponse DAP.InitializeResponse | LaunchResponse DAP.LaunchResponse | OutputEvent DAP.OutputEvent@@ -300,160 +302,59 @@ -------------------------------------------------------------------------------- -- | State--- -data InitState-data GHCiRunState-data DebugRunState-data ContaminatedState-data ShutdownState+--+data InitStateData = InitStateData deriving (Show, Eq)+data GHCiRunStateData = GHCiRunStateData deriving (Show, Eq)+data DebugRunStateData = DebugRunStateData deriving (Show, Eq)+data ContaminatedStateData = ContaminatedStateData deriving (Show, Eq)+data ShutdownStateData = ShutdownStateData deriving (Show, Eq) data AppState s where- InitState :: AppState InitState- GHCiRunState :: AppState GHCiRunState- DebugRunState :: AppState DebugRunState- ShutdownState :: AppState ShutdownState- ContaminatedState :: AppState ContaminatedState+ InitState :: AppState InitStateData+ GHCiRunState :: AppState GHCiRunStateData+ DebugRunState :: AppState DebugRunStateData+ ShutdownState :: AppState ShutdownStateData+ ContaminatedState :: AppState ContaminatedStateData +deriving instance Show s => Show (AppState s)+ class AppStateIF s where entryAction :: (AppState s) -> AppContext () exitAction :: (AppState s) -> AppContext ()- getStateRequest :: (AppState s) -> WrapRequest -> AppContext WrapStateRequest+ doActivity :: (AppState s) -> WrapRequest -> AppContext (Maybe StateTransit) -data WrapAppState = forall s. (AppStateIF s) => WrapAppState (AppState s)+data WrapAppState = forall s. (AppStateIF s) => WrapAppState (AppState s) class WrapAppStateIF s where entryActionW :: s -> AppContext () exitActionW :: s -> AppContext ()- getStateRequestW :: s -> WrapRequest -> AppContext WrapStateRequest+ doActivityW :: s -> WrapRequest -> AppContext (Maybe StateTransit) instance WrapAppStateIF WrapAppState where entryActionW (WrapAppState s) = entryAction s exitActionW (WrapAppState s) = exitAction s- getStateRequestW (WrapAppState s) r = getStateRequest s r- ------------------------------------------------------------------------------------------data StateRequest s r where- Init_Initialize :: DAP.InitializeRequest -> StateRequest InitState DAP.InitializeRequest- Init_Launch :: DAP.LaunchRequest -> StateRequest InitState DAP.LaunchRequest- Init_Terminate :: DAP.TerminateRequest -> StateRequest InitState DAP.TerminateRequest- Init_SetBreakpoints :: DAP.SetBreakpointsRequest -> StateRequest InitState DAP.SetBreakpointsRequest- Init_SetFunctionBreakpoints :: DAP.SetFunctionBreakpointsRequest -> StateRequest InitState DAP.SetFunctionBreakpointsRequest- Init_SetExceptionBreakpoints :: DAP.SetExceptionBreakpointsRequest -> StateRequest InitState DAP.SetExceptionBreakpointsRequest- Init_ConfigurationDone :: DAP.ConfigurationDoneRequest -> StateRequest InitState DAP.ConfigurationDoneRequest- Init_Threads :: DAP.ThreadsRequest -> StateRequest InitState DAP.ThreadsRequest- Init_StackTrace :: DAP.StackTraceRequest -> StateRequest InitState DAP.StackTraceRequest- Init_Scopes :: DAP.ScopesRequest -> StateRequest InitState DAP.ScopesRequest- Init_Variables :: DAP.VariablesRequest -> StateRequest InitState DAP.VariablesRequest- Init_Continue :: DAP.ContinueRequest -> StateRequest InitState DAP.ContinueRequest- Init_Next :: DAP.NextRequest -> StateRequest InitState DAP.NextRequest- Init_StepIn :: DAP.StepInRequest -> StateRequest InitState DAP.StepInRequest- Init_Evaluate :: DAP.EvaluateRequest -> StateRequest InitState DAP.EvaluateRequest- Init_Completions :: DAP.CompletionsRequest -> StateRequest InitState DAP.CompletionsRequest- Init_InternalTerminate :: HdaInternalTerminateRequest -> StateRequest InitState HdaInternalTerminateRequest- Init_InternalLoad :: HdaInternalLoadRequest -> StateRequest InitState HdaInternalLoadRequest-- GHCiRun_Initialize :: DAP.InitializeRequest -> StateRequest GHCiRunState DAP.InitializeRequest- GHCiRun_Launch :: DAP.LaunchRequest -> StateRequest GHCiRunState DAP.LaunchRequest- GHCiRun_Terminate :: DAP.TerminateRequest -> StateRequest GHCiRunState DAP.TerminateRequest- GHCiRun_SetBreakpoints :: DAP.SetBreakpointsRequest -> StateRequest GHCiRunState DAP.SetBreakpointsRequest- GHCiRun_SetFunctionBreakpoints :: DAP.SetFunctionBreakpointsRequest -> StateRequest GHCiRunState DAP.SetFunctionBreakpointsRequest- GHCiRun_SetExceptionBreakpoints :: DAP.SetExceptionBreakpointsRequest -> StateRequest GHCiRunState DAP.SetExceptionBreakpointsRequest- GHCiRun_ConfigurationDone :: DAP.ConfigurationDoneRequest -> StateRequest GHCiRunState DAP.ConfigurationDoneRequest- GHCiRun_Threads :: DAP.ThreadsRequest -> StateRequest GHCiRunState DAP.ThreadsRequest- GHCiRun_StackTrace :: DAP.StackTraceRequest -> StateRequest GHCiRunState DAP.StackTraceRequest- GHCiRun_Scopes :: DAP.ScopesRequest -> StateRequest GHCiRunState DAP.ScopesRequest- GHCiRun_Variables :: DAP.VariablesRequest -> StateRequest GHCiRunState DAP.VariablesRequest- GHCiRun_Continue :: DAP.ContinueRequest -> StateRequest GHCiRunState DAP.ContinueRequest- GHCiRun_Next :: DAP.NextRequest -> StateRequest GHCiRunState DAP.NextRequest- GHCiRun_StepIn :: DAP.StepInRequest -> StateRequest GHCiRunState DAP.StepInRequest- GHCiRun_Evaluate :: DAP.EvaluateRequest -> StateRequest GHCiRunState DAP.EvaluateRequest- GHCiRun_Completions :: DAP.CompletionsRequest -> StateRequest GHCiRunState DAP.CompletionsRequest- GHCiRun_InternalTerminate :: HdaInternalTerminateRequest -> StateRequest GHCiRunState HdaInternalTerminateRequest- GHCiRun_InternalLoad :: HdaInternalLoadRequest -> StateRequest GHCiRunState HdaInternalLoadRequest-- DebugRun_Initialize :: DAP.InitializeRequest -> StateRequest DebugRunState DAP.InitializeRequest- DebugRun_Launch :: DAP.LaunchRequest -> StateRequest DebugRunState DAP.LaunchRequest- DebugRun_Terminate :: DAP.TerminateRequest -> StateRequest DebugRunState DAP.TerminateRequest- DebugRun_SetBreakpoints :: DAP.SetBreakpointsRequest -> StateRequest DebugRunState DAP.SetBreakpointsRequest- DebugRun_SetFunctionBreakpoints :: DAP.SetFunctionBreakpointsRequest -> StateRequest DebugRunState DAP.SetFunctionBreakpointsRequest- DebugRun_SetExceptionBreakpoints :: DAP.SetExceptionBreakpointsRequest -> StateRequest DebugRunState DAP.SetExceptionBreakpointsRequest- DebugRun_ConfigurationDone :: DAP.ConfigurationDoneRequest -> StateRequest DebugRunState DAP.ConfigurationDoneRequest- DebugRun_Threads :: DAP.ThreadsRequest -> StateRequest DebugRunState DAP.ThreadsRequest- DebugRun_StackTrace :: DAP.StackTraceRequest -> StateRequest DebugRunState DAP.StackTraceRequest- DebugRun_Scopes :: DAP.ScopesRequest -> StateRequest DebugRunState DAP.ScopesRequest- DebugRun_Variables :: DAP.VariablesRequest -> StateRequest DebugRunState DAP.VariablesRequest- DebugRun_Continue :: DAP.ContinueRequest -> StateRequest DebugRunState DAP.ContinueRequest- DebugRun_Next :: DAP.NextRequest -> StateRequest DebugRunState DAP.NextRequest- DebugRun_StepIn :: DAP.StepInRequest -> StateRequest DebugRunState DAP.StepInRequest- DebugRun_Evaluate :: DAP.EvaluateRequest -> StateRequest DebugRunState DAP.EvaluateRequest- DebugRun_Completions :: DAP.CompletionsRequest -> StateRequest DebugRunState DAP.CompletionsRequest- DebugRun_InternalTerminate :: HdaInternalTerminateRequest -> StateRequest DebugRunState HdaInternalTerminateRequest- DebugRun_InternalLoad :: HdaInternalLoadRequest -> StateRequest DebugRunState HdaInternalLoadRequest-- Shutdown_Initialize :: DAP.InitializeRequest -> StateRequest ShutdownState DAP.InitializeRequest- Shutdown_Launch :: DAP.LaunchRequest -> StateRequest ShutdownState DAP.LaunchRequest- Shutdown_Terminate :: DAP.TerminateRequest -> StateRequest ShutdownState DAP.TerminateRequest- Shutdown_SetBreakpoints :: DAP.SetBreakpointsRequest -> StateRequest ShutdownState DAP.SetBreakpointsRequest- Shutdown_SetFunctionBreakpoints :: DAP.SetFunctionBreakpointsRequest -> StateRequest ShutdownState DAP.SetFunctionBreakpointsRequest- Shutdown_SetExceptionBreakpoints :: DAP.SetExceptionBreakpointsRequest -> StateRequest ShutdownState DAP.SetExceptionBreakpointsRequest- Shutdown_ConfigurationDone :: DAP.ConfigurationDoneRequest -> StateRequest ShutdownState DAP.ConfigurationDoneRequest- Shutdown_Threads :: DAP.ThreadsRequest -> StateRequest ShutdownState DAP.ThreadsRequest- Shutdown_StackTrace :: DAP.StackTraceRequest -> StateRequest ShutdownState DAP.StackTraceRequest- Shutdown_Scopes :: DAP.ScopesRequest -> StateRequest ShutdownState DAP.ScopesRequest- Shutdown_Variables :: DAP.VariablesRequest -> StateRequest ShutdownState DAP.VariablesRequest- Shutdown_Continue :: DAP.ContinueRequest -> StateRequest ShutdownState DAP.ContinueRequest- Shutdown_Next :: DAP.NextRequest -> StateRequest ShutdownState DAP.NextRequest- Shutdown_StepIn :: DAP.StepInRequest -> StateRequest ShutdownState DAP.StepInRequest- Shutdown_Evaluate :: DAP.EvaluateRequest -> StateRequest ShutdownState DAP.EvaluateRequest- Shutdown_Completions :: DAP.CompletionsRequest -> StateRequest ShutdownState DAP.CompletionsRequest- Shutdown_InternalTerminate :: HdaInternalTerminateRequest -> StateRequest ShutdownState HdaInternalTerminateRequest- Shutdown_InternalLoad :: HdaInternalLoadRequest -> StateRequest ShutdownState HdaInternalLoadRequest-- Contaminated_Initialize :: DAP.InitializeRequest -> StateRequest ContaminatedState DAP.InitializeRequest- Contaminated_Launch :: DAP.LaunchRequest -> StateRequest ContaminatedState DAP.LaunchRequest- Contaminated_Terminate :: DAP.TerminateRequest -> StateRequest ContaminatedState DAP.TerminateRequest- Contaminated_SetBreakpoints :: DAP.SetBreakpointsRequest -> StateRequest ContaminatedState DAP.SetBreakpointsRequest- Contaminated_SetFunctionBreakpoints :: DAP.SetFunctionBreakpointsRequest -> StateRequest ContaminatedState DAP.SetFunctionBreakpointsRequest- Contaminated_SetExceptionBreakpoints :: DAP.SetExceptionBreakpointsRequest -> StateRequest ContaminatedState DAP.SetExceptionBreakpointsRequest- Contaminated_ConfigurationDone :: DAP.ConfigurationDoneRequest -> StateRequest ContaminatedState DAP.ConfigurationDoneRequest- Contaminated_Threads :: DAP.ThreadsRequest -> StateRequest ContaminatedState DAP.ThreadsRequest- Contaminated_StackTrace :: DAP.StackTraceRequest -> StateRequest ContaminatedState DAP.StackTraceRequest- Contaminated_Scopes :: DAP.ScopesRequest -> StateRequest ContaminatedState DAP.ScopesRequest- Contaminated_Variables :: DAP.VariablesRequest -> StateRequest ContaminatedState DAP.VariablesRequest- Contaminated_Continue :: DAP.ContinueRequest -> StateRequest ContaminatedState DAP.ContinueRequest- Contaminated_Next :: DAP.NextRequest -> StateRequest ContaminatedState DAP.NextRequest- Contaminated_StepIn :: DAP.StepInRequest -> StateRequest ContaminatedState DAP.StepInRequest- Contaminated_Evaluate :: DAP.EvaluateRequest -> StateRequest ContaminatedState DAP.EvaluateRequest- Contaminated_Completions :: DAP.CompletionsRequest -> StateRequest ContaminatedState DAP.CompletionsRequest- Contaminated_InternalTerminate :: HdaInternalTerminateRequest -> StateRequest ContaminatedState HdaInternalTerminateRequest- Contaminated_InternalLoad :: HdaInternalLoadRequest -> StateRequest ContaminatedState HdaInternalLoadRequest--class StateRequestIF s r where- action :: (StateRequest s r) -> AppContext (Maybe StateTransit)--data WrapStateRequest = forall s r. (StateRequestIF s r) => WrapStateRequest (StateRequest s r)--class WrapStateRequestIF w where- actionW :: w -> AppContext (Maybe StateTransit)--instance WrapStateRequestIF WrapStateRequest where- actionW (WrapStateRequest x) = action x-+ doActivityW (WrapAppState s) r = doActivity s r +-- |+--+class (Show s, Show r) => StateActivityIF s r where+ action2 :: (AppState s) -> (Request r) -> AppContext (Maybe StateTransit)+ --action2 _ _ = return Nothing+ action2 s r = do+ liftIO $ L.warningM _LOG_APP $ show s ++ " " ++ show r ++ " not supported. nop."+ return Nothing -------------------------------------------------------------------------------- -- | Event--- +-- data Event = CriticalExitEvent deriving (Show, Read, Eq) ----------------------------------------------------------------------------------- | --- +-- |+-- data GHCiProc = GHCiProc { _wHdLGHCiProc :: S.Handle , _rHdlGHCiProc :: S.Handle@@ -464,14 +365,14 @@ -------------------------------------------------------------------------------- -- | Application Context--- - +--+ type ErrMsg = String-type AppContext = StateT AppStores (ExceptT ErrMsg IO) +type AppContext = StateT AppStores (ExceptT ErrMsg IO) -- | Application Context Data--- +-- data AppStores = AppStores { -- Read Only _appNameAppStores :: String@@ -501,7 +402,7 @@ , _ghciProcAppStores :: MVar GHCiProc --, _ghciStdoutAppStores :: MVar B.ByteString , _ghciVerAppStores :: MVar V.Version- } + } makeLenses ''AppStores makeLenses ''GHCiProc