1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
|
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file LICENSE.rst 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
|