public Task <InitializeResult> InitializeAsync(InitializeParams initializeParams, CancellationToken cancellationToken) { try { Logger?.TraceStart("Initialize"); Contract.ThrowIfTrue(_clientCapabilities != null, $"{nameof(InitializeAsync)} called multiple times"); _clientCapabilities = initializeParams.Capabilities; return(Task.FromResult(new InitializeResult { Capabilities = _capabilitiesProvider.GetCapabilities(_clientCapabilities), })); } finally { Logger?.TraceStop("Initialize"); } }