protected virtual async Task <IDebugAdapterClient> InitializeClient(Action <DebugAdapterClientOptions>?clientOptionsAction = null) { _client = DebugAdapterClient.Create( options => { var(reader, writer) = SetupServer(); options .WithInput(reader) .WithOutput(writer) .WithLoggerFactory(TestOptions.ClientLoggerFactory) .ConfigureLogging( x => { x.SetMinimumLevel(LogLevel.Trace); } ) .WithInputScheduler(options.InputScheduler) .WithOutputScheduler(options.OutputScheduler) .WithDefaultScheduler(options.DefaultScheduler) .Services .AddTransient(typeof(IPipelineBehavior <,>), typeof(SettlePipeline <,>)) .AddSingleton(Events as IRequestSettler); clientOptionsAction?.Invoke(options); } ); Disposable.Add(_client); await _client.Initialize(CancellationToken).ConfigureAwait(false); return(_client); }
protected virtual async Task <(IDebugAdapterClient client, IDebugAdapterServer server)> Initialize( Action <DebugAdapterClientOptions> clientOptionsAction, Action <DebugAdapterServerOptions> serverOptionsAction ) { var clientPipe = new Pipe(TestOptions.DefaultPipeOptions); var serverPipe = new Pipe(TestOptions.DefaultPipeOptions); _client = DebugAdapterClient.Create( options => { options .WithLoggerFactory(TestOptions.ClientLoggerFactory) .ConfigureLogging( x => { x.SetMinimumLevel(LogLevel.Trace); x.Services.AddSingleton(TestOptions.ClientLoggerFactory); } ) .Services .AddTransient(typeof(IPipelineBehavior <,>), typeof(SettlePipeline <,>)) .AddSingleton(ClientEvents as IRequestSettler); ConfigureClientInputOutput(serverPipe.Reader, clientPipe.Writer, options); clientOptionsAction(options); } ); _server = DebugAdapterServer.Create( options => { options .WithLoggerFactory(TestOptions.ServerLoggerFactory) .ConfigureLogging( x => { x.SetMinimumLevel(LogLevel.Trace); x.Services.AddSingleton(TestOptions.ServerLoggerFactory); } ) .Services .AddTransient(typeof(IPipelineBehavior <,>), typeof(SettlePipeline <,>)) .AddSingleton(ServerEvents as IRequestSettler); ConfigureServerInputOutput(clientPipe.Reader, serverPipe.Writer, options); serverOptionsAction(options); } ); Disposable.Add(_client); Disposable.Add(_server); return(await Observable.FromAsync(_client.Initialize).ForkJoin( Observable.FromAsync(_server.Initialize), (a, b) => (_client, _server) ).ToTask(CancellationToken)); }
public static Task <RestartFrameResponse> RequestRestartFrame(this IDebugAdapterClient mediator, RestartFrameArguments @params, CancellationToken cancellationToken = default) { return(mediator.SendRequest(@params, cancellationToken)); }
public static Task <VariablesResponse> RequestVariables(this IDebugAdapterClient mediator, VariablesArguments @params, CancellationToken cancellationToken = default) { return(mediator.SendRequest(@params, cancellationToken)); }
public static Task <DataBreakpointInfoResponse> RequestDataBreakpointInfo(this IDebugAdapterClient mediator, DataBreakpointInfoArguments @params, CancellationToken cancellationToken = default) { return(mediator.SendRequest(@params, cancellationToken)); }
public static Task <RunInTerminalResponse> RunInTerminal(this IDebugAdapterClient mediator, RunInTerminalArguments @params) { return(mediator.SendRequest <RunInTerminalArguments, RunInTerminalResponse>(RequestNames.RunInTerminal, @params)); }
public static Task <RunInTerminalResponse> RunInTerminal(this IDebugAdapterClient mediator, RunInTerminalArguments @params, CancellationToken cancellationToken = default) { return(mediator.SendRequest(@params, cancellationToken)); }