示例#1
0
        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));
            }
        }