phoityne-vscode-0.0.1.0: app/Phoityne/IO/GUI/VSCode/TH/EvaluateResponseJSON.hs
{-# LANGUAGE TemplateHaskell #-}
module Phoityne.IO.GUI.VSCode.TH.EvaluateResponseJSON where
import Data.Aeson.TH
import Phoityne.Utility
import Phoityne.IO.GUI.VSCode.TH.EvaluateBodyJSON
import Phoityne.IO.GUI.VSCode.TH.EvaluateRequestJSON
-- |
-- Response to "evaluate" request.
--
data EvaluateResponse =
EvaluateResponse {
seqEvaluateResponse :: Int -- Sequence number
, typeEvaluateResponse :: String -- One of "request", "response", or "event"
, request_seqEvaluateResponse :: Int -- Sequence number of the corresponding request
, successEvaluateResponse :: Bool -- Outcome of the request
, commandEvaluateResponse :: String -- The command requested
, messageEvaluateResponse :: String -- Contains error message if success == false.
, bodyEvaluateResponse :: EvaluateBody
} deriving (Show, Read, Eq)
$(deriveJSON defaultOptions { fieldLabelModifier = rdrop (length "EvaluateResponse") } ''EvaluateResponse)
-- |
--
defaultEvaluateResponse :: Int -> EvaluateRequest -> EvaluateResponse
defaultEvaluateResponse seq (EvaluateRequest reqSeq _ _ _) =
EvaluateResponse seq "response" reqSeq True "evaluate" "" defaultEvaluateBody