private static BlockStructureContext CreateContext(
            SyntaxTree syntaxTree,
            OptionSet options,
            bool isMetadataAsSource,
            CancellationToken cancellationToken)
        {
            var optionProvider = new BlockStructureOptionProvider(options, isMetadataAsSource);

            return(new BlockStructureContext(syntaxTree, optionProvider, cancellationToken));
        }
        private static async Task <BlockStructureContext> CreateContextAsync(Document document, CancellationToken cancellationToken)
        {
            var syntaxTree = await document.GetSyntaxTreeAsync(cancellationToken).ConfigureAwait(false);

            var options            = document.Project.Solution.Options;
            var isMetadataAsSource = document.Project.Solution.Workspace.Kind == WorkspaceKind.MetadataAsSource;
            var optionProvider     = new BlockStructureOptionProvider(options, isMetadataAsSource);

            return(new BlockStructureContext(syntaxTree, optionProvider, cancellationToken));
        }
Exemplo n.º 3
0
 private BlockSpanCollector(
     BlockStructureOptionProvider optionProvider,
     ImmutableDictionary <Type, ImmutableArray <AbstractSyntaxStructureProvider> > nodeOutlinerMap,
     ImmutableDictionary <int, ImmutableArray <AbstractSyntaxStructureProvider> > triviaOutlinerMap,
     CancellationToken cancellationToken)
 {
     _optionProvider    = optionProvider;
     _nodeProviderMap   = nodeOutlinerMap;
     _triviaProviderMap = triviaOutlinerMap;
     _cancellationToken = cancellationToken;
 }
 public sealed override void CollectBlockSpans(
     SyntaxNode node,
     ArrayBuilder <BlockSpan> spans,
     BlockStructureOptionProvider optionProvider,
     CancellationToken cancellationToken)
 {
     if (node is TSyntaxNode tSyntax)
     {
         CollectBlockSpans(tSyntax, spans, optionProvider, cancellationToken);
     }
 }
Exemplo n.º 5
0
        public static void CollectBlockSpans(
            SyntaxNode syntaxRoot,
            BlockStructureOptionProvider optionProvider,
            ImmutableDictionary <Type, ImmutableArray <AbstractSyntaxStructureProvider> > nodeOutlinerMap,
            ImmutableDictionary <int, ImmutableArray <AbstractSyntaxStructureProvider> > triviaOutlinerMap,
            ref TemporaryArray <BlockSpan> spans,
            CancellationToken cancellationToken)
        {
            var collector = new BlockSpanCollector(optionProvider, nodeOutlinerMap, triviaOutlinerMap, cancellationToken);

            collector.Collect(syntaxRoot, ref spans);
        }
Exemplo n.º 6
0
 public sealed override void CollectBlockSpans(
     SyntaxToken previousToken,
     SyntaxNode node,
     ref TemporaryArray <BlockSpan> spans,
     BlockStructureOptionProvider optionProvider,
     CancellationToken cancellationToken)
 {
     if (node is TSyntaxNode tSyntax)
     {
         CollectBlockSpans(previousToken, tSyntax, ref spans, optionProvider, cancellationToken);
     }
 }
Exemplo n.º 7
0
 public abstract void CollectBlockSpans(
     SyntaxTrivia trivia,
     ref TemporaryArray <BlockSpan> spans,
     BlockStructureOptionProvider optionProvider,
     CancellationToken cancellationToken);
Exemplo n.º 8
0
 protected abstract void CollectBlockSpans(
     SyntaxToken previousToken,
     TSyntaxNode node, ref TemporaryArray <BlockSpan> spans,
     BlockStructureOptionProvider optionProvider, CancellationToken cancellationToken);
 public BlockStructureContext(SyntaxTree syntaxTree, BlockStructureOptionProvider optionProvider, CancellationToken cancellationToken)
 {
     SyntaxTree        = syntaxTree;
     OptionProvider    = optionProvider;
     CancellationToken = cancellationToken;
 }
 protected abstract void CollectBlockSpans(
     TSyntaxNode node, ArrayBuilder <BlockSpan> spans,
     BlockStructureOptionProvider optionProvider, CancellationToken cancellationToken);