in tst/PortingAssistantExtensionIntegTests/PAIntegTestClient.cs [38:94]
public async Task InitClientAsync() {
var stdInPipeName = "extensionclientreadpipe";
var stdOutPipeName = "extensionclientwritepipe";
var clientOptionsAction = new Action<LanguageClientOptions>(option => { });
var (readerPipe, writerPipe) = await CreateConnectionPipeAsync(stdInPipeName, stdOutPipeName);
Client = LanguageClient.PreInit(options =>
{
options
.WithRequestProcessIdentifier(new ParallelRequestProcessIdentifier())
.WithWorkspaceFolder(SolutionRootPathUri, "testFolder")
.WithInput(readerPipe)
.WithOutput(writerPipe)
.WithTrace(InitializeTrace.Verbose)
.WithRootPath(SolutionRootPath)
.WithRootUri(SolutionRootPathUri)
.WithMaximumRequestTimeout(TimeSpan.FromHours(2))
.WithInitializationOptions(new
{
paSettings = new
{
EnabledContinuousAssessment = true,
EnabledMetrics = true,
AWSProfileName = "",
}
});
options.OnInitialize((client, request, ct) =>
{
Console.WriteLine("send inital request");
return Task.CompletedTask;
})
.OnInitialized((instance, client, server, ct) =>
{
Console.WriteLine("Client Initialized !");
return Task.CompletedTask;
})
.OnPublishDiagnostics(diagnosticParams =>
{
Diagnostics.AddRange(diagnosticParams.Diagnostics.Where(d => d != null));
});
var capabilityTypes = typeof(ICapability).Assembly.GetExportedTypes()
.Where(z => typeof(ICapability).IsAssignableFrom(z) && z.IsClass && !z.IsAbstract);
foreach (Type capabilityType in capabilityTypes)
{
options.WithCapability(Activator.CreateInstance(capabilityType, Array.Empty<object>()) as ICapability);
}
});
// wait for client intialization
await Client.Initialize(CancellationToken.None).ConfigureAwait(false);
}