public async Task InitClientAsync()

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);
        }