diff --git a/src/Workspaces/VisualBasic/Portable/Formatting/Engine/Trivia/TriviaDataFactory.ComplexTrivia.vb b/src/Workspaces/VisualBasic/Portable/Formatting/Engine/Trivia/TriviaDataFactory.ComplexTrivia.vb index 0f7ac68d3bbb4..4401f9370de6a 100644 --- a/src/Workspaces/VisualBasic/Portable/Formatting/Engine/Trivia/TriviaDataFactory.ComplexTrivia.vb +++ b/src/Workspaces/VisualBasic/Portable/Formatting/Engine/Trivia/TriviaDataFactory.ComplexTrivia.vb @@ -81,6 +81,10 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Formatting Debug.Assert(Me.SecondTokenIsFirstTokenOnLine OrElse beginningOfNewLine) + If Me.OptionSet.GetOption(FormattingOptions.UseTabs, LanguageNames.VisualBasic) Then + Return True + End If + Return CodeShapeAnalyzer.ShouldFormatMultiLine(context, beginningOfNewLine, list) End Function diff --git a/src/Workspaces/VisualBasicTest/Formatting/FormattingTests.vb b/src/Workspaces/VisualBasicTest/Formatting/FormattingTests.vb index d77069e9dd70d..fdd8d07192132 100644 --- a/src/Workspaces/VisualBasicTest/Formatting/FormattingTests.vb +++ b/src/Workspaces/VisualBasicTest/Formatting/FormattingTests.vb @@ -1774,6 +1774,33 @@ End Class Await AssertFormatAsync(code, expected, changedOptionSet:=optionSet) End Function + + + Public Async Function ReFormatWithTabsEnabled6() As Task + Dim code = + "Class SomeClass" + vbCrLf + + " Sub Foo() ' Comment" + vbCrLf + + " Foo()" + vbCrLf + + " End Sub" + vbCrLf + + "End Class" + + Dim expected = + "Class SomeClass" + vbCrLf + + vbTab + "Sub Foo() ' Comment" + vbCrLf + + vbTab + vbTab + "Foo()" + vbCrLf + + vbTab + "End Sub" + vbCrLf + + "End Class" + + Dim optionSet = New Dictionary(Of OptionKey, Object) From + { + {New OptionKey(FormattingOptions.UseTabs, LanguageNames.VisualBasic), True}, + {New OptionKey(FormattingOptions.TabSize, LanguageNames.VisualBasic), 4}, + {New OptionKey(FormattingOptions.IndentationSize, LanguageNames.VisualBasic), 4} + } + + Await AssertFormatAsync(code, expected, changedOptionSet:=optionSet) + End Function + Public Async Function ReFormatWithTabsDisabled() As Task Dim code =