diff --git a/src/EditorFeatures/CSharp/Formatting/Indentation/CSharpIndentationService.Indenter.cs b/src/EditorFeatures/CSharp/Formatting/Indentation/CSharpIndentationService.Indenter.cs index c03425fe571ddd606b35d32fb7540bd68f5474e2..e059143d254d20a92ed7dd6870bd58cf14a4014a 100644 --- a/src/EditorFeatures/CSharp/Formatting/Indentation/CSharpIndentationService.Indenter.cs +++ b/src/EditorFeatures/CSharp/Formatting/Indentation/CSharpIndentationService.Indenter.cs @@ -455,17 +455,6 @@ private bool IsPartOfQueryExpression(SyntaxToken token) // okay, looks like containing node is written over multiple lines, in that case, give same indentation as given token return GetIndentationOfLine(givenTokenLine); } - - protected override bool HasPreprocessorCharacter(TextLine currentLine) - { - var text = currentLine.ToString(); - Contract.Requires(!string.IsNullOrWhiteSpace(text)); - - var trimmedText = text.Trim(); - - Contract.Assert(SyntaxFacts.GetText(SyntaxKind.HashToken).Length == 1); - return trimmedText[0] == SyntaxFacts.GetText(SyntaxKind.HashToken)[0]; - } } } } \ No newline at end of file diff --git a/src/EditorFeatures/Core/Implementation/SmartIndent/AbstractIndentationService.AbstractIndenter.cs b/src/EditorFeatures/Core/Implementation/SmartIndent/AbstractIndentationService.AbstractIndenter.cs index 62776cfedb93e2024a14ee5e2e2fb2a302bcce09..85e69d2d5471c59eef98cc65888ed61c54c1856f 100644 --- a/src/EditorFeatures/Core/Implementation/SmartIndent/AbstractIndentationService.AbstractIndenter.cs +++ b/src/EditorFeatures/Core/Implementation/SmartIndent/AbstractIndentationService.AbstractIndenter.cs @@ -11,6 +11,7 @@ using Microsoft.CodeAnalysis.Shared.Extensions; using Microsoft.CodeAnalysis.Text; using Microsoft.CodeAnalysis.Text.Shared.Extensions; +using Roslyn.Utilities; namespace Microsoft.CodeAnalysis.Editor.Implementation.SmartIndent { @@ -209,8 +210,6 @@ private TextSpan GetNormalizedSpan(int position) return null; } - protected abstract bool HasPreprocessorCharacter(TextLine currentLine); - protected int GetCurrentPositionNotBelongToEndOfFileToken(int position) { var compilationUnit = Tree.GetRoot(CancellationToken) as ICompilationUnitSyntax; @@ -221,6 +220,16 @@ protected int GetCurrentPositionNotBelongToEndOfFileToken(int position) return Math.Min(compilationUnit.EndOfFileToken.FullSpan.Start, position); } + + protected bool HasPreprocessorCharacter(TextLine currentLine) + { + var text = currentLine.ToString(); + Contract.Requires(!string.IsNullOrWhiteSpace(text)); + + var trimmedText = text.Trim(); + + return trimmedText[0] == '#'; + } } } } \ No newline at end of file diff --git a/src/EditorFeatures/VisualBasic/Formatting/Indentation/VisualBasicIndentationService.Indenter.vb b/src/EditorFeatures/VisualBasic/Formatting/Indentation/VisualBasicIndentationService.Indenter.vb index 41bac3d70cd10ea1ebf8438d781d9bd5f5016921..69836568d4dd8ef002125166dffd1772d6e6dad0 100644 --- a/src/EditorFeatures/VisualBasic/Formatting/Indentation/VisualBasicIndentationService.Indenter.vb +++ b/src/EditorFeatures/VisualBasic/Formatting/Indentation/VisualBasicIndentationService.Indenter.vb @@ -75,16 +75,6 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.Formatting.Indentation Return token.GetPreviousToken() End Function - Protected Overrides Function HasPreprocessorCharacter(currentLine As TextLine) As Boolean - Dim text = currentLine.ToString() - Contract.Assert(String.IsNullOrWhiteSpace(text) = False) - - Dim trimmedText = text.Trim() - - Contract.Assert(SyntaxFacts.GetText(SyntaxKind.HashToken).Length = 1) - Return trimmedText(0) = SyntaxFacts.GetText(SyntaxKind.HashToken)(0) - End Function - Private Function GetIndentationBasedOnToken(token As SyntaxToken, Optional trivia As SyntaxTrivia = Nothing) As IndentationResult? Dim sourceText = LineToBeIndented.Text