in src/mockDebug.ts [131:212]
protected initializeRequest(response: DebugProtocol.InitializeResponse, args: DebugProtocol.InitializeRequestArguments): void {
if (args.supportsProgressReporting) {
this._reportProgress = true;
}
if (args.supportsInvalidatedEvent) {
this._useInvalidatedEvent = true;
}
// build and return the capabilities of this debug adapter:
response.body = response.body || {};
// the adapter implements the configurationDone request.
response.body.supportsConfigurationDoneRequest = true;
// make VS Code use 'evaluate' when hovering over source
response.body.supportsEvaluateForHovers = true;
// make VS Code show a 'step back' button
response.body.supportsStepBack = true;
// make VS Code support data breakpoints
response.body.supportsDataBreakpoints = true;
// make VS Code support completion in REPL
response.body.supportsCompletionsRequest = true;
response.body.completionTriggerCharacters = [ ".", "[" ];
// make VS Code send cancel request
response.body.supportsCancelRequest = true;
// make VS Code send the breakpointLocations request
response.body.supportsBreakpointLocationsRequest = true;
// make VS Code provide "Step in Target" functionality
response.body.supportsStepInTargetsRequest = true;
// the adapter defines two exceptions filters, one with support for conditions.
response.body.supportsExceptionFilterOptions = true;
response.body.exceptionBreakpointFilters = [
{
filter: 'namedException',
label: "Named Exception",
description: `Break on named exceptions. Enter the exception's name as the Condition.`,
default: false,
supportsCondition: true,
conditionDescription: `Enter the exception's name`
},
{
filter: 'otherExceptions',
label: "Other Exceptions",
description: 'This is a other exception',
default: true,
supportsCondition: false
}
];
// make VS Code send exceptionInfo request
response.body.supportsExceptionInfoRequest = true;
// make VS Code send setVariable request
response.body.supportsSetVariable = true;
// make VS Code send setExpression request
response.body.supportsSetExpression = true;
// make VS Code send disassemble request
response.body.supportsDisassembleRequest = true;
response.body.supportsSteppingGranularity = true;
response.body.supportsInstructionBreakpoints = true;
// make VS Code able to read and write variable memory
response.body.supportsReadMemoryRequest = true;
response.body.supportsWriteMemoryRequest = true;
this.sendResponse(response);
// since this debug adapter can accept configuration requests like 'setBreakpoint' at any time,
// we request them early by sending an 'initializeRequest' to the frontend.
// The frontend will end the configuration sequence by calling 'configurationDone' request.
this.sendEvent(new InitializedEvent());
}