-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A debug adaptor protocol library -- -- A library for the Debug Adaptor Protocol (DAP) @package dap @version 0.1.0.0 module DAP setBody :: ToJSON value => value -> Adaptor app () setField :: ToJSON value => Key -> value -> Adaptor app () sendSuccesfulEmptyResponse :: Adaptor app () sendSuccesfulResponse :: Adaptor app () -> Adaptor app () -- | Sends unsuccessful response Only used internally within the Server -- module sendErrorResponse :: ErrorMessage -> Maybe Message -> Adaptor app () -- | Sends successful event sendSuccesfulEvent :: EventType -> Adaptor app () -> Adaptor app () getServerCapabilities :: Adaptor app Capabilities withConnectionLock :: IO () -> Adaptor app () -- | Attempt to parse arguments from the Request getArguments :: (Show value, FromJSON value) => Adaptor app value getRequestSeqNum :: Adaptor app Seq registerNewDebugSession :: SessionId -> app -> IO () -> ((Adaptor app () -> IO ()) -> IO ()) -> Adaptor app () updateDebugSession :: (app -> app) -> Adaptor app () getDebugSession :: Adaptor a a getDebugSessionId :: Adaptor app SessionId -- | Whenever a debug Session ends (cleanly or otherwise) this function -- will remove the local debugger communication state from the global -- state destroyDebugSession :: Adaptor app () -- | Raises an error Meant abort the current reqeust / response cycle, -- prematurely sending an ErrorResponse -- https://microsoft.github.io/debug-adapter-protocol/specification#Base_Protocol_ErrorResponse sendError :: ErrorMessage -> Maybe Message -> Adaptor app a logWarn :: ByteString -> Adaptor app () logError :: ByteString -> Adaptor app () logInfo :: ByteString -> Adaptor app () -- | Meant for external consumption logger :: Level -> SockAddr -> Maybe DebugStatus -> ByteString -> IO () -- | Meant for internal consumption, used to signify a message has been -- SENT from the server debugMessage :: ByteString -> Adaptor app () -- | Function for constructing a payload and writing bytes to a socket. -- This function takes care of incrementing sequence numbers and setting -- fields automatically that are required for response messages. -- i.e. "request_seq" and "command". We also have to be sure to reset the -- message payload send :: Adaptor app () -> Adaptor app () -- | sendRaw (internal use only) Sends a raw JSON payload to the -- editor. No "seq", "type" or "command" fields are set. The message is -- still encoded with the ProtocolMessage Header, byte count, and CRLF. sendRaw :: ToJSON value => value -> Adaptor app () -- | Evaluates Adaptor action by using and updating the state in the MVar runAdaptorWith :: MVar (AdaptorState app) -> Adaptor app () -> IO () sendBreakpointEvent :: BreakpointEvent -> Adaptor app () sendCapabilitiesEvent :: CapabilitiesEvent -> Adaptor app () sendContinuedEvent :: ContinuedEvent -> Adaptor app () sendExitedEvent :: ExitedEvent -> Adaptor app () sendInitializedEvent :: Adaptor app () sendInvalidatedEvent :: InvalidatedEvent -> Adaptor app () sendLoadedSourceEvent :: LoadedSourceEvent -> Adaptor app () sendMemoryEvent :: MemoryEvent -> Adaptor app () sendModuleEvent :: ModuleEvent -> Adaptor app () sendOutputEvent :: OutputEvent -> Adaptor app () sendProcessEvent :: ProcessEvent -> Adaptor app () sendProgressEndEvent :: ProgressEndEvent -> Adaptor app () sendProgressStartEvent :: ProgressStartEvent -> Adaptor app () sendProgressUpdateEvent :: ProgressUpdateEvent -> Adaptor app () sendStoppedEvent :: StoppedEvent -> Adaptor app () sendTerminatedEvent :: TerminatedEvent -> Adaptor app () sendThreadEvent :: ThreadEvent -> Adaptor app () defaultContinuedEvent :: ContinuedEvent defaultExitedEvent :: ExitedEvent defaultInvalidatedEvent :: InvalidatedEvent defaultMemoryEvent :: MemoryEvent defaultOutputEvent :: OutputEvent defaultProcessEvent :: ProcessEvent defaultProgressEndEvent :: ProgressEndEvent defaultProgressStartEvent :: ProgressStartEvent defaultProgressUpdateEvent :: ProgressUpdateEvent defaultStoppedEvent :: StoppedEvent defaultTerminatedEvent :: TerminatedEvent defaultThreadEvent :: ThreadEvent -- | Used for performing actions (e.g. printing debug logs to stdout) Also -- used for writing to each connections Handle. Ensures operations occur -- one thread at a time. -- -- Used internally only withLock :: MVar () -> IO () -> IO () -- | Used for performing actions (e.g. printing debug logs to stdout) -- Ensures operations occur one thread at a time. -- -- Used internally only withGlobalLock :: IO () -> IO () -- | AttachResponse has no body by default sendAttachResponse :: Adaptor app () -- | BreakpointLocationResponse has no body by default sendBreakpointLocationsResponse :: [BreakpointLocation] -> Adaptor app () sendCompletionsResponse :: CompletionsResponse -> Adaptor app () -- | ConfigurationDoneResponse sendConfigurationDoneResponse :: Adaptor app () -- | ContinueResponse sendContinueResponse :: ContinueResponse -> Adaptor app () sendDataBreakpointInfoResponse :: DataBreakpointInfoResponse -> Adaptor app () sendDisassembleResponse :: DisassembleResponse -> Adaptor app () -- | DisconnectResponse sendDisconnectResponse :: Adaptor app () sendEvaluateResponse :: EvaluateResponse -> Adaptor app () sendExceptionInfoResponse :: ExceptionInfoResponse -> Adaptor app () -- | GotoResponse sendGotoResponse :: Adaptor app () -- | GotoTargetsResponse sendGotoTargetsResponse :: Adaptor app () -- | InitializeReponse sendInitializeResponse :: Adaptor app () -- | LaunchResponse sendLaunchResponse :: Adaptor app () sendLoadedSourcesResponse :: [Source] -> Adaptor app () sendModulesResponse :: ModulesResponse -> Adaptor app () -- | NextResponse sendNextResponse :: Adaptor app () -- | PauseResponse sendPauseResponse :: Adaptor app () sendReadMemoryResponse :: ReadMemoryResponse -> Adaptor app () -- | RestartResponse sendRestartResponse :: Adaptor app () -- | RestartFrameResponse sendRestartFrameResponse :: Adaptor app () -- | ReverseContinueResponse sendReverseContinueResponse :: Adaptor app () sendScopesResponse :: ScopesResponse -> Adaptor app () -- | BreakpointResponse has no body by default sendSetBreakpointsResponse :: [Breakpoint] -> Adaptor app () -- | SetDataBreakpointsResponse sendSetDataBreakpointsResponse :: [Breakpoint] -> Adaptor app () -- | SetExceptionBreakpointsResponse has no body by default sendSetExceptionBreakpointsResponse :: [Breakpoint] -> Adaptor app () sendSetExpressionResponse :: SetExpressionResponse -> Adaptor app () -- | SetFunctionBreakpointResponse has no body by default sendSetFunctionBreakpointsResponse :: [Breakpoint] -> Adaptor app () -- | SetInstructionsBreakpointResponse has no body by default sendSetInstructionBreakpointsResponse :: [Breakpoint] -> Adaptor app () sendSetVariableResponse :: SetVariableResponse -> Adaptor app () sendSourceResponse :: SourceResponse -> Adaptor app () sendStackTraceResponse :: StackTraceResponse -> Adaptor app () -- | StepBackResponse sendStepBackResponse :: Adaptor app () -- | StepInResponse sendStepInResponse :: Adaptor app () sendStepInTargetsResponse :: StepInTargetsResponse -> Adaptor app () -- | StepOutResponse sendStepOutResponse :: Adaptor app () -- | TerminateResponse sendTerminateResponse :: Adaptor app () -- | TerminateThreadsResponse sendTerminateThreadsResponse :: Adaptor app () sendThreadsResponse :: [Thread] -> Adaptor app () sendVariablesResponse :: VariablesResponse -> Adaptor app () sendWriteMemoryResponse :: WriteMemoryResponse -> Adaptor app () sendRunInTerminalResponse :: RunInTerminalResponse -> Adaptor app () sendStartDebuggingResponse :: Adaptor app () runDAPServer :: ServerConfig -> (Command -> Adaptor app ()) -> IO () -- | Helper function to parse a ProtocolMessage, extracting it's -- body. used for testing. readPayload :: FromJSON json => Handle -> IO (Either String json) data MessageType MessageTypeEvent :: MessageType MessageTypeResponse :: MessageType MessageTypeRequest :: MessageType data Breakpoint Breakpoint :: Maybe Int -> Bool -> Maybe Text -> Maybe Source -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Text -> Maybe Int -> Breakpoint -- | The identifier for the breakpoint. It is needed if breakpoint events -- are used to update or remove breakpoints. [breakpointId] :: Breakpoint -> Maybe Int -- | If true, the breakpoint could be set (but not necessarily at the -- desired location). [breakpointVerified] :: Breakpoint -> Bool -- | A message about the state of the breakpoint. This is shown to the user -- and can be used to explain why a breakpoint could not be verified. [breakpointMessage] :: Breakpoint -> Maybe Text -- | The source where the breakpoint is located. [breakpointSource] :: Breakpoint -> Maybe Source -- | The start line of the actual range covered by the breakpoint. [breakpointLine] :: Breakpoint -> Maybe Int -- | Start position of the source range covered by the breakpoint. It is -- measured in UTF-16 code units and the client capability -- columnsStartAt1 determines whether it is 0- or 1-based. [breakpointColumn] :: Breakpoint -> Maybe Int -- | The end line of the actual range covered by the breakpoint. [breakpointEndLine] :: Breakpoint -> Maybe Int -- | End position of the source range covered by the breakpoint. It is -- measured in UTF-16 code units and the client capability -- columnsStartAt1 determines whether it is 0- or 1-based. If no -- end line is given, then the end column is assumed to be in the start -- line. [breakpointEndColumn] :: Breakpoint -> Maybe Int -- | A memory reference to where the breakpoint is set. [breakpointInstructionReference] :: Breakpoint -> Maybe Text -- | The offset from the instruction reference. This can be negative. [breakpointOffset] :: Breakpoint -> Maybe Int newtype Breakpoints breakpoint Breakpoints :: [breakpoint] -> Breakpoints breakpoint data BreakpointLocation BreakpointLocation :: Int -> Maybe Int -> Maybe Int -> Maybe Int -> BreakpointLocation -- | Start line of breakpoint location. [breakpointLocationLine] :: BreakpointLocation -> Int -- | The start position of a breakpoint location. Position is measured in -- UTF-16 code units and the client capability columnsStartAt1 -- determines whether it is 0- or 1-based. [breakpointLocationColumn] :: BreakpointLocation -> Maybe Int -- | The end line of breakpoint location if the location covers a range. [breakpointLocationEndLine] :: BreakpointLocation -> Maybe Int -- | The end position of a breakpoint location (if the location covers a -- range). Position is measured in UTF-16 code units and the client -- capability columnsStartAt1 determines whether it is 0- or -- 1-based. [breakpointLocationEndColumn] :: BreakpointLocation -> Maybe Int data Capabilities Capabilities :: Bool -> Bool -> Bool -> Bool -> Bool -> [ExceptionBreakpointsFilter] -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> [Text] -> Bool -> [ColumnDescriptor] -> [ChecksumAlgorithm] -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Capabilities -- | The debug adapter supports the configurationDone request. [supportsConfigurationDoneRequest] :: Capabilities -> Bool -- | The debug adapter supports function breakpoints. [supportsFunctionBreakpoints] :: Capabilities -> Bool -- | The debug adapter supports conditional breakpoints. [supportsConditionalBreakpoints] :: Capabilities -> Bool -- | The debug adapter supports breakpoints that break execution after a -- specified number of hits. [supportsHitConditionalBreakpoints] :: Capabilities -> Bool -- | The debug adapter supports a (side effect free) evaluate -- request for data hovers. [supportsEvaluateForHovers] :: Capabilities -> Bool -- | Available exception filter options for the -- setExceptionBreakpoints ^ request. [exceptionBreakpointFilters] :: Capabilities -> [ExceptionBreakpointsFilter] -- | The debug adapter supports stepping back via the stepBack and -- ^ reverseContinue requests. [supportsStepBack] :: Capabilities -> Bool -- | The debug adapter supports setting a variable to a value. [supportsSetVariable] :: Capabilities -> Bool -- | The debug adapter supports restarting a frame. [supportsRestartFrame] :: Capabilities -> Bool -- | The debug adapter supports the gotoTargets request. [supportsGotoTargetsRequest] :: Capabilities -> Bool -- | The debug adapter supports the stepInTargets request. [supportsStepInTargetsRequest] :: Capabilities -> Bool -- | The debug adapter supports the completions request. [supportsCompletionsRequest] :: Capabilities -> Bool -- | The set of characters that should trigger completion in a REPL. If not -- ^ specified, the UI should assume the . character. [completionTriggerCharacters] :: Capabilities -> [Text] -- | The debug adapter supports the modules request. [supportsModulesRequest] :: Capabilities -> Bool -- | The set of additional module information exposed by the debug adapter. [additionalModuleColumns] :: Capabilities -> [ColumnDescriptor] -- | Checksum algorithms supported by the debug adapter. [supportedChecksumAlgorithms] :: Capabilities -> [ChecksumAlgorithm] -- | The debug adapter , supports the restart request. In this -- case a client ^ should not implement restart by terminating -- and relaunching the adapter ^ but by calling the restart -- request. [supportsRestartRequest] :: Capabilities -> Bool -- | The debug adapter , supports exceptionOptions on the ^ -- setExceptionBreakpoints request. [supportsExceptionOptions] :: Capabilities -> Bool -- | The debug adapter , supports a format attribute on the -- stackTrace, ^ variables, and evaluate -- requests. [supportsValueFormattingOptions] :: Capabilities -> Bool -- | The debug adapter , supports the exceptionInfo request. [supportsExceptionInfoRequest] :: Capabilities -> Bool -- | The debug adapter , supports the terminateDebuggee attribute -- on the disconnect request. [supportTerminateDebuggee] :: Capabilities -> Bool -- | The debug adapter , supports the suspendDebuggee attribute on -- the disconnect request. [supportSuspendDebuggee] :: Capabilities -> Bool -- | The debug adapter , supports the delayed loading of parts of the -- stack, which ^ requires that both the startFrame and -- levels arguments and the ^ totalFrames result of the -- stackTrace request are supported. [supportsDelayedStackTraceLoading] :: Capabilities -> Bool -- | The debug adapter , supports the loadedSources request. [supportsLoadedSourcesRequest] :: Capabilities -> Bool -- | The debug adapter , supports log points by interpreting the -- logMessage ^ attribute of the SourceBreakpoint. [supportsLogPoints] :: Capabilities -> Bool -- | The debug adapter , supports the terminateThreads request. [supportsTerminateThreadsRequest] :: Capabilities -> Bool -- | The debug adapter , supports the setExpression request. [supportsSetExpression] :: Capabilities -> Bool -- | The debug adapter , supports the terminate request. [supportsTerminateRequest] :: Capabilities -> Bool -- | The debug adapter , supports data breakpoints. [supportsDataBreakpoints] :: Capabilities -> Bool -- | The debug adapter , supports the readMemory request. [supportsReadMemoryRequest] :: Capabilities -> Bool -- | The debug adapter , supports the writeMemory request. [supportsWriteMemoryRequest] :: Capabilities -> Bool -- | The debug adapter , supports the disassemble request. [supportsDisassembleRequest] :: Capabilities -> Bool -- | The debug adapter , supports the cancel request. [supportsCancelRequest] :: Capabilities -> Bool -- | The debug adapter , supports the breakpointLocations request. [supportsBreakpointLocationsRequest] :: Capabilities -> Bool -- | The debug adapter , supports the clipboard context value in -- the evaluate request. [supportsClipboardContext] :: Capabilities -> Bool -- | The debug adapter , supports stepping granularities (argument -- granularity) for the stepping requests. [supportsSteppingGranularity] :: Capabilities -> Bool -- | The debug adapter , supports adding breakpoints based on instruction -- references. [supportsInstructionBreakpoints] :: Capabilities -> Bool -- | The debug adapter , supports filterOptions as an argument on -- the setExceptionBreakpoints request. [supportsExceptionFilterOptions] :: Capabilities -> Bool -- | The debug adapter , supports the singleThread property on the -- execution requests (continue, next, stepIn, -- stepOut, reverseContinue, stepBack). [supportsSingleThreadExecutionRequests] :: Capabilities -> Bool data Checksum Checksum :: ChecksumAlgorithm -> Text -> Checksum -- | The algorithm used to calculate this checksum. [algorithm] :: Checksum -> ChecksumAlgorithm -- | Value of the checksum, encoded as a hexadecimal value. [checksum] :: Checksum -> Text data ChecksumAlgorithm MD5 :: ChecksumAlgorithm SHA1 :: ChecksumAlgorithm SHA256 :: ChecksumAlgorithm TimeStamp :: UTCTime -> ChecksumAlgorithm -- | A ColumnDescriptor specifies what module attribute to show in a column -- of the modules view, how to format it, and what the column’s label -- should be. It is only used if the underlying UI actually supports this -- level of customization. data ColumnDescriptor ColumnDescriptor :: String -> String -> Maybe String -> Maybe ColumnDescriptorType -> Maybe Int -> ColumnDescriptor -- | Name of the attribute rendered in this column. [columnDescriptorAttributeName] :: ColumnDescriptor -> String -- | Header UI label of column. [columnDescriptorLabel] :: ColumnDescriptor -> String -- | Format to use for the rendered values in this column. TBD how the -- format strings looks like. [columnDescriptorFormat] :: ColumnDescriptor -> Maybe String -- | Datatype of values in this column. Defaults to string if not -- specified. Values: string, number, boolean, -- unixTimestampUTC [columnDescriptorType] :: ColumnDescriptor -> Maybe ColumnDescriptorType -- | Width of this column in characters (hint only). [columnDescriptorWidth] :: ColumnDescriptor -> Maybe Int data CompletionItem CompletionItem :: String -> Maybe String -> Maybe String -> Maybe String -> Maybe CompletionItemType -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> CompletionItem -- | The label of this completion item. By default this is also the text -- that is inserted when selecting this completion. [completionItemLabel] :: CompletionItem -> String -- | If text is returned and not an empty string, then it is inserted -- instead of the label. [completionItemText] :: CompletionItem -> Maybe String -- | A string that should be used when comparing this item with other -- items. If not returned or an empty string, the label is used -- instead. [completionItemSortText] :: CompletionItem -> Maybe String -- | A human-readable string with additional information about this item, -- like type or symbol information. [completionItemDetail] :: CompletionItem -> Maybe String -- | The item's type. Typically the client uses this information to render -- the item in the UI with an icon. [completionItemType] :: CompletionItem -> Maybe CompletionItemType -- | Start position (within the text attribute of the -- completions request) where the completion text is added. The -- position is measured in UTF-16 code units and the client capability -- columnsStartAt1 determines whether it is 0- or 1-based. If the -- start position is omitted the text is added at the location specified -- by the column attribute of the completions request. [completionItemTypeStart] :: CompletionItem -> Maybe Int -- | Length determines how many characters are overwritten by the -- completion text and it is measured in UTF-16 code units. If missing -- the value 0 is assumed which results in the completion text being -- inserted. [completionItemTypeLength] :: CompletionItem -> Maybe Int -- | Determines the start of the new selection after the text has been -- inserted (or replaced). selectionStart is measured in UTF-16 -- code units and must be in the range 0 and length of the completion -- text. If omitted the selection starts at the end of the completion -- text. [completionItemTypeSelectionStart] :: CompletionItem -> Maybe Int -- | Determines the length of the new selection after the text has been -- inserted (or replaced) and it is measured in UTF-16 code units. The -- selection can not extend beyond the bounds of the completion text. If -- omitted the length is assumed to be 0. [completionItemTypeSelectionLength] :: CompletionItem -> Maybe Int data CompletionItemType CompletionItemTypeMethod :: CompletionItemType CompletionItemTypeFunction :: CompletionItemType CompletionItemTypeConstructor :: CompletionItemType CompletionItemTypeField :: CompletionItemType CompletionItemTypeVariable :: CompletionItemType CompletionItemTypeClass :: CompletionItemType CompletionItemTypeInterface :: CompletionItemType CompletionItemTypeModule :: CompletionItemType CompletionItemTypeProperty :: CompletionItemType CompletionItemTypeUnit :: CompletionItemType CompletionItemTypeValue :: CompletionItemType CompletionItemTypeEnum :: CompletionItemType CompletionItemTypeKeyword :: CompletionItemType CompletionItemTypeSnippet :: CompletionItemType CompletionItemTypeText :: CompletionItemType CompletionItemTypeColor :: CompletionItemType CompletionItemTypeFile :: CompletionItemType CompletionItemTypeReference :: CompletionItemType CompletionItemTypeCustomcolor :: CompletionItemType data DataBreakpoint DataBreakpoint :: Text -> Maybe DataBreakpointAccessType -> Maybe Text -> Maybe Text -> DataBreakpoint -- | An id representing the data. This id is returned from the -- dataBreakpointInfo request. [dataBreakpointDataId] :: DataBreakpoint -> Text -- | The access type of the data. [dataBreakpointAccessType] :: DataBreakpoint -> Maybe DataBreakpointAccessType -- | An expression for conditional breakpoints. [condition] :: DataBreakpoint -> Maybe Text -- | An expression that controls how many hits of the breakpoint are -- ignored. The debug adapter is expected to interpret the expression as -- needed. [hitCondition] :: DataBreakpoint -> Maybe Text -- | This enumeration defines all possible access types for data -- breakpoints. Values: ‘read’, ‘write’, ‘readWrite’ data DataBreakpointAccessType DataBreakpointAccessTypeRead :: DataBreakpointAccessType DataBreakpointAccessTypeWrite :: DataBreakpointAccessType DataBreakpointAccessTypeReadWrite :: DataBreakpointAccessType data DisassembledInstruction DisassembledInstruction :: Text -> Maybe Text -> Text -> Maybe Text -> Maybe Source -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> DisassembledInstruction -- | The address of the instruction. Treated as a hex value if prefixed -- with `0x`, or as a decimal value otherwise. [disassembledInstructionAddress] :: DisassembledInstruction -> Text -- | Raw bytes representing the instruction and its operands, in an -- implementation-defined format. [disassembledInstructionInstructionBytes] :: DisassembledInstruction -> Maybe Text -- | Text representing the instruction and its operands, in an -- implementation-defined format. [disassembledInstructionInstruction] :: DisassembledInstruction -> Text -- | Name of the symbol that corresponds with the location of this -- instruction, if any. [disassembledInstructionSymbol] :: DisassembledInstruction -> Maybe Text -- | Source location that corresponds to this instruction, if any. Should -- always be set (if available) on the first instruction returned, but -- can be omitted afterwards if this instruction maps to the same source -- file as the previous instruction. [disassembledInstructionLocation] :: DisassembledInstruction -> Maybe Source -- | The line within the source location that corresponds to this -- instruction, if any. [disassembledInstructionLine] :: DisassembledInstruction -> Maybe Int -- | The column within the line that corresponds to this instruction, if -- any. [disassembledInstructionColumn] :: DisassembledInstruction -> Maybe Int -- | The end line of the range that corresponds to this instruction, if -- any. [disassembledInstructionEndLine] :: DisassembledInstruction -> Maybe Int -- | The end column of the range that corresponds to this instruction, if -- any. [disassembledInstructionEndColumn] :: DisassembledInstruction -> Maybe Int data ExceptionBreakMode Never :: ExceptionBreakMode Always :: ExceptionBreakMode Unhandled :: ExceptionBreakMode UserUnhandled :: ExceptionBreakMode -- | An ExceptionBreakpointsFilter is shown in the UI as an filter option -- for configuring how exceptions are dealt with. data ExceptionBreakpointsFilter ExceptionBreakpointsFilter :: Text -> Text -> Maybe Text -> Maybe Bool -> Maybe Bool -> Maybe Text -> ExceptionBreakpointsFilter -- | The internal ID of the filter option. This value is passed to the -- setExceptionBreakpoints request. [exceptionBreakpointsFilterFilter] :: ExceptionBreakpointsFilter -> Text -- | The name of the filter option. This is shown in the UI. [exceptionBreakpointsFilterLabel] :: ExceptionBreakpointsFilter -> Text -- | A help text providing additional information about the exception -- filter. This string is typically shown as a hover and can be -- translated. [exceptionBreakpointsFilterDescription] :: ExceptionBreakpointsFilter -> Maybe Text -- | Initial value of the filter option. If not specified a value false is -- assumed. [exceptionBreakpointsFilterDefault] :: ExceptionBreakpointsFilter -> Maybe Bool -- | Controls whether a condition can be specified for this filter option. -- If false or missing, a condition can not be set. [exceptionBreakpointsFilterSupportsCondition] :: ExceptionBreakpointsFilter -> Maybe Bool -- | A help text providing information about the condition. This string is -- shown as the placeholder text for a text box and can be translated. [exceptionBreakpointsFilterConditionDescription] :: ExceptionBreakpointsFilter -> Maybe Text data ExceptionDetails ExceptionDetails :: Maybe String -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe [ExceptionDetails] -> ExceptionDetails -- | Message contained in the exception. [exceptionDetailsMessage] :: ExceptionDetails -> Maybe String -- | Short type name of the exception object. [exceptionDetailstypeName] :: ExceptionDetails -> Maybe Text -- | Fully-qualified type name of the exception object. [exceptionDetailsFullTypeName] :: ExceptionDetails -> Maybe Text -- | An expression that can be evaluated in the current scope to obtain the -- exception object. [exceptionDetailsEvaluateName] :: ExceptionDetails -> Maybe Text -- | Stack trace at the time the exception was thrown. [exceptionDetailsStackTrace] :: ExceptionDetails -> Maybe Text -- | Details of the exception contained by this exception, if any. [exceptionDetailsInnerException] :: ExceptionDetails -> Maybe [ExceptionDetails] data ExceptionFilterOptions ExceptionFilterOptions :: String -> Maybe String -> ExceptionFilterOptions -- | ID of an exception filter returned by the -- exceptionBreakpointFilters capability. [exceptionFilterOptionsFilterId] :: ExceptionFilterOptions -> String -- | An expression for conditional exceptions. The exception breaks into -- the debugger if the result of the condition is true. [exceptionFilterOptionsCondition] :: ExceptionFilterOptions -> Maybe String data ExceptionOptions ExceptionOptions :: Maybe [ExceptionPathSegment] -> ExceptionBreakMode -> ExceptionOptions -- | A path that selects a single or multiple exceptions in a tree. If -- path is missing, the whole tree is selected. By convention -- the first segment of the path is a category that is used to group -- exceptions in the UI. [exceptionOptionsPath] :: ExceptionOptions -> Maybe [ExceptionPathSegment] -- | Condition when a thrown exception should result in a break. [exceptionOptionsBreakMode] :: ExceptionOptions -> ExceptionBreakMode -- | An ExceptionPathSegment represents a segment in a path that is used to -- match leafs or nodes in a tree of exceptions. If a segment consists of -- more than one name, it matches the names provided if negate is false -- or missing, or it matches anything except the names provided if negate -- is true. data ExceptionPathSegment ExceptionPathSegment :: Maybe Bool -> [String] -> ExceptionPathSegment [exceptionPathSegmentNegate] :: ExceptionPathSegment -> Maybe Bool [exceptionPathSegmentNames] :: ExceptionPathSegment -> [String] data FunctionBreakpoint FunctionBreakpoint :: Maybe Text -> Maybe Text -> Maybe Text -> FunctionBreakpoint -- | The name of the function. [functionBreakpointName] :: FunctionBreakpoint -> Maybe Text -- | An expression for conditional breakpoints. It is only honored by a -- debug adapter if the corresponding capability -- supportsConditionalBreakpoints is true. [functionBreakpointCondition] :: FunctionBreakpoint -> Maybe Text -- | An expression that controls how many hits of the breakpoint are -- ignored. The debug adapter is expected to interpret the expression as -- needed. The attribute is only honored by a debug adapter if the -- corresponding capability supportsHitConditionalBreakpoints is -- true. [functionBreakpointHitCondition] :: FunctionBreakpoint -> Maybe Text data GotoTarget GotoTarget :: Int -> String -> Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe String -> GotoTarget -- | Unique identifier for a goto target. This is used in the goto -- request. [gotoTargetId] :: GotoTarget -> Int -- | The name of the goto target (shown in the UI). [gotoTargetLabel] :: GotoTarget -> String -- | The line of the gotoTarget target. [gotoTargetLine] :: GotoTarget -> Int -- | The column of the gotoTarget target. [gotoTargetColumn] :: GotoTarget -> Maybe Int -- | The end line of the range covered by the gotoTarget target. [gotoTargetEndLine] :: GotoTarget -> Maybe Int -- | The end column of the range covered by the gotoTarget target. [gotoTargetEndColumn] :: GotoTarget -> Maybe Int -- | A memory reference for the instruction pointer value represented by -- this target. [gotoTargetInstructionPointerReference] :: GotoTarget -> Maybe String data InstructionBreakpoint InstructionBreakpoint :: Text -> Maybe Int -> Maybe Text -> Maybe Text -> InstructionBreakpoint -- | The instruction reference of the breakpoint. This should be a memory -- or instruction pointer reference from an EvaluateResponse, -- Variable, StackFrame, GotoTarget, or -- Breakpoint. [instructionBreakpointInstructionReference] :: InstructionBreakpoint -> Text -- | The offset from the instruction reference. This can be negative. [instructionBreakpointOffset] :: InstructionBreakpoint -> Maybe Int -- | An expression for conditional breakpoints. It is only honored by a -- debug adapter if the corresponding capability -- supportsConditionalBreakpoints is true. [instructionBreakpointCondition] :: InstructionBreakpoint -> Maybe Text -- | An expression that controls how many hits of the breakpoint are -- ignored. The debug adapter is expected to interpret the expression as -- needed. The attribute is only honored by a debug adapter if the -- corresponding capability supportsHitConditionalBreakpoints is -- true. [instructionBreakpointHitCondition] :: InstructionBreakpoint -> Maybe Text -- | Logical areas that can be invalidated by the invalidated event. -- Values: -- https://microsoft.github.io/debug-adapter-protocol/specification#Types_InvalidatedAreas data InvalidatedAreas InvalidatedAreasAll :: InvalidatedAreas InvalidatedAreasStacks :: InvalidatedAreas InvalidatedAreasThreads :: InvalidatedAreas InvalidatedAreasVariables :: InvalidatedAreas data Message Message :: Int -> Text -> Maybe (HashMap Text Text) -> Maybe Bool -> Maybe Bool -> Maybe Text -> Maybe Text -> Message -- | Unique (within a debug adapter implementation) identifier for the -- message. The purpose of these error IDs is to help extension authors -- that have the requirement that every user visible error message needs -- a corresponding error number, so that users or customer support can -- find information about the specific error more easily. [messageId] :: Message -> Int -- | A format string for the message. Embedded variables have the form -- `{name}`. If variable name starts with an underscore character, the -- variable does not contain user data (PII) and can be safely used for -- telemetry purposes. [messageFormat] :: Message -> Text -- | An object used as a dictionary for looking up the variables in the -- format string. [messageVariables] :: Message -> Maybe (HashMap Text Text) -- | If true send to telemetry. [messageSendTelemetry] :: Message -> Maybe Bool -- | If true show user. [messageShowUser] :: Message -> Maybe Bool -- | A url where additional information about this message can be found. [messageUrl] :: Message -> Maybe Text -- | A label that is presented to the user as the UI for opening the url. [messageUrlLabel] :: Message -> Maybe Text data Module Module :: Either Text Int -> Text -> Maybe Text -> Maybe Bool -> Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Module -- | Unique identifier for the module. [moduleId] :: Module -> Either Text Int -- | A name of the module. [moduleName] :: Module -> Text -- | Logical full path to the module. The exact definition is -- implementation defined, but usually this would be a full path to the -- on-disk file for the module. [modulePath] :: Module -> Maybe Text -- | True if the module is optimized. [moduleIsOptimized] :: Module -> Maybe Bool -- | True if the module is considered 'user code' by a debugger that -- supports 'Just My Code'. [moduleIsUserCode] :: Module -> Maybe Bool -- | Version of Module. [moduleVersion] :: Module -> Maybe Text -- | User-understandable description of if symbols were found for the -- module (ex: 'Symbols Loaded', 'Symbols not found', etc.) [moduleSymbolStatus] :: Module -> Maybe Text -- | Logical full path to the symbol file. The exact definition is -- implementation defined. [moduleSymbolFilePath] :: Module -> Maybe Text -- | Module created or modified, encoded as a RFC 3339 timestamp. [moduleDateTimeStamp] :: Module -> Maybe Text -- | Address range covered by this module. [moduleAddressRange] :: Module -> Maybe Text data ModulesViewDescriptor ModulesViewDescriptor :: [ColumnDescriptor] -> ModulesViewDescriptor [modulesViewDescriptorColumns] :: ModulesViewDescriptor -> [ColumnDescriptor] data PresentationHint PresentationHintNormal :: PresentationHint PresentationHintLabel :: PresentationHint PresentationHintSubtle :: PresentationHint data Scope Scope :: Text -> Maybe ScopePresentationHint -> Int -> Maybe Int -> Maybe Int -> Bool -> Maybe Source -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Scope -- | Name of the scope such as Arguments, Locals, or -- Registers. This string is shown in the UI as is and can be -- translated. [scopeName] :: Scope -> Text -- | A hint for how to present this scope in the UI. If this attribute is -- missing, the scope is shown with a generic UI. Values: -- arguments: Scope contains method arguments. locals: -- Scope contains local variables. registers: Scope contains -- registers. Only a single registers scope should be returned -- from a scopes request. etc. [scopePresentationHint] :: Scope -> Maybe ScopePresentationHint -- | The variables of this scope can be retrieved by passing the value of -- variablesReference to the variables request as long as -- execution remains suspended. See 'Lifetime of Object References' in -- the Overview section for details. [scopeVariablesReference] :: Scope -> Int -- | The number of named variables in this scope. The client can use this -- information to present the variables in a paged UI and fetch them in -- chunks. [scopeNamedVariables] :: Scope -> Maybe Int -- | The number of indexed variables in this scope. The client can use this -- information to present the variables in a paged UI and fetch them in -- chunks. [scopeIndexedVariables] :: Scope -> Maybe Int -- | If true, the number of variables in this scope is large or expensive -- to retrieve. [scopeExpensive] :: Scope -> Bool -- | The source for this scope. [scopeSource] :: Scope -> Maybe Source -- | The start line of the range covered by this scope. [scopeLine] :: Scope -> Maybe Int -- | Start position of the range covered by the scope. It is measured in -- UTF-16 code units and the client capability columnsStartAt1 -- determines whether it is 0- or 1-based. [scopeColumn] :: Scope -> Maybe Int -- | The end line of the range covered by this scope. [scopeEndLine] :: Scope -> Maybe Int -- | End position of the range covered by the scope. It is measured in -- UTF-16 code units and the client capability columnsStartAt1 -- determines whether it is 0- or 1-based. [scopeEndColumn] :: Scope -> Maybe Int data Source Source :: Maybe Text -> Maybe Text -> Maybe Int -> Maybe SourcePresentationHint -> Maybe Text -> Maybe [Source] -> Maybe Value -> Maybe [Checksum] -> Source -- | The short name of the source. Every source returned from the debug -- adapter has a name. When sending a source to the debug adapter this -- name is optional. [sourceName] :: Source -> Maybe Text -- | The path of the source to be shown in the UI. It is only used to -- locate and load the content of the source if no -- sourceReference is specified (or its value is 0). [sourcePath] :: Source -> Maybe Text -- | If the value > 0 the contents of the source must be retrieved -- through the source request (even if a path is specified). -- Since a sourceReference is only valid for a session, it can -- not be used to persist a source. The value should be less than or -- equal to 2147483647 (2^31-1). [sourceSourceReference] :: Source -> Maybe Int -- | A hint for how to present the source in the UI. A value of -- deemphasize can be used to indicate that the source is not -- available or that it is skipped on stepping. Values: normal, -- emphasize, deemphasize [sourcePresentationHint] :: Source -> Maybe SourcePresentationHint -- | The origin of this source. For example, 'internal module', 'inlined -- content from source map', etc. [sourceOrigin] :: Source -> Maybe Text -- | A list of sources that are related to this source. These may be the -- source that generated this source. [sourceSources] :: Source -> Maybe [Source] -- | Additional data that a debug adapter might want to loop through the -- client. The client should leave the data intact and persist it across -- sessions. The client should not interpret the data. [sourceAdapterData] :: Source -> Maybe Value -- | The checksums associated with this file. [sourceChecksums] :: Source -> Maybe [Checksum] data SourceBreakpoint SourceBreakpoint :: Int -> Maybe Int -> Maybe Text -> Maybe Text -> Maybe Text -> SourceBreakpoint -- | The source line of the breakpoint or logpoint. [sourceBreakpointLine] :: SourceBreakpoint -> Int -- | Start position within source line of the breakpoint or logpoint. It is -- measured in UTF-16 code units and the client capability -- columnsStartAt1 determines whether it is 0- or 1-based. [sourceBreakpointColumn] :: SourceBreakpoint -> Maybe Int -- | The expression for conditional breakpoints. It is only honored by a -- debug adapter if the corresponding capability -- supportsConditionalBreakpoints is true. [sourceBreakpointCondition] :: SourceBreakpoint -> Maybe Text -- | The expression that controls how many hits of the breakpoint are -- ignored. The debug adapter is expected to interpret the expression as -- needed. The attribute is only honored by a debug adapter if the -- corresponding capability supportsHitConditionalBreakpoints is -- true. If both this property and condition are specified, -- hitCondition should be evaluated only if the condition -- is met, and the debug adapter should stop only if both conditions are -- met. [sourceBreakpointHitCondition] :: SourceBreakpoint -> Maybe Text -- | If this attribute exists and is non-empty, the debug adapter must not -- break (stop) but log the message instead. Expressions within -- `{}` are interpolated. The attribute is only honored by a debug -- adapter if the corresponding capability supportsLogPoints is -- true. If either hitCondition or condition is specified, -- then the message should only be logged if those conditions are met. [sourceBreakpointLogMessage] :: SourceBreakpoint -> Maybe Text data SourcePresentationHint SourcePresentationHintNormal :: SourcePresentationHint SourcePresentationHintEmphasize :: SourcePresentationHint SourcePresentationHintDeemphasize :: SourcePresentationHint data StackFrame StackFrame :: Int -> Text -> Maybe Source -> Int -> Int -> Maybe Int -> Maybe Int -> Maybe Bool -> Maybe Text -> Maybe (Either Int Text) -> Maybe PresentationHint -> StackFrame -- | An identifier for the stack frame. It must be unique across all -- threads. This id can be used to retrieve the scopes of the frame with -- the scopes request or to restart the execution of a stack -- frame. [stackFrameId] :: StackFrame -> Int -- | The name of the stack frame, typically a method name. [stackFrameName] :: StackFrame -> Text -- | The source of the frame. [stackFrameSource] :: StackFrame -> Maybe Source -- | The line within the source of the frame. If the source attribute is -- missing or doesn't exist, line is 0 and should be ignored by -- the client. [stackFrameLine] :: StackFrame -> Int -- | Start position of the range covered by the stack frame. It is measured -- in UTF-16 code units and the client capability columnsStartAt1 -- determines whether it is 0- or 1-based. If attribute source -- is missing or doesn't exist, column is 0 and should be -- ignored by the client. [stackFrameColumn] :: StackFrame -> Int -- | The end line of the range covered by the stack frame. [stackFrameEndLine] :: StackFrame -> Maybe Int -- | End position of the range covered by the stack frame. It is measured -- in UTF-16 code units and the client capability columnsStartAt1 -- determines whether it is 0- or 1-based. [stackFrameEndColumn] :: StackFrame -> Maybe Int -- | Indicates whether this frame can be restarted with the -- restart request. Clients should only use this if the debug -- adapter supports the restart request and the corresponding -- capability supportsRestartRequest is true. If a debug adapter -- has this capability, then canRestart defaults to -- true if the property is absent. [stackFrameCanRestart] :: StackFrame -> Maybe Bool -- | A memory reference for the current instruction pointer in this frame. [stackFrameInstructionPointerReference] :: StackFrame -> Maybe Text -- | The module associated with this frame, if any. [stackFrameModuleId] :: StackFrame -> Maybe (Either Int Text) -- | A hint for how to present this frame in the UI. A value of -- label can be used to indicate that the frame is an artificial -- frame that is used as a visual label or separator. A value of -- subtle can be used to change the appearance of a frame in a -- subtle way. Values: normal, label, -- subtle [stackFramePresentationHint] :: StackFrame -> Maybe PresentationHint data StackFrameFormat StackFrameFormat :: Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> StackFrameFormat -- | Displays parameters for the stack frame. [stackFrameFormatParameters] :: StackFrameFormat -> Maybe Bool -- | Displays the types of parameters for the stack frame. [stackFrameFormatParameterTypes] :: StackFrameFormat -> Maybe Bool -- | Displays the names of parameters for the stack frame. [stackFrameFormatParameterNames] :: StackFrameFormat -> Maybe Bool -- | Displays the values of parameters for the stack frame. [stackFrameFormatParameterValues] :: StackFrameFormat -> Maybe Bool -- | Displays the line number of the stack frame. [stackFrameFormatLine] :: StackFrameFormat -> Maybe Bool -- | Displays the module of the stack frame. [stackFrameFormatModule] :: StackFrameFormat -> Maybe Bool -- | Includes all stack frames, including those the debug adapter might -- otherwise hide. [stackFrameFormatIncludeAll] :: StackFrameFormat -> Maybe Bool -- | Display the value in hex. [stackFrameFormatHex] :: StackFrameFormat -> Maybe Bool data StepInTarget StepInTarget :: Int -> Text -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> StepInTarget -- | Unique identifier for a step-in target. [stepInTargetId] :: StepInTarget -> Int -- | The name of the step-in target (shown in the UI). [stepInTargetLabel] :: StepInTarget -> Text -- | The line of the step-in target. [stepInTargetLine] :: StepInTarget -> Maybe Int -- | Start position of the range covered by the step in target. It is -- measured in UTF-16 code units and the client capability -- columnsStartAt1 determines whether it is 0- or 1-based. [stepInTargetColumn] :: StepInTarget -> Maybe Int -- | The end line of the range covered by the step-in target. [stepInTargetEndLine] :: StepInTarget -> Maybe Int -- | End position of the range covered by the step in target. It is -- measured in UTF-16 code units and the client capability -- columnsStartAt1 determines whether it is 0- or 1-based. [stepInTargetEndColumn] :: StepInTarget -> Maybe Int data SteppingGranularity SteppingGranularityStatement :: SteppingGranularity SteppingGranularityLine :: SteppingGranularity SteppingGranularityInstruction :: SteppingGranularity data StoppedEventReason StoppedEventReasonStep :: StoppedEventReason StoppedEventReasonBreakpoint :: StoppedEventReason StoppedEventReasonException :: StoppedEventReason StoppedEventReasonPause :: StoppedEventReason StoppedEventReasonEntry :: StoppedEventReason StoppedEventReasonGoto :: StoppedEventReason StoppedEventReasonFunctionBreakpoint :: StoppedEventReason StoppedEventReasonDataBreakpoint :: StoppedEventReason StoppedEventReasonInstructionBreakpoint :: StoppedEventReason data Thread Thread :: Int -> Text -> Thread -- | Unique identifier for the thread. [threadId] :: Thread -> Int -- | The name of the thread. [threadName] :: Thread -> Text data ThreadEventReason ThreadEventReasonStarted :: ThreadEventReason ThreadEventReasonExited :: ThreadEventReason ThreadEventReason :: Text -> ThreadEventReason data ValueFormat ValueFormat :: Maybe Bool -> ValueFormat -- | Display the value in hex. [valueFormatHex] :: ValueFormat -> Maybe Bool data Variable Variable :: Text -> Text -> Maybe Text -> Maybe VariablePresentationHint -> Maybe Text -> Int -> Maybe Int -> Maybe Int -> Maybe Text -> Variable -- | The variable's name. [variableName] :: Variable -> Text -- | The variable's value. This can be a multi-line text, e.g. for a -- function the body of a function. For structured variables (which do -- not have a simple value), it is recommended to provide a one-line -- representation of the structured object. This helps to identify the -- structured object in the collapsed state when its children are not yet -- visible. An empty string can be used if no value should be shown in -- the UI. [variableValue] :: Variable -> Text -- | The type of the variable's value. Typically shown in the UI when -- hovering over the value. This attribute should only be returned by a -- debug adapter if the corresponding capability -- supportsVariableType is true. [variableType] :: Variable -> Maybe Text -- | Properties of a variable that can be used to determine how to render -- the variable in the UI. [variablePresentationHint] :: Variable -> Maybe VariablePresentationHint -- | The evaluatable name of this variable which can be passed to the -- evaluate request to fetch the variable's value. [variableEvaluateName] :: Variable -> Maybe Text -- | If variablesReference is > 0, the variable is structured -- and its children can be retrieved by passing -- variablesReference to the variables request as long as -- execution remains suspended. See 'Lifetime of Object References' in -- the Overview section for details. [variableVariablesReference] :: Variable -> Int -- | The number of named child variables. The client can use this -- information to present the children in a paged UI and fetch them in -- chunks. [variableNamedVariables] :: Variable -> Maybe Int -- | The number of indexed child variables. The client can use this -- information to present the children in a paged UI and fetch them in -- chunks. [variableIndexedVariables] :: Variable -> Maybe Int -- | The memory reference for the variable if the variable represents -- executable code, such as a function pointer. This attribute is only -- required if the corresponding capability -- supportsMemoryReferences is true. [variableMemoryReference] :: Variable -> Maybe Text data VariablePresentationHint VariablePresentationHint :: Maybe PresentationHintKind -> Maybe [PresentationHintAttributes] -> Maybe PresentationHintVisibility -> Maybe Bool -> VariablePresentationHint -- | The kind of variable. Before introducing additional values, try to use -- the listed values. Values: property: Indicates that the -- object is a property. method: Indicates that the object is a -- method. 'class': Indicates that the object is a class. 'data': -- Indicates that the object is data. event: Indicates that the -- object is an event. baseClass: Indicates that the object is a -- base class. innerClass: Indicates that the object is an inner -- class. interface: Indicates that the object is an interface. -- mostDerivedClass: Indicates that the object is the most -- derived class. virtual: Indicates that the object is virtual, -- that means it is a synthetic object introduced by the adapter for -- rendering purposes, e.g. an index range for large arrays. -- dataBreakpoint: Deprecated: Indicates that a data breakpoint -- is registered for the object. The hasDataBreakpoint attribute -- should generally be used instead. etc. [variablePresentationHintKind] :: VariablePresentationHint -> Maybe PresentationHintKind -- | Set of attributes represented as an array of strings. Before -- introducing additional values, try to use the listed values. Values: -- static: Indicates that the object is static. -- constant: Indicates that the object is a constant. -- readOnly: Indicates that the object is read only. -- rawText: Indicates that the object is a raw string. -- hasObjectId: Indicates that the object can have an Object ID -- created for it. canHaveObjectId: Indicates that the object -- has an Object ID associated with it. hasSideEffects: -- Indicates that the evaluation had side effects. -- hasDataBreakpoint: Indicates that the object has its value -- tracked by a data breakpoint. etc. [variablePresentationHintAttributes] :: VariablePresentationHint -> Maybe [PresentationHintAttributes] -- | Visibility of variable. Before introducing additional values, try to -- use the listed values. Values: public, private, -- protected, internal, final, etc. [variablePresentationHintVisibility] :: VariablePresentationHint -> Maybe PresentationHintVisibility -- | If true, clients can present the variable with a UI that supports a -- specific gesture to trigger its evaluation. This mechanism can be used -- for properties that require executing code when retrieving their value -- and where the code execution can be expensive and/or produce -- side-effects. A typical example are properties based on a getter -- function. Please note that in addition to the lazy flag, the -- variable's variablesReference is expected to refer to a -- variable that will provide the value through another variable -- request. [variablePresentationHintLazy] :: VariablePresentationHint -> Maybe Bool data ColumnDescriptorType ColumnDescriptorTypeString :: ColumnDescriptorType ColumnDescriptorTypeInt :: ColumnDescriptorType ColumnDescriptorTypeBool :: ColumnDescriptorType ColumnDescriptorTypeUTCTime :: UTCTime -> ColumnDescriptorType data ScopePresentationHint ScopePresentationHintArguments :: ScopePresentationHint ScopePresentationHintLocals :: ScopePresentationHint ScopePresentationHintRegisters :: ScopePresentationHint ScopePresentationHint :: Text -> ScopePresentationHint data PresentationHintKind PresentationHintKindProperty :: PresentationHintKind PresentationHintKindMethod :: PresentationHintKind PresentationHintKindClass :: PresentationHintKind PresentationHintKindData :: PresentationHintKind PresentationHintKindEvent :: PresentationHintKind PresentationHintKindBaseClass :: PresentationHintKind PresentationHintKindInnerClass :: PresentationHintKind PresentationHintKindInterface :: PresentationHintKind PresentationHintKindMostDerivedClass :: PresentationHintKind PresentationHintKindVirtual :: PresentationHintKind PresentationHintKindDataBreakpoint :: PresentationHintKind PresentationHintKind :: Text -> PresentationHintKind data PresentationHintAttributes PresentationHintAttributesStatic :: PresentationHintAttributes PresentationHintAttributesConstant :: PresentationHintAttributes PresentationHintAttributesReadOnly :: PresentationHintAttributes PresentationHintAttributesRawText :: PresentationHintAttributes PresentationHintAttributesHasObjectId :: PresentationHintAttributes PresentationHintAttributesCanHaveObjectId :: PresentationHintAttributes PresentationHintAttributesHasSideEffects :: PresentationHintAttributes PresentationHintAttributesHasDataBreakpoint :: PresentationHintAttributes PresentationHintAttributes :: String -> PresentationHintAttributes data PresentationHintVisibility PresentationHintVisibilityPublic :: PresentationHintVisibility PresentationHintVisibilityPrivate :: PresentationHintVisibility PresentationHintVisibilityProtected :: PresentationHintVisibility PresentationHintVisibilityInternal :: PresentationHintVisibility PresentationHintVisibilityFinal :: PresentationHintVisibility PresentationHintVisibility :: String -> PresentationHintVisibility data EventGroup EventGroupStart :: EventGroup EventGroupStartCollapsed :: EventGroup EventGroupEnd :: EventGroup data EventReason EventReasonNew :: EventReason EventReasonChanged :: EventReason EventReasonRemoved :: EventReason EventReason :: Text -> EventReason data StartMethod StartMethodLaunch :: StartMethod StartMethodAttach :: StartMethod StartMethodAttachForSuspendedLaunch :: StartMethod data EvaluateArgumentsContext EvaluateArgumentsContextWatch :: EvaluateArgumentsContext EvaluateArgumentsContextRepl :: EvaluateArgumentsContext EvaluateArgumentsContextHover :: EvaluateArgumentsContext EvaluateArgumentsContextClipboard :: EvaluateArgumentsContext EvaluateArgumentsContextVariable :: EvaluateArgumentsContext data PathFormat Path :: PathFormat URI :: PathFormat PathFormat :: Text -> PathFormat data Command CommandCancel :: Command CommandRunInTerminal :: Command CommandStartDebugging :: Command CommandInitialize :: Command CommandConfigurationDone :: Command CommandLaunch :: Command CommandAttach :: Command CommandRestart :: Command CommandDisconnect :: Command CommandTerminate :: Command CommandBreakpointLocations :: Command CommandSetBreakpoints :: Command CommandSetFunctionBreakpoints :: Command CommandSetExceptionBreakpoints :: Command CommandDataBreakpointInfo :: Command CommandSetDataBreakpoints :: Command CommandSetInstructionBreakpoints :: Command CommandContinue :: Command CommandNext :: Command CommandStepIn :: Command CommandStepOut :: Command CommandStepBack :: Command CommandReverseContinue :: Command CommandRestartFrame :: Command CommandGoTo :: Command CommandPause :: Command CommandStackTrace :: Command CommandScopes :: Command CommandVariables :: Command CommandSetVariable :: Command CommandSource :: Command CommandThreads :: Command CommandTerminateThreads :: Command CommandModules :: Command CommandLoadedSources :: Command CommandEvaluate :: Command CommandSetExpression :: Command CommandStepInTargets :: Command CommandGoToTargets :: Command CommandCompletions :: Command CommandExceptionInfo :: Command CommandReadMemory :: Command CommandWriteMemory :: Command CommandDisassemble :: Command CustomCommand :: Text -> Command data EventType EventTypeInitialized :: EventType EventTypeStopped :: EventType EventTypeContinued :: EventType EventTypeExited :: EventType EventTypeTerminated :: EventType EventTypeThread :: EventType EventTypeOutput :: EventType EventTypeBreakpoint :: EventType EventTypeModule :: EventType EventTypeLoadedSource :: EventType EventTypeProcess :: EventType EventTypeCapabilities :: EventType EventTypeProgressStart :: EventType EventTypeProgressUpdate :: EventType EventTypeProgressEnd :: EventType EventTypeInvalidated :: EventType EventTypeMemory :: EventType data StoppedEvent StoppedEvent :: StoppedEventReason -> Maybe Text -> Maybe Int -> Bool -> Maybe Text -> Bool -> [Int] -> StoppedEvent -- | The reason for the event. For backward compatibility this string is -- shown in the UI if the description attribute is missing (but -- it must not be translated). Values: step, -- breakpoint, exception, pause, -- entry, goto, 'function breakpoint', 'data -- breakpoint', 'instruction breakpoint', etc. [stoppedEventReason] :: StoppedEvent -> StoppedEventReason -- | The full reason for the event, e.g. 'Paused on exception'. This string -- is shown in the UI as is and can be translated. [stoppedEventDescription] :: StoppedEvent -> Maybe Text -- | The thread which was stopped. [stoppedEventThreadId] :: StoppedEvent -> Maybe Int -- | A value of true hints to the client that this event should not change -- the focus. [stoppedEventPreserveFocusHint] :: StoppedEvent -> Bool -- | Additional information. E.g. if reason is exception, text -- contains the exception name. This string is shown in the UI. [stoppedEventText] :: StoppedEvent -> Maybe Text -- | If allThreadsStopped is true, a debug adapter can announce -- that all threads have stopped. - The client should use this -- information to enable that all threads can be expanded to access their -- stacktraces. - If the attribute is missing or false, only the thread -- with the given threadId can be expanded. [stoppedEventAllThreadsStopped] :: StoppedEvent -> Bool -- | Ids of the breakpoints that triggered the event. In most cases there -- is only a single breakpoint but here are some examples for multiple -- breakpoints: - Different types of breakpoints map to the same -- location. - Multiple source breakpoints get collapsed to the same -- instruction by the compiler/runtime. - Multiple function breakpoints -- with different function names map to the same location. [stoppedEventHitBreakpointIds] :: StoppedEvent -> [Int] data ContinuedEvent ContinuedEvent :: Int -> Bool -> ContinuedEvent -- | The thread which was continued. [continuedEventThreadId] :: ContinuedEvent -> Int -- | If allThreadsContinued is true, a debug adapter can announce -- that all threads have continued. [continuedEventAllThreadsContinued] :: ContinuedEvent -> Bool data ExitedEvent ExitedEvent :: Int -> ExitedEvent -- | The exit code returned from the debuggee. [exitedEventExitCode] :: ExitedEvent -> Int data TerminatedEvent TerminatedEvent :: Bool -> TerminatedEvent -- | A debug adapter may set restart to true (or to an arbitrary -- object) to request that the client restarts the session. The value is -- not interpreted by the client and passed unmodified as an attribute -- __restart to the launch and attach -- requests. [terminatedEventRestart] :: TerminatedEvent -> Bool data ThreadEvent ThreadEvent :: ThreadEventReason -> Int -> ThreadEvent -- | The reason for the event. Values: started, exited, -- etc. [threadEventReason] :: ThreadEvent -> ThreadEventReason -- | The identifier of the thread. [threadEventThreadId] :: ThreadEvent -> Int data OutputEvent OutputEvent :: Maybe OutputEventCategory -> Text -> Maybe EventGroup -> Maybe Int -> Maybe Source -> Maybe Int -> Maybe Int -> Maybe Value -> OutputEvent -- | The output category. If not specified or if the category is not -- understood by the client, console is assumed. Values: -- console: Show the output in the client's default message UI, -- e.g. a 'debug console'. This category should only be used for -- informational output from the debugger (as opposed to the debuggee). -- important: A hint for the client to show the output in the -- client's UI for important and highly visible information, e.g. as a -- popup notification. This category should only be used for important -- messages from the debugger (as opposed to the debuggee). Since this -- category value is a hint, clients might ignore the hint and assume the -- console category. stdout: Show the output as normal -- program output from the debuggee. stderr: Show the output as -- error program output from the debuggee. telemetry: Send the -- output to telemetry instead of showing it to the user. etc. [outputEventCategory] :: OutputEvent -> Maybe OutputEventCategory -- | The output to report. [outputEventOutput] :: OutputEvent -> Text -- | Support for keeping an output log organized by grouping related -- messages. Values: start: Start a new group in expanded mode. -- Subsequent output events are members of the group and should be shown -- indented. The output attribute becomes the name of the group -- and is not indented. startCollapsed: Start a new group in -- collapsed mode. Subsequent output events are members of the group and -- should be shown indented (as soon as the group is expanded). The -- output attribute becomes the name of the group and is not -- indented. end: End the current group and decrease the -- indentation of subsequent output events. A non-empty output -- attribute is shown as the unindented end of the group. [outputEventGroup] :: OutputEvent -> Maybe EventGroup -- | If an attribute variablesReference exists and its value is -- > 0, the output contains objects which can be retrieved by passing -- variablesReference to the variables request as long as -- execution remains suspended. See 'Lifetime of Object References' in -- the Overview section for details. [outputEventVariablesReference] :: OutputEvent -> Maybe Int -- | The source location where the output was produced. [outputEventSource] :: OutputEvent -> Maybe Source -- | The source location's line where the output was produced. [outputEventLine] :: OutputEvent -> Maybe Int -- | The position in line where the output was produced. It is -- measured in UTF-16 code units and the client capability -- columnsStartAt1 determines whether it is 0- or 1-based. [outputEventColumn] :: OutputEvent -> Maybe Int -- | Additional data to report. For the telemetry category the -- data is sent to telemetry, for the other categories the data is shown -- in JSON format. [outputEventData] :: OutputEvent -> Maybe Value data BreakpointEvent BreakpointEvent :: EventReason -> Breakpoint -> BreakpointEvent -- | The reason for the event. Values: changed, new, -- removed, etc. [breakpointEventReason] :: BreakpointEvent -> EventReason -- | The id attribute is used to find the target breakpoint, the -- other attributes are used as the new values. [breakpointEvevntBreakpoint] :: BreakpointEvent -> Breakpoint data ModuleEvent ModuleEvent :: EventReason -> Module -> ModuleEvent -- | The reason for the event. Values: new, changed, -- removed [moduleEventReason] :: ModuleEvent -> EventReason -- | The new, changed, or removed module. In case of removed only -- the module id is used. [moduleEventModule] :: ModuleEvent -> Module data LoadedSourceEvent LoadedSourceEvent :: EventReason -> Source -> LoadedSourceEvent -- | The reason for the event. Values: new, changed, -- removed [loadedSourceEventReason] :: LoadedSourceEvent -> EventReason -- | The new, changed, or removed source. [loadedSourceSource] :: LoadedSourceEvent -> Source data ProcessEvent ProcessEvent :: Text -> Maybe Int -> Bool -> Maybe StartMethod -> Maybe Int -> ProcessEvent -- | The logical name of the process. This is usually the full path to -- process's executable file. Example: -- homeexamplemyprojprogram.js. [processEventName] :: ProcessEvent -> Text -- | The system process id of the debugged process. This property is -- missing for non-system processes. [processEventSystemProcessId] :: ProcessEvent -> Maybe Int -- | If true, the process is running on the same computer as the debug -- adapter. [processEventIsLocalProcess] :: ProcessEvent -> Bool -- | Describes how the debug engine started debugging this process. Values: -- launch: Process was launched under the debugger. -- attach: Debugger attached to an existing process. -- attachForSuspendedLaunch: A project launcher component has -- launched a new process in a suspended state and then asked the -- debugger to attach. [processEventStartMethod] :: ProcessEvent -> Maybe StartMethod -- | The size of a pointer or address for this process, in bits. This value -- may be used by clients when formatting addresses for display. [processEventPointerSize] :: ProcessEvent -> Maybe Int data CapabilitiesEvent CapabilitiesEvent :: Capabilities -> CapabilitiesEvent -- | The set of updated capabilities. [capabilities] :: CapabilitiesEvent -> Capabilities data ProgressStartEvent ProgressStartEvent :: Text -> Text -> Maybe Int -> Bool -> Maybe Text -> Maybe Int -> ProgressStartEvent -- | An ID that can be used in subsequent progressUpdate and -- progressEnd events to make them refer to the same progress -- reporting. IDs must be unique within a debug session. [progressStartEventProgressId] :: ProgressStartEvent -> Text -- | Short title of the progress reporting. Shown in the UI to describe the -- long running operation. [progressStartEventTitle] :: ProgressStartEvent -> Text -- | The request ID that this progress report is related to. If specified a -- debug adapter is expected to emit progress events for the long running -- request until the request has been either completed or cancelled. If -- the request ID is omitted, the progress report is assumed to be -- related to some general activity of the debug adapter. [progressStartEventRequestId] :: ProgressStartEvent -> Maybe Int -- | If true, the request that reports progress may be cancelled with a -- cancel request. So this property basically controls whether -- the client should use UX that supports cancellation. Clients that -- don't support cancellation are allowed to ignore the setting. [progressStartEventCancellable] :: ProgressStartEvent -> Bool -- | More detailed progress message. [progressStartEventMessage] :: ProgressStartEvent -> Maybe Text -- | Progress percentage to display (value range: 0 to 100). If omitted no -- percentage is shown. [progressStartEventPercentage] :: ProgressStartEvent -> Maybe Int data ProgressUpdateEvent ProgressUpdateEvent :: Text -> Maybe Text -> Maybe Int -> ProgressUpdateEvent -- | The ID that was introduced in the initial progressStart -- event. [progressUpdateEventProgressId] :: ProgressUpdateEvent -> Text -- | More detailed progress message. If omitted, the previous message (if -- any) is used. [progressUpdateEventMessage] :: ProgressUpdateEvent -> Maybe Text -- | Progress percentage to display (value range: 0 to 100). If omitted no -- percentage is shown. [progressUpdateEventPercentage] :: ProgressUpdateEvent -> Maybe Int data ProgressEndEvent ProgressEndEvent :: Text -> Maybe Text -> ProgressEndEvent -- | The ID that was introduced in the initial ProgressStartEvent. [progressEndEventProgressId] :: ProgressEndEvent -> Text -- | More detailed progress message. If omitted, the previous message (if -- any) is used. [progressEndEventMessage] :: ProgressEndEvent -> Maybe Text data InvalidatedEvent InvalidatedEvent :: [InvalidatedAreas] -> Maybe Int -> Maybe Int -> InvalidatedEvent -- | Set of logical areas that got invalidated. This property has a hint -- characteristic: a client can only be expected to make a 'best effort' -- in honoring the areas but there are no guarantees. If this property is -- missing, empty, or if values are not understood, the client should -- assume a single value all. [invalidatedEventAreas] :: InvalidatedEvent -> [InvalidatedAreas] -- | If specified, the client only needs to refetch data related to this -- thread. [invalidatedEventThreadId] :: InvalidatedEvent -> Maybe Int -- | If specified, the client only needs to refetch data related to this -- stack frame (and the threadId is ignored). [invalidatedEventStackFrameId] :: InvalidatedEvent -> Maybe Int data MemoryEvent MemoryEvent :: Text -> Int -> Int -> MemoryEvent -- | Memory reference of a memory range that has been updated. [memoryEventMemoryReference] :: MemoryEvent -> Text -- | Starting offset in bytes where memory has been updated. Can be -- negative. [memoryEventOffset] :: MemoryEvent -> Int -- | Number of bytes updated. [memoryEventCount] :: MemoryEvent -> Int data ServerConfig ServerConfig :: String -> Int -> Capabilities -> Bool -> ServerConfig [host] :: ServerConfig -> String [port] :: ServerConfig -> Int [serverCapabilities] :: ServerConfig -> Capabilities [debugLogging] :: ServerConfig -> Bool -- | Core type for Debug Adaptor to send and receive messages in a type -- safe way. the state is AdaptorState which holds configuration -- information, along with the current event / response being constructed -- and the type of the message. Of note: A StateT is used because -- adaptorPayload should not be shared with other threads. newtype Adaptor store a Adaptor :: ExceptT (ErrorMessage, Maybe Message) (StateT (AdaptorState store) IO) a -> Adaptor store a -- | The adaptor state is local to a single connection / thread data AdaptorState app AdaptorState :: MessageType -> ![Pair] -> AppStore app -> ServerConfig -> Handle -> Request -> SockAddr -> Maybe SessionId -> MVar (AdaptorState app) -> MVar () -> AdaptorState app -- | Current message type being created This was added as a convenience so -- we can set the request_seq and command fields -- automatically. [messageType] :: AdaptorState app -> MessageType -- | Payload of the current message to be sent This should never be -- manually modified by the end user The payload is accumulated -- automatically by usage of the API [payload] :: AdaptorState app -> ![Pair] -- | Global app store, accessible on a per session basis Initialized during -- attach sessions [appStore] :: AdaptorState app -> AppStore app -- | Configuration information for the ServerConfig Identical across all -- debugging sessions [serverConfig] :: AdaptorState app -> ServerConfig -- | Connection Handle [handle] :: AdaptorState app -> Handle -- | Connection Request information [request] :: AdaptorState app -> Request -- | Address of Connection [address] :: AdaptorState app -> SockAddr -- | Session ID Local to the current connection's debugger session [sessionId] :: AdaptorState app -> Maybe SessionId -- | Shared state for serializable concurrency [adaptorStateMVar] :: AdaptorState app -> MVar (AdaptorState app) -- | A lock for writing to a Handle. One lock is created per connection and -- exists for the duration of that connection [handleLock] :: AdaptorState app -> MVar () -- | Used to store a map of debugging sessions The ThreadId is meant -- to be an asynchronous operation that allows initalized debuggers to -- emit custom events when they receive messages from the debugger type AppStore app = TVar (HashMap SessionId (DebuggerThreadState, app)) -- | Used to signify a malformed message has been received data AdaptorException ParseException :: String -> AdaptorException ExpectedArguments :: String -> AdaptorException DebugSessionIdException :: String -> AdaptorException DebuggerException :: String -> AdaptorException data ErrorMessage ErrorMessageCancelled :: ErrorMessage ErrorMessageNotStopped :: ErrorMessage ErrorMessage :: Text -> ErrorMessage -- | On error (whenever success is false), the body can provide more -- details. newtype ErrorResponse ErrorResponse :: Maybe Message -> ErrorResponse [errorResponseError] :: ErrorResponse -> Maybe Message data Request Request :: Maybe Value -> Seq -> Command -> Request -- | Request arguments [args] :: Request -> Maybe Value -- | Request sequence number [requestSeqNum] :: Request -> Seq -- | Command of Request [command] :: Request -> Command type PayloadSize = Int type Seq = Int type SessionId = Text data CompletionsResponse CompletionsResponse :: [CompletionItem] -> CompletionsResponse -- | The possible completions for . [completionResponseTargets] :: CompletionsResponse -> [CompletionItem] data ContinueResponse ContinueResponse :: Bool -> ContinueResponse -- | The value true (or a missing property) signals to the client that all -- threads have been resumed. The value false indicates that not all -- threads were resumed. [continueResponseAllThreadsContinued] :: ContinueResponse -> Bool data DataBreakpointInfoResponse DataBreakpointInfoResponse :: Maybe Text -> Text -> [DataBreakpointAccessType] -> Maybe Bool -> DataBreakpointInfoResponse -- | An identifier for the data on which a data breakpoint can be -- registered with the setDataBreakpoints request or null if no -- data breakpoint is available. [dataBreakpointInfoResponseDataId] :: DataBreakpointInfoResponse -> Maybe Text -- | UI string that describes on what data the breakpoint is set on or why -- a data breakpoint is not available. [dataBreakpointInfoResponseDescription] :: DataBreakpointInfoResponse -> Text -- | Attribute lists the available access types for a potential data -- breakpoint. A UI client could surface this information. [dataBreakpointInfoResponseDescriptionAccessTypes] :: DataBreakpointInfoResponse -> [DataBreakpointAccessType] -- | Attribute indicates that a potential data breakpoint could be -- persisted across sessions. [dataBreakpointInfoResponseDescriptionCanPersist] :: DataBreakpointInfoResponse -> Maybe Bool data DisassembleResponse DisassembleResponse :: [DisassembledInstruction] -> DisassembleResponse -- | The list of disassembled instructions. [disassembleResponseInstructions] :: DisassembleResponse -> [DisassembledInstruction] data EvaluateResponse EvaluateResponse :: Text -> Text -> Maybe VariablePresentationHint -> Int -> Maybe Int -> Maybe Int -> Maybe Text -> EvaluateResponse -- | The result of the evaluate request. [evaluateResponseResult] :: EvaluateResponse -> Text -- | The type of the evaluate result. This attribute should only be -- returned by a debug adapter if the corresponding capability -- supportsVariableType is true. [evaluateResponseType] :: EvaluateResponse -> Text -- | Properties of an evaluate result that can be used to determine how to -- render the result in the UI. [evaluateResponsePresentationHint] :: EvaluateResponse -> Maybe VariablePresentationHint -- | If variablesReference is > 0, the evaluate result is -- structured and its children can be retrieved by passing -- variablesReference to the variables request as long as -- execution remains suspended. See 'Lifetime of Object References' in -- the Overview section for details. [evaluateResponseVariablesReference] :: EvaluateResponse -> Int -- | The number of named child variables. The client can use this -- information to present the variables in a paged UI and fetch them in -- chunks. The value should be less than or equal to 2147483647 (2^31-1). [evaluateResponseNamedVariables] :: EvaluateResponse -> Maybe Int -- | The number of indexed child variables. The client can use this -- information to present the variables in a paged UI and fetch them in -- chunks. The value should be less than or equal to 2147483647 (2^31-1). [evaluateResponseIndexedVariables] :: EvaluateResponse -> Maybe Int -- | A memory reference to a location appropriate for this result. For -- pointer type eval results, this is generally a reference to the memory -- address contained in the pointer. This attribute should be returned by -- a debug adapter if corresponding capability -- supportsMemoryReferences is true. [evaluateResponseMemoryReference] :: EvaluateResponse -> Maybe Text data ExceptionInfoResponse ExceptionInfoResponse :: Text -> Maybe Text -> ExceptionBreakMode -> Maybe ExceptionDetails -> ExceptionInfoResponse -- | ID of the exception that was thrown. [exceptionInfoResponseId] :: ExceptionInfoResponse -> Text -- | Descriptive text for the exception. [exceptionInfoDescriptionId] :: ExceptionInfoResponse -> Maybe Text -- | Mode that caused the exception notification to be raised. [exceptionInfoBreakMode] :: ExceptionInfoResponse -> ExceptionBreakMode -- | Detailed information about the exception. [exceptionInfoReponseDetails] :: ExceptionInfoResponse -> Maybe ExceptionDetails data GotoTargetsResponse GotoTargetsResponse :: [GotoTarget] -> GotoTargetsResponse -- | The possible goto targets of the specified location. [goToTargetsResponseTargets] :: GotoTargetsResponse -> [GotoTarget] data LoadedSourcesResponse LoadedSourcesResponse :: [Source] -> LoadedSourcesResponse -- | Set of loaded sources. [loadedSourcesResponseSources] :: LoadedSourcesResponse -> [Source] data ModulesResponse ModulesResponse :: [Module] -> Maybe Int -> ModulesResponse -- | All modules or range of modules. [modulesResponseModules] :: ModulesResponse -> [Module] -- | The total number of modules available. [modulesResponseTotalModules] :: ModulesResponse -> Maybe Int data ReadMemoryResponse ReadMemoryResponse :: Int -> Text -> Maybe Int -> Maybe Text -> ReadMemoryResponse -- | The address of the first byte of data returned. Treated as a hex value -- if prefixed with `0x`, or as a decimal value otherwise. [readMemoryResponseBody] :: ReadMemoryResponse -> Int -- | The number of unreadable bytes encountered after the last successfully -- read byte. This can be used to determine the number of bytes that -- should be skipped before a subsequent readMemory request -- succeeds. [readMemoryResponseAddress] :: ReadMemoryResponse -> Text -- | The bytes read from memory, encoded using base64. If the decoded -- length of `data` is less than the requested count in the -- original readMemory request, and unreadableBytes is -- zero or omitted, then the client should assume it's reached the end of -- readable memory. [readMemoryResponseUnreadableBytes] :: ReadMemoryResponse -> Maybe Int [readMemoryResponseData] :: ReadMemoryResponse -> Maybe Text newtype ScopesResponse ScopesResponse :: [Scope] -> ScopesResponse -- | The scopes of the stack frame. If the array has length zero, there are -- no scopes available. [scopes] :: ScopesResponse -> [Scope] data SetExpressionResponse SetExpressionResponse :: Text -> Maybe Text -> Maybe VariablePresentationHint -> Maybe Int -> Maybe Int -> Maybe Int -> SetExpressionResponse -- | The new value of the expression. [setExpressionResponseValue] :: SetExpressionResponse -> Text -- | The type of the value. This attribute should only be returned by a -- debug adapter if the corresponding capability -- supportsVariableType is true. [setExpressionResponseType] :: SetExpressionResponse -> Maybe Text -- | Properties of a value that can be used to determine how to render the -- result in the UI. [setExpressionResponsePresentationHint] :: SetExpressionResponse -> Maybe VariablePresentationHint -- | If variablesReference is > 0, the evaluate result is -- structured and its children can be retrieved by passing -- variablesReference to the variables request as long as -- execution remains suspended. See 'Lifetime of Object References' in -- the Overview section for details. [setExpressionResponseVariablesReference] :: SetExpressionResponse -> Maybe Int -- | The number of named child variables. The client can use this -- information to present the variables in a paged UI and fetch them in -- chunks. The value should be less than or equal to 2147483647 (2^31-1). [setExpressionResponseNamedVariables] :: SetExpressionResponse -> Maybe Int -- | The number of indexed child variables. The client can use this -- information to present the variables in a paged UI and fetch them in -- chunks. The value should be less than or equal to 2147483647 (2^31-1). [setExpressionResponseIndexedVariables] :: SetExpressionResponse -> Maybe Int data SetVariableResponse SetVariableResponse :: Text -> Maybe Text -> Maybe Int -> Maybe Int -> Maybe Int -> SetVariableResponse -- | The new value of the variable. [setVariableResponseValue] :: SetVariableResponse -> Text -- | The type of the new value. Typically shown in the UI when hovering -- over the value. [setVariableResponseType] :: SetVariableResponse -> Maybe Text -- | If variablesReference is > 0, the new value is structured -- and its children can be retrieved by passing -- variablesReference to the variables request as long as -- execution remains suspended. See 'Lifetime of Object References' in -- the Overview section for details. [setVariableResponseReference] :: SetVariableResponse -> Maybe Int -- | The number of named child variables. The client can use this -- information to present the variables in a paged UI and fetch them in -- chunks. The value should be less than or equal to 2147483647 (2^31-1). [setVariableResponseNamedVariables] :: SetVariableResponse -> Maybe Int -- | The number of indexed child variables. The client can use this -- information to present the variables in a paged UI and fetch them in -- chunks. The value should be less than or equal to 2147483647 (2^31-1). [setVariableResponseIndexedVariables] :: SetVariableResponse -> Maybe Int data SourceResponse SourceResponse :: Text -> Maybe Text -> SourceResponse -- | Content of the source reference. [sourceResponseContent] :: SourceResponse -> Text -- | Content type (MIME type) of the source. [sourceResponseMimeType] :: SourceResponse -> Maybe Text data StackTraceResponse StackTraceResponse :: [StackFrame] -> Maybe Int -> StackTraceResponse -- | The frames of the stack frame. If the array has length zero, there are -- no stack frames available. This means that there is no location -- information available. [stackFrames] :: StackTraceResponse -> [StackFrame] -- | The total number of frames available in the stack. If omitted or if -- totalFrames is larger than the available frames, a client is -- expected to request frames until a request returns less frames than -- requested (which indicates the end of the stack). Returning -- monotonically increasing totalFrames values for subsequent -- requests can be used to enforce paging in the client. [totalFrames] :: StackTraceResponse -> Maybe Int data StepInTargetsResponse StepInTargetsResponse :: [StepInTarget] -> StepInTargetsResponse -- | The possible step-in targets of the specified source location. [stepInTargetsResponseTargets] :: StepInTargetsResponse -> [StepInTarget] newtype ThreadsResponse ThreadsResponse :: [Thread] -> ThreadsResponse -- | All threads. [threads] :: ThreadsResponse -> [Thread] data VariablesResponse VariablesResponse :: [Variable] -> VariablesResponse -- | All (or a range) of variables for the given variable reference. [variables] :: VariablesResponse -> [Variable] data WriteMemoryResponse WriteMemoryResponse :: Maybe Int -> Maybe Int -> WriteMemoryResponse -- | Property that should be returned when allowPartial is true to -- indicate the offset of the first byte of data successfully written. -- Can be negative. [writeMemoryResponseOffset] :: WriteMemoryResponse -> Maybe Int -- | Property that should be returned when allowPartial is true to -- indicate the number of bytes starting from address that were -- successfully written. [writeMemoryResponseBytesWritten] :: WriteMemoryResponse -> Maybe Int data AttachRequestArguments AttachRequestArguments :: Maybe Value -> AttachRequestArguments -- | Arbitrary data from the previous, restarted session. The data is sent -- as the restart attribute of the terminated event. -- The client should leave the data intact. [attachRequestArgumentsRestart] :: AttachRequestArguments -> Maybe Value data BreakpointLocationsArguments BreakpointLocationsArguments :: Source -> Int -> Maybe Int -> Maybe Int -> Maybe Int -> BreakpointLocationsArguments -- | The source location of the breakpoints; either `source.path` or -- `source.reference` must be specified. [breakpointLocationsArgumentsSource] :: BreakpointLocationsArguments -> Source -- | Start line of range to search possible breakpoint locations in. If -- only the line is specified, the request returns all possible locations -- in that line. [breakpointLocationsArgumentsLine] :: BreakpointLocationsArguments -> Int -- | Start position within line to search possible breakpoint -- locations in. It is measured in UTF-16 code units and the client -- capability columnsStartAt1 determines whether it is 0- or -- 1-based. If no column is given, the first position in the start line -- is assumed. [breakpointLocationsArgumentsColumn] :: BreakpointLocationsArguments -> Maybe Int -- | End line of range to search possible breakpoint locations in. If no -- end line is given, then the end line is assumed to be the start line. [breakpointLocationsArgumentsEndLine] :: BreakpointLocationsArguments -> Maybe Int -- | End position within endLine to search possible breakpoint -- locations in. It is measured in UTF-16 code units and the client -- capability columnsStartAt1 determines whether it is 0- or -- 1-based. If no end column is given, the last position in the end line -- is assumed. [breakpointLocationsArgumentsEndColumn] :: BreakpointLocationsArguments -> Maybe Int data CompletionsArguments CompletionsArguments :: Maybe Int -> Text -> Int -> Maybe Int -> CompletionsArguments -- | Returns completions in the scope of this stack frame. If not -- specified, the completions are returned for the global scope. [completionsArgumentsFrameId] :: CompletionsArguments -> Maybe Int -- | One or more source lines. Typically this is the text users have typed -- into the debug console before they asked for completion. [completionsArgumentsText] :: CompletionsArguments -> Text -- | The position within text for which to determine the -- completion proposals. It is measured in UTF-16 code units and the -- client capability columnsStartAt1 determines whether it is 0- -- or 1-based. [completionsArgumentsColumn] :: CompletionsArguments -> Int -- | A line for which to determine the completion proposals. If missing the -- first line of the text is assumed. [completionsArgumentsLine] :: CompletionsArguments -> Maybe Int data ConfigurationDoneArguments ConfigurationDoneArguments :: ConfigurationDoneArguments data ContinueArguments ContinueArguments :: Int -> Bool -> ContinueArguments -- | Specifies the active thread. If the debug adapter supports single -- thread execution (see supportsSingleThreadExecutionRequests) -- and the argument singleThread is true, only the thread with -- this ID is resumed. [continueArgumentsThreadId] :: ContinueArguments -> Int -- | If this flag is true, execution is resumed only for the thread with -- given threadId. [continueArgumentsSingleThread] :: ContinueArguments -> Bool data DataBreakpointInfoArguments DataBreakpointInfoArguments :: Maybe Int -> Text -> Maybe Int -> DataBreakpointInfoArguments -- | Reference to the variable container if the data breakpoint is -- requested for a child of the container. The -- variablesReference must have been obtained in the current -- suspended state. See 'Lifetime of Object References' in the Overview -- section for details. [dataBreakpointInfoArgumentsVariablesReference] :: DataBreakpointInfoArguments -> Maybe Int -- | The name of the variable's child to obtain data breakpoint information -- for. If variablesReference isn't specified, this can be an -- expression. [dataBreakpointInfoArgumentsName] :: DataBreakpointInfoArguments -> Text -- | When name is an expression, evaluate it in the scope of this -- stack frame. If not specified, the expression is evaluated in the -- global scope. When variablesReference is specified, this -- property has no effect. [dataBreakpointInfoArgumentsFrameId] :: DataBreakpointInfoArguments -> Maybe Int data DisassembleArguments DisassembleArguments :: Text -> Maybe Int -> Maybe Int -> Int -> Bool -> DisassembleArguments -- | Memory reference to the base location containing the instructions to -- disassemble. [disassembleArgumentsMemoryReference] :: DisassembleArguments -> Text -- | Offset (in bytes) to be applied to the reference location before -- disassembling. Can be negative. [disassembleArgumentsOffset] :: DisassembleArguments -> Maybe Int -- | Offset (in instructions) to be applied after the byte offset (if any) -- before disassembling. Can be negative. [disassembleArgumentsInstructionOffset] :: DisassembleArguments -> Maybe Int -- | Number of instructions to disassemble starting at the specified -- location and offset. An adapter must return exactly this number of -- instructions - any unavailable instructions should be replaced with an -- implementation-defined 'invalid instruction' value. [disassembleArgumentsInstructionCount] :: DisassembleArguments -> Int -- | If true, the adapter should attempt to resolve memory addresses and -- other values to symbolic names. [disassembleArgumentsResolveSymbols] :: DisassembleArguments -> Bool data DisconnectArguments DisconnectArguments :: Bool -> Bool -> Bool -> DisconnectArguments -- | A value of true indicates that this disconnect request is -- part of a restart sequence. [disconnectArgumentsRestart] :: DisconnectArguments -> Bool -- | Indicates whether the debuggee should be terminated when the debugger -- is disconnected. If unspecified, the debug adapter is free to do -- whatever it thinks is best. The attribute is only honored by a debug -- adapter if the corresponding capability -- supportTerminateDebuggee is true. [disconnectArgumentsTerminateDebuggee] :: DisconnectArguments -> Bool -- | Indicates whether the debuggee should stay suspended when the debugger -- is disconnected. If unspecified, the debuggee should resume execution. -- The attribute is only honored by a debug adapter if the corresponding -- capability supportSuspendDebuggee is true. [disconnectArgumentsSuspendDebuggee] :: DisconnectArguments -> Bool data EvaluateArguments EvaluateArguments :: Text -> Maybe Int -> Maybe EvaluateArgumentsContext -> Maybe ValueFormat -> EvaluateArguments -- | The expression to evaluate. [evaluateArgumentsExpression] :: EvaluateArguments -> Text -- | Evaluate the expression in the scope of this stack frame. If not -- specified, the expression is evaluated in the global scope. [evaluateArgumentsFrameId] :: EvaluateArguments -> Maybe Int -- | The context in which the evaluate request is used. Values: -- watch: evaluate is called from a watch view context. -- repl: evaluate is called from a REPL context. hover: -- evaluate is called to generate the debug hover contents. This value -- should only be used if the corresponding capability -- supportsEvaluateForHovers is true. clipboard: evaluate -- is called to generate clipboard contents. This value should only be -- used if the corresponding capability supportsClipboardContext -- is true. variables: evaluate is called from a variables view -- context. etc. [evaluateArgumentsContext] :: EvaluateArguments -> Maybe EvaluateArgumentsContext -- | Specifies details on how to format the result. The attribute is only -- honored by a debug adapter if the corresponding capability -- supportsValueFormattingOptions is true. [evaluateArgumentsFormat] :: EvaluateArguments -> Maybe ValueFormat data ExceptionInfoArguments ExceptionInfoArguments :: Int -> ExceptionInfoArguments -- | Thread for which exception information should be retrieved. [exceptionInfoArgumentsThreadId] :: ExceptionInfoArguments -> Int data GotoArguments GotoArguments :: Int -> Int -> GotoArguments -- | Set the goto target for this thread. [gotoArgumentsThreadId] :: GotoArguments -> Int -- | The location where the debuggee will continue to run. [gotoArgumentsTargetId] :: GotoArguments -> Int data GotoTargetsArguments GotoTargetsArguments :: Source -> Int -> Maybe Int -> GotoTargetsArguments -- | The source location for which the goto targets are determined. [gotoTargetsArgumentsSource] :: GotoTargetsArguments -> Source -- | The line location for which the goto targets are determined. [gotoTargetsArgumentsLine] :: GotoTargetsArguments -> Int -- | The position within line for which the goto targets are -- determined. It is measured in UTF-16 code units and the client -- capability columnsStartAt1 determines whether it is 0- or -- 1-based. [gotoTargetsArgumentsColumn] :: GotoTargetsArguments -> Maybe Int data InitializeRequestArguments InitializeRequestArguments :: Maybe Text -> Maybe Text -> Text -> Maybe Text -> Bool -> Bool -> Maybe PathFormat -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> InitializeRequestArguments -- | The ID of the client using this adapter. [clientID] :: InitializeRequestArguments -> Maybe Text -- | The human-readable name of the client using this adapter. [clientName] :: InitializeRequestArguments -> Maybe Text -- | The ID of the debug adapter. [adapterID] :: InitializeRequestArguments -> Text -- | The ISO-639 locale of the client using this adapter, e.g. en-US or -- de-CH. [locale] :: InitializeRequestArguments -> Maybe Text -- | If true all line numbers are 1-based (default). [linesStartAt1] :: InitializeRequestArguments -> Bool -- | If true all column numbers are 1-based (default). [columnsStartAt1] :: InitializeRequestArguments -> Bool -- | Determines in what format paths are specified. The default is -- path, which is the native format. Values: path, -- uri, etc. [pathFormat] :: InitializeRequestArguments -> Maybe PathFormat -- | Client supports the `type` attribute for variables. [supportsVariableType] :: InitializeRequestArguments -> Bool -- | Client supports the paging of variables. [supportsVariablePaging] :: InitializeRequestArguments -> Bool -- | Client supports the runInTerminal request. [supportsRunInTerminalRequest] :: InitializeRequestArguments -> Bool -- | Client supports memory references. [supportsMemoryReferences] :: InitializeRequestArguments -> Bool -- | Client supports progress reporting. [supportsProgressReporting] :: InitializeRequestArguments -> Bool -- | Client supports the invalidated event. [supportsInvalidatedEvent] :: InitializeRequestArguments -> Bool -- | Client supports the memory event. [supportsMemoryEvent] :: InitializeRequestArguments -> Bool -- | Client supports the argsCanBeInterpretedByShell attribute on -- the runInTerminal request. [supportsArgsCanBeInterpretedByShell] :: InitializeRequestArguments -> Bool -- | Client supports the startDebugging request. [supportsStartDebuggingRequest] :: InitializeRequestArguments -> Bool data LaunchRequestArguments LaunchRequestArguments :: Bool -> Maybe Value -> LaunchRequestArguments -- | If true, the launch request should launch the program without enabling -- debugging. [launchRequestArgumentsNoDebug] :: LaunchRequestArguments -> Bool -- | Arbitrary data from the previous, restarted session. The data is sent -- as the restart attribute of the terminated event. -- The client should leave the data intact. [launchRequestArgumentsRestart] :: LaunchRequestArguments -> Maybe Value data LoadedSourcesArguments LoadedSourcesArguments :: LoadedSourcesArguments data ModulesArguments ModulesArguments :: Maybe Int -> Maybe Int -> ModulesArguments -- | The index of the first module to return; if omitted modules start at -- 0. [modulesArgumentsStartModule] :: ModulesArguments -> Maybe Int -- | The number of modules to return. If moduleCount is not -- specified or 0, all modules are returned. [modulesArgumentsModuleCount] :: ModulesArguments -> Maybe Int data NextArguments NextArguments :: Int -> Maybe Bool -> Maybe SteppingGranularity -> NextArguments -- | Specifies the thread for which to resume execution for one step (of -- the given granularity). [nextArgumentsThreadId] :: NextArguments -> Int -- | If this flag is true, all other suspended threads are not resumed. [nextArgumentsSingleThread] :: NextArguments -> Maybe Bool -- | Stepping granularity. If no granularity is specified, a granularity of -- statement is assumed. [nextArgumentsGranularity] :: NextArguments -> Maybe SteppingGranularity data PauseArguments PauseArguments :: Int -> PauseArguments -- | Pause execution for this thread. [pauseArgumentsThreadId] :: PauseArguments -> Int data ReadMemoryArguments ReadMemoryArguments :: Text -> Maybe Int -> Int -> ReadMemoryArguments -- | Memory reference to the base location from which data should be read. [readMemoryArgumentsmemoryReference] :: ReadMemoryArguments -> Text -- | Offset (in bytes) to be applied to the reference location before -- reading data. Can be negative. [readMemoryArgumentsOffset] :: ReadMemoryArguments -> Maybe Int -- | Number of bytes to read at the specified location and offset. [readMemoryArgumentsCount] :: ReadMemoryArguments -> Int data RestartArguments RestartArguments :: Maybe (Either LaunchRequestArguments AttachRequestArguments) -> RestartArguments -- | The latest version of the launch or attach -- configuration. [restartArgumentsArguments] :: RestartArguments -> Maybe (Either LaunchRequestArguments AttachRequestArguments) data RestartFrameArguments RestartFrameArguments :: Int -> RestartFrameArguments -- | Restart the stack frame identified by frameId. The -- frameId must have been obtained in the current suspended -- state. See 'Lifetime of Object References' in the Overview section for -- details. [restartFrameArgumentsFrameId] :: RestartFrameArguments -> Int data ReverseContinueArguments ReverseContinueArguments :: Int -> Bool -> ReverseContinueArguments -- | Specifies the active thread. If the debug adapter supports single -- thread execution (see supportsSingleThreadExecutionRequests) -- and the singleThread argument is true, only the thread with -- this ID is resumed. [reverseContinueArgumentsThreadId] :: ReverseContinueArguments -> Int -- | If this flag is true, backward execution is resumed only for the -- thread with given threadId. [reverseContinueArgumentsSingleThread] :: ReverseContinueArguments -> Bool data ScopesArguments ScopesArguments :: Int -> ScopesArguments -- | Retrieve the scopes for the stack frame identified by -- frameId. The frameId must have been obtained in the -- current suspended state. See 'Lifetime of Object References' in the -- Overview section for details. [scopesArgumentsFrameId] :: ScopesArguments -> Int data SetBreakpointsArguments SetBreakpointsArguments :: Source -> Maybe [SourceBreakpoint] -> Maybe [Int] -> Bool -> SetBreakpointsArguments -- | The source location of the breakpoints; either `source.path` or -- `source.sourceReference` must be specified. [setBreakpointsArgumentsSource] :: SetBreakpointsArguments -> Source -- | The code locations of the breakpoints. [setBreakpointsArgumentsBreakpoints] :: SetBreakpointsArguments -> Maybe [SourceBreakpoint] -- | Deprecated: The code locations of the breakpoints. [setBreakpointsArgumentsLines] :: SetBreakpointsArguments -> Maybe [Int] -- | A value of true indicates that the underlying source has been modified -- which results in new breakpoint locations. [setBreakpointsArgumentsSourceModified] :: SetBreakpointsArguments -> Bool data SetDataBreakpointsArguments SetDataBreakpointsArguments :: [DataBreakpoint] -> SetDataBreakpointsArguments -- | The contents of this array replaces all existing data breakpoints. An -- empty array clears all data breakpoints. [setDataBreakpointsArgumentsBreakpoints] :: SetDataBreakpointsArguments -> [DataBreakpoint] data SetExceptionBreakpointsArguments SetExceptionBreakpointsArguments :: [Text] -> Maybe ExceptionFilterOptions -> Maybe ExceptionOptions -> SetExceptionBreakpointsArguments -- | Set of exception filters specified by their ID. The set of all -- possible exception filters is defined by the -- exceptionBreakpointFilters capability. The filter and -- filterOptions sets are additive. [setExceptionBreakpointsArgumentsFilters] :: SetExceptionBreakpointsArguments -> [Text] -- | Set of exception filters and their options. The set of all possible -- exception filters is defined by the exceptionBreakpointFilters -- capability. This attribute is only honored by a debug adapter if the -- corresponding capability supportsExceptionFilterOptions is -- true. The filter and filterOptions sets are additive. [setExceptionBreakpointsArgumentsFilterOptions] :: SetExceptionBreakpointsArguments -> Maybe ExceptionFilterOptions -- | Configuration options for selected exceptions. The attribute is only -- honored by a debug adapter if the corresponding capability -- supportsExceptionOptions is true. [setExceptionBreakpointsArgumentsExceptionOptions] :: SetExceptionBreakpointsArguments -> Maybe ExceptionOptions data SetExpressionArguments SetExpressionArguments :: Text -> Text -> Maybe Int -> Maybe ValueFormat -> SetExpressionArguments -- | The l-value expression to assign to. [setExpressionArgumentsExpression] :: SetExpressionArguments -> Text -- | The value expression to assign to the l-value expression. [setExpressionArgumentsValue] :: SetExpressionArguments -> Text -- | Evaluate the expressions in the scope of this stack frame. If not -- specified, the expressions are evaluated in the global scope. [setExpressionArgumentsFrameId] :: SetExpressionArguments -> Maybe Int -- | Specifies how the resulting value should be formatted. [setExpressionArgumentsFormat] :: SetExpressionArguments -> Maybe ValueFormat data SetFunctionBreakpointsArguments SetFunctionBreakpointsArguments :: [FunctionBreakpoint] -> SetFunctionBreakpointsArguments -- | The function names of the breakpoints. [setFunctionBreakpointsArgumentsBreakpoints] :: SetFunctionBreakpointsArguments -> [FunctionBreakpoint] data SetInstructionBreakpointsArguments SetInstructionBreakpointsArguments :: [InstructionBreakpoint] -> SetInstructionBreakpointsArguments -- | The instruction references of the breakpoints [breakpoints] :: SetInstructionBreakpointsArguments -> [InstructionBreakpoint] data SetVariableArguments SetVariableArguments :: Int -> Text -> Text -> Maybe ValueFormat -> SetVariableArguments -- | The reference of the variable container. The -- variablesReference must have been obtained in the current -- suspended state. See 'Lifetime of Object References' in the Overview -- section for details. [setVariableArgumentsVariablesReference] :: SetVariableArguments -> Int -- | The name of the variable in the container. [setVariableArgumentsName] :: SetVariableArguments -> Text -- | The value of the variable. [setVariableArgumentsValue] :: SetVariableArguments -> Text -- | Specifies details on how to format the response value. [setVariableArgumentsFormat] :: SetVariableArguments -> Maybe ValueFormat data SourceArguments SourceArguments :: Maybe Source -> Int -> SourceArguments -- | Specifies the source content to load. Either `source.path` or -- `source.sourceReference` must be specified. [sourceArgumentsSource] :: SourceArguments -> Maybe Source -- | The reference to the source. This is the same as -- `source.sourceReference`. This is provided for backward compatibility -- since old clients do not understand the source attribute. [sourceArgumentsSourceReference] :: SourceArguments -> Int data StackTraceArguments StackTraceArguments :: Int -> Maybe Int -> Maybe Int -> Maybe StackFrameFormat -> StackTraceArguments -- | Retrieve the stacktrace for this thread. [stackTraceArgumentsThreadId] :: StackTraceArguments -> Int -- | The index of the first frame to return; if omitted frames start at 0. [stackTraceArgumentsStartFrame] :: StackTraceArguments -> Maybe Int -- | The maximum number of frames to return. If levels is not specified or -- 0, all frames are returned. [stackTraceArgumentsLevels] :: StackTraceArguments -> Maybe Int -- | Specifies details on how to format the stack frames. The attribute is -- only honored by a debug adapter if the corresponding capability -- supportsValueFormattingOptions is true. [stackTraceArgumentsFormat] :: StackTraceArguments -> Maybe StackFrameFormat data StepBackArguments StepBackArguments :: Int -> Bool -> Maybe SteppingGranularity -> StepBackArguments -- | Specifies the thread for which to resume execution for one step -- backwards (of the given granularity). [stepBackArgumentsThreadId] :: StepBackArguments -> Int -- | If this flag is true, all other suspended threads are not resumed. [stepBackArgumentsSingleThread] :: StepBackArguments -> Bool -- | Stepping granularity to step. If no granularity is specified, a -- granularity of statement is assumed. [stepBackArgumentsGranularity] :: StepBackArguments -> Maybe SteppingGranularity data StepInArguments StepInArguments :: Int -> Bool -> Maybe Int -> Maybe SteppingGranularity -> StepInArguments -- | Specifies the thread for which to resume execution for one step-into -- (of the given granularity). [stepInArgumentsThreadId] :: StepInArguments -> Int -- | If this flag is true, all other suspended threads are not resumed. [stepInArgumentsSingleThread] :: StepInArguments -> Bool -- | Id of the target to step into. [stepInArgumentsTargetId] :: StepInArguments -> Maybe Int -- | Stepping granularity. If no granularity is specified, a granularity of -- statement is assumed. [stepInArgumentsGranularity] :: StepInArguments -> Maybe SteppingGranularity data StepInTargetsArguments StepInTargetsArguments :: Int -> StepInTargetsArguments -- | The stack frame for which to retrieve the possible step-in targets. [stepInTargetsArgumentsFrameId] :: StepInTargetsArguments -> Int data StepOutArguments StepOutArguments :: Int -> Bool -> Maybe SteppingGranularity -> StepOutArguments -- | Specifies the thread for which to resume execution for one step-out -- (of the given granularity). [stepOutArgumentsThreadId] :: StepOutArguments -> Int -- | If this flag is true, all other suspended threads are not resumed. [stepOutArgumentsSingleThread] :: StepOutArguments -> Bool -- | Stepping granularity. If no granularity is specified, a granularity of -- statement is assumed. [stepOutArgumentsGranularity] :: StepOutArguments -> Maybe SteppingGranularity data TerminateArguments TerminateArguments :: Bool -> TerminateArguments -- | A value of true indicates that this terminate request is part -- of a restart sequence. [terminateArgumentsRestart] :: TerminateArguments -> Bool newtype TerminateThreadsArguments TerminateThreadsArguments :: [Int] -> TerminateThreadsArguments -- | Ids of threads to be terminated. [terminateThreadsArgumentsThreadIds] :: TerminateThreadsArguments -> [Int] data ThreadsArguments ThreadsArguments :: ThreadsArguments data VariablesArguments VariablesArguments :: Int -> Maybe VariablesFilter -> Maybe Int -> Maybe Int -> Maybe ValueFormat -> VariablesArguments -- | The variable for which to retrieve its children. The -- variablesReference must have been obtained in the current -- suspended state. See 'Lifetime of Object References' in the Overview -- section for details. [variablesArgumentsVariablesReference] :: VariablesArguments -> Int -- | Filter to limit the child variables to either named or indexed. If -- omitted, both types are fetched. Values: indexed, -- named [variablesArgumentsFilter] :: VariablesArguments -> Maybe VariablesFilter -- | The index of the first variable to return; if omitted children start -- at 0. [variablesArgumentsStart] :: VariablesArguments -> Maybe Int -- | The number of variables to return. If count is missing or 0, all -- variables are returned. [variablesArgumentsCount] :: VariablesArguments -> Maybe Int -- | Specifies details on how to format the Variable values. The attribute -- is only honored by a debug adapter if the corresponding capability -- supportsValueFormattingOptions is true. [variablesArgumentsFormat] :: VariablesArguments -> Maybe ValueFormat data WriteMemoryArguments WriteMemoryArguments :: Text -> Maybe Int -> Bool -> Text -> WriteMemoryArguments -- | Memory reference to the base location to which data should be written. [writeMemoryMemoryReference] :: WriteMemoryArguments -> Text -- | Offset (in bytes) to be applied to the reference location before -- writing data. Can be negative. [writeMemoryArgumentsOffset] :: WriteMemoryArguments -> Maybe Int -- | Property to control partial writes. If true, the debug adapter should -- attempt to write memory even if the entire memory region is not -- writable. In such a case the debug adapter should stop after hitting -- the first byte of memory that cannot be written and return the number -- of bytes written in the response via the offset and -- bytesWritten properties. If false or missing, a debug adapter -- should attempt to verify the region is writable before writing, and -- fail the response if it is not. [writeMemoryArgumentsAllowPartial] :: WriteMemoryArguments -> Bool -- | Bytes to write, encoded using base64. [writeMemoryArgumentsData] :: WriteMemoryArguments -> Text data RunInTerminalResponse RunInTerminalResponse :: Maybe Int -> Maybe Int -> RunInTerminalResponse -- | The process ID. The value should be less than or equal to 2147483647 -- (2^31-1). [runInTerminalResponseProcessId] :: RunInTerminalResponse -> Maybe Int -- | The process ID of the terminal shell. The value should be less than or -- equal to 2147483647 (2^31-1). [runInTerminalResponseShellProcessId] :: RunInTerminalResponse -> Maybe Int defaultBreakpoint :: Breakpoint defaultBreakpointLocation :: BreakpointLocation defaultCapabilities :: Capabilities defaultColumnDescriptor :: ColumnDescriptor defaultCompletionItem :: CompletionItem defaultDisassembledInstruction :: DisassembledInstruction defaultExceptionBreakpointsFilter :: ExceptionBreakpointsFilter defaultExceptionDetails :: ExceptionDetails defaultFunctionBreakpoint :: FunctionBreakpoint defaultGotoTarget :: GotoTarget defaultMessage :: Message defaultModule :: Module defaultModulesViewDescriptor :: ModulesViewDescriptor defaultScope :: Scope defaultSource :: Source defaultSourceBreakpoint :: SourceBreakpoint defaultStackFrame :: StackFrame defaultStackFrameFormat :: StackFrameFormat defaultStepInTarget :: StepInTarget defaultThread :: Thread defaultValueFormat :: ValueFormat defaultVariable :: Variable defaultVariablePresentationHint :: VariablePresentationHint data Level DEBUG :: Level INFO :: Level WARN :: Level ERROR :: Level data DebugStatus SENT :: DebugStatus RECEIVED :: DebugStatus -- | DebuggerThreadState State to hold both the thread that executes -- the debugger and the thread used to propagate output events from the -- debugger + debuggee to the editor (via the DAP server). data DebuggerThreadState DebuggerThreadState :: ThreadId -> ThreadId -> DebuggerThreadState [debuggerThread] :: DebuggerThreadState -> ThreadId [debuggerOutputEventThread] :: DebuggerThreadState -> ThreadId