CompilationUnitStructureProvider.vb 1.7 KB
Newer Older
1 2 3
' Copyright (c) Microsoft.  All Rights Reserved.  Licensed under the Apache License, Version 2.0.  See License.txt in the project root for license information.

Imports System.Threading
4
Imports Microsoft.CodeAnalysis.Options
5
Imports Microsoft.CodeAnalysis.Structure
6
Imports Microsoft.CodeAnalysis.Text
7 8
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax

9
Namespace Microsoft.CodeAnalysis.VisualBasic.Structure
C
CyrusNajmabadi 已提交
10
    Friend Class CompilationUnitStructureProvider
11
        Inherits AbstractSyntaxNodeStructureProvider(Of CompilationUnitSyntax)
12

13
        Protected Overrides Sub CollectBlockSpans(compilationUnit As CompilationUnitSyntax,
14
                                                  spans As ArrayBuilder(Of BlockSpan),
15
                                                  options As OptionSet,
16
                                                  cancellationToken As CancellationToken)
17
            CollectCommentsRegions(compilationUnit, spans)
18 19 20 21 22 23 24 25 26 27 28 29

            If Not compilationUnit.Imports.IsEmpty Then
                Dim startPos = compilationUnit.Imports.First().SpanStart
                Dim endPos = compilationUnit.Imports.Last().Span.End

                Dim span = TextSpan.FromBounds(startPos, endPos)
                spans.AddIfNotNull(CreateBlockSpan(
                    span, span, bannerText:="Imports" & SpaceEllipsis,
                    autoCollapse:=True, type:=BlockTypes.Imports, isCollapsible:=True,
                    isDefaultCollapsed:=False))
                CollectCommentsRegions(compilationUnit.EndOfFileToken.LeadingTrivia, spans)
            End If
30 31 32 33 34 35
        End Sub

        Protected Overrides Function SupportedInWorkspaceKind(kind As String) As Boolean
            Return True
        End Function
    End Class
36
End Namespace