public static SerializableDocumentHighlights[] Dehydrate(ImmutableArray <DocumentHighlights> array) { var result = new SerializableDocumentHighlights[array.Length]; var index = 0; foreach (var highlights in array) { result[index] = Dehydrate(highlights); index++; } return(result); }
private async Task <(bool succeeded, ImmutableArray <DocumentHighlights> highlights)> GetDocumentHighlightsInRemoteProcessAsync( Document document, int position, IImmutableSet <Document> documentsToSearch, CancellationToken cancellationToken) { using (var session = await TryGetRemoteSessionAsync( document.Project.Solution, cancellationToken).ConfigureAwait(false)) { if (session == null) { return(succeeded : false, ImmutableArray <DocumentHighlights> .Empty); } var result = await session.InvokeAsync <SerializableDocumentHighlights[]>( nameof(IRemoteDocumentHighlights.GetDocumentHighlightsAsync), document.Id, position, documentsToSearch.Select(d => d.Id).ToArray()).ConfigureAwait(false); return(true, SerializableDocumentHighlights.Rehydrate(result, document.Project.Solution)); } }