|
' Licensed to the .NET Foundation under one or more agreements.
' The .NET Foundation licenses this file to you under the MIT license.
' See the LICENSE file in the project root for more information.
Imports System.Threading
Imports Microsoft.CodeAnalysis.Formatting
Imports Microsoft.CodeAnalysis.Text
Namespace Microsoft.CodeAnalysis.VisualBasic.Formatting
Partial Friend Class TriviaDataFactory
Private NotInheritable Class FormattedComplexTrivia
Inherits TriviaDataWithList
Private ReadOnly _formatter As VisualBasicTriviaFormatter
Private ReadOnly _textChanges As IList(Of TextChange)
Public Sub New(context As FormattingContext,
formattingRules As ChainedFormattingRules,
token1 As SyntaxToken,
token2 As SyntaxToken,
lineBreaks As Integer,
spaces As Integer,
originalString As String,
cancellationToken As CancellationToken)
MyBase.New(context.Options.LineFormatting)
Contract.ThrowIfNull(context)
Contract.ThrowIfNull(formattingRules)
Contract.ThrowIfNull(originalString)
Me.LineBreaks = Math.Max(0, lineBreaks)
Me.Spaces = Math.Max(0, spaces)
Dim lines = Me.LineBreaks
_formatter = New VisualBasicTriviaFormatter(context, formattingRules, token1, token2, originalString, Math.Max(0, lines), Me.Spaces)
_textChanges = _formatter.FormatToTextChanges(cancellationToken)
End Sub
Public Overrides ReadOnly Property TreatAsElastic() As Boolean
Get
Return False
End Get
End Property
Public Overrides ReadOnly Property IsWhitespaceOnlyTrivia() As Boolean
Get
Return False
End Get
End Property
Public Overrides ReadOnly Property ContainsChanges() As Boolean
Get
Return Me._textChanges.Count > 0
End Get
End Property
Public Overrides Function GetTextChanges(span As TextSpan) As IEnumerable(Of TextChange)
Return Me._textChanges
End Function
Public Overrides Function GetTriviaList(cancellationToken As CancellationToken) As SyntaxTriviaList
Return _formatter.FormatToSyntaxTrivia(cancellationToken)
End Function
Public Overrides Sub Format(context As FormattingContext,
formattingRules As ChainedFormattingRules,
formattingResultApplier As Action(Of Integer, TokenStream, TriviaData),
cancellationToken As CancellationToken,
Optional tokenPairIndex As Integer = TokenPairIndexNotNeeded)
Throw New NotImplementedException()
End Sub
Public Overrides Function WithIndentation(indentation As Integer, context As FormattingContext, formattingRules As ChainedFormattingRules, cancellationToken As CancellationToken) As TriviaData
Throw New NotImplementedException()
End Function
Public Overrides Function WithLine(line As Integer, indentation As Integer, context As FormattingContext, formattingRules As ChainedFormattingRules, cancellationToken As CancellationToken) As TriviaData
Throw New NotImplementedException()
End Function
Public Overrides Function WithSpace(space As Integer, context As FormattingContext, formattingRules As ChainedFormattingRules) As TriviaData
Throw New NotImplementedException()
End Function
End Class
End Class
End Namespace
|