123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #pragma once
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <string>
- #include <cm3p/cppdap/protocol.h>
- #include <cmcppdap/include/dap/optional.h>
- #include <cmcppdap/include/dap/typeof.h>
- #include <cmcppdap/include/dap/types.h>
- namespace dap {
- // Represents the cmake version.
- struct CMakeVersion : public InitializeResponse
- {
- // The major version number.
- integer major;
- // The minor version number.
- integer minor;
- // The patch number.
- integer patch;
- // The full version string.
- string full;
- };
- DAP_DECLARE_STRUCT_TYPEINFO(CMakeVersion);
- // Response to `initialize` request.
- struct CMakeInitializeResponse : public Response
- {
- // The set of additional module information exposed by the debug adapter.
- optional<array<ColumnDescriptor>> additionalModuleColumns;
- // The set of characters that should trigger completion in a REPL. If not
- // specified, the UI should assume the `.` character.
- optional<array<string>> completionTriggerCharacters;
- // Available exception filter options for the `setExceptionBreakpoints`
- // request.
- optional<array<ExceptionBreakpointsFilter>> exceptionBreakpointFilters;
- // The debug adapter supports the `suspendDebuggee` attribute on the
- // `disconnect` request.
- optional<boolean> supportSuspendDebuggee;
- // The debug adapter supports the `terminateDebuggee` attribute on the
- // `disconnect` request.
- optional<boolean> supportTerminateDebuggee;
- // Checksum algorithms supported by the debug adapter.
- optional<array<ChecksumAlgorithm>> supportedChecksumAlgorithms;
- // The debug adapter supports the `breakpointLocations` request.
- optional<boolean> supportsBreakpointLocationsRequest;
- // The debug adapter supports the `cancel` request.
- optional<boolean> supportsCancelRequest;
- // The debug adapter supports the `clipboard` context value in the `evaluate`
- // request.
- optional<boolean> supportsClipboardContext;
- // The debug adapter supports the `completions` request.
- optional<boolean> supportsCompletionsRequest;
- // The debug adapter supports conditional breakpoints.
- optional<boolean> supportsConditionalBreakpoints;
- // The debug adapter supports the `configurationDone` request.
- optional<boolean> supportsConfigurationDoneRequest;
- // The debug adapter supports data breakpoints.
- optional<boolean> supportsDataBreakpoints;
- // 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.
- optional<boolean> supportsDelayedStackTraceLoading;
- // The debug adapter supports the `disassemble` request.
- optional<boolean> supportsDisassembleRequest;
- // The debug adapter supports a (side effect free) `evaluate` request for
- // data hovers.
- optional<boolean> supportsEvaluateForHovers;
- // The debug adapter supports `filterOptions` as an argument on the
- // `setExceptionBreakpoints` request.
- optional<boolean> supportsExceptionFilterOptions;
- // The debug adapter supports the `exceptionInfo` request.
- optional<boolean> supportsExceptionInfoRequest;
- // The debug adapter supports `exceptionOptions` on the
- // `setExceptionBreakpoints` request.
- optional<boolean> supportsExceptionOptions;
- // The debug adapter supports function breakpoints.
- optional<boolean> supportsFunctionBreakpoints;
- // The debug adapter supports the `gotoTargets` request.
- optional<boolean> supportsGotoTargetsRequest;
- // The debug adapter supports breakpoints that break execution after a
- // specified number of hits.
- optional<boolean> supportsHitConditionalBreakpoints;
- // The debug adapter supports adding breakpoints based on instruction
- // references.
- optional<boolean> supportsInstructionBreakpoints;
- // The debug adapter supports the `loadedSources` request.
- optional<boolean> supportsLoadedSourcesRequest;
- // The debug adapter supports log points by interpreting the `logMessage`
- // attribute of the `SourceBreakpoint`.
- optional<boolean> supportsLogPoints;
- // The debug adapter supports the `modules` request.
- optional<boolean> supportsModulesRequest;
- // The debug adapter supports the `readMemory` request.
- optional<boolean> supportsReadMemoryRequest;
- // The debug adapter supports restarting a frame.
- optional<boolean> supportsRestartFrame;
- // 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.
- optional<boolean> supportsRestartRequest;
- // The debug adapter supports the `setExpression` request.
- optional<boolean> supportsSetExpression;
- // The debug adapter supports setting a variable to a value.
- optional<boolean> supportsSetVariable;
- // The debug adapter supports the `singleThread` property on the execution
- // requests (`continue`, `next`, `stepIn`, `stepOut`, `reverseContinue`,
- // `stepBack`).
- optional<boolean> supportsSingleThreadExecutionRequests;
- // The debug adapter supports stepping back via the `stepBack` and
- // `reverseContinue` requests.
- optional<boolean> supportsStepBack;
- // The debug adapter supports the `stepInTargets` request.
- optional<boolean> supportsStepInTargetsRequest;
- // The debug adapter supports stepping granularities (argument `granularity`)
- // for the stepping requests.
- optional<boolean> supportsSteppingGranularity;
- // The debug adapter supports the `terminate` request.
- optional<boolean> supportsTerminateRequest;
- // The debug adapter supports the `terminateThreads` request.
- optional<boolean> supportsTerminateThreadsRequest;
- // The debug adapter supports a `format` attribute on the `stackTrace`,
- // `variables`, and `evaluate` requests.
- optional<boolean> supportsValueFormattingOptions;
- // The debug adapter supports the `writeMemory` request.
- optional<boolean> supportsWriteMemoryRequest;
- // The CMake version.
- CMakeVersion cmakeVersion;
- };
- DAP_DECLARE_STRUCT_TYPEINFO(CMakeInitializeResponse);
- // The `initialize` request is sent as the first request from the client to the
- // debug adapter in order to configure it with client capabilities and to
- // retrieve capabilities from the debug adapter. Until the debug adapter has
- // responded with an `initialize` response, the client must not send any
- // additional requests or events to the debug adapter. In addition the debug
- // adapter is not allowed to send any requests or events to the client until it
- // has responded with an `initialize` response. The `initialize` request may
- // only be sent once.
- struct CMakeInitializeRequest : public Request
- {
- using Response = CMakeInitializeResponse;
- // The ID of the debug adapter.
- string adapterID;
- // The ID of the client using this adapter.
- optional<string> clientID;
- // The human-readable name of the client using this adapter.
- optional<string> clientName;
- // If true all column numbers are 1-based (default).
- optional<boolean> columnsStartAt1;
- // If true all line numbers are 1-based (default).
- optional<boolean> linesStartAt1;
- // The ISO-639 locale of the client using this adapter, e.g. en-US or de-CH.
- optional<string> locale;
- // Determines in what format paths are specified. The default is `path`,
- // which is the native format.
- //
- // May be one of the following enumeration values:
- // 'path', 'uri'
- optional<string> pathFormat;
- // Client supports the `argsCanBeInterpretedByShell` attribute on the
- // `runInTerminal` request.
- optional<boolean> supportsArgsCanBeInterpretedByShell;
- // Client supports the `invalidated` event.
- optional<boolean> supportsInvalidatedEvent;
- // Client supports the `memory` event.
- optional<boolean> supportsMemoryEvent;
- // Client supports memory references.
- optional<boolean> supportsMemoryReferences;
- // Client supports progress reporting.
- optional<boolean> supportsProgressReporting;
- // Client supports the `runInTerminal` request.
- optional<boolean> supportsRunInTerminalRequest;
- // Client supports the `startDebugging` request.
- optional<boolean> supportsStartDebuggingRequest;
- // Client supports the paging of variables.
- optional<boolean> supportsVariablePaging;
- // Client supports the `type` attribute for variables.
- optional<boolean> supportsVariableType;
- };
- DAP_DECLARE_STRUCT_TYPEINFO(CMakeInitializeRequest);
- } // namespace dap
|