コード例 #1
0
ファイル: RegionCollector.cs プロジェクト: GloryChou/roslyn
 public static void CollectOutliningSpans(
     SyntacticDocument document,
     ImmutableDictionary<Type, ImmutableArray<AbstractSyntaxNodeOutliner>> nodeOutlinerMap,
     ImmutableDictionary<int, ImmutableArray<AbstractSyntaxTriviaOutliner>> triviaOutlinerMap,
     List<OutliningSpan> spans,
     CancellationToken cancellationToken)
 {
     var collector = new RegionCollector(document, nodeOutlinerMap, triviaOutlinerMap, spans, cancellationToken);
     collector.Collect(document.Root);
 }
コード例 #2
0
        /// <summary>
        /// Keep in sync with <see cref="GetOutliningSpans"/>
        /// </summary>
        public async Task <IList <OutliningSpan> > GetOutliningSpansAsync(
            Document document, CancellationToken cancellationToken)
        {
            try
            {
                var syntaxRoot = await document.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false);

                // change this to shared pool once RI
                var regions = new List <OutliningSpan>();
                RegionCollector.CollectOutliningSpans(document, syntaxRoot, _nodeOutlinerMap, _triviaOutlinerMap, regions, cancellationToken);
                return(regions);
            }
            catch (Exception e) when(FatalError.ReportUnlessCanceled(e))
            {
                throw ExceptionUtilities.Unreachable;
            }
        }