Skip to content
This repository was archived by the owner on Jul 12, 2022. It is now read-only.

Commit 2eaf9a2

Browse files
committed
Pass language name to syntax rules
All of the other rules can access the syntax from the provided Document object. This passes the language name down to syntax so rules which support both C# and VB can change their implementation based on the language.
1 parent d045b03 commit 2eaf9a2

10 files changed

+12
-12
lines changed

src/Microsoft.DotNet.CodeFormatting.Tests/CodeFormattingTestBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ internal abstract ISyntaxFormattingRule Rule
121121
protected override async Task<Document> RewriteDocumentAsync(Document document)
122122
{
123123
var syntaxRoot = await document.GetSyntaxRootAsync();
124-
syntaxRoot = Rule.Process(syntaxRoot);
124+
syntaxRoot = Rule.Process(syntaxRoot, document.Project.Language);
125125
return document.WithSyntaxRoot(syntaxRoot);
126126
}
127127
}

src/Microsoft.DotNet.CodeFormatting/FormattingEngineImplementation.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,13 +204,13 @@ private async Task<Solution> RunSyntaxPass(Solution originalSolution, IReadOnlyL
204204
return currentSolution;
205205
}
206206

207-
private SyntaxNode RunSyntaxPass(SyntaxNode root, string langaugeName)
207+
private SyntaxNode RunSyntaxPass(SyntaxNode root, string languageName)
208208
{
209209
foreach (var rule in _syntaxRules)
210210
{
211-
if (rule.SupportsLanguage(langaugeName))
211+
if (rule.SupportsLanguage(languageName))
212212
{
213-
root = rule.Process(root);
213+
root = rule.Process(root, languageName);
214214
}
215215
}
216216

src/Microsoft.DotNet.CodeFormatting/IFormattingRule.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ internal interface IFormattingRule
2222
/// </summary>
2323
internal interface ISyntaxFormattingRule : IFormattingRule
2424
{
25-
SyntaxNode Process(SyntaxNode syntaxRoot);
25+
SyntaxNode Process(SyntaxNode syntaxRoot, string languageName);
2626
}
2727

2828
/// <summary>

src/Microsoft.DotNet.CodeFormatting/Rules/BraceNewLineRule.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ private enum NewLineKind
2424
None,
2525
}
2626

27-
public SyntaxNode Process(SyntaxNode syntaxNode)
27+
public SyntaxNode Process(SyntaxNode syntaxNode, string languageName)
2828
{
2929
syntaxNode = FixOpenBraces(syntaxNode);
3030
syntaxNode = FixCloseBraces(syntaxNode);

src/Microsoft.DotNet.CodeFormatting/Rules/HasCopyrightHeaderFormattingRule.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ internal HasCopyrightHeaderFormattingRule(Options options)
2424
_options = options;
2525
}
2626

27-
public SyntaxNode Process(SyntaxNode syntaxNode)
27+
public SyntaxNode Process(SyntaxNode syntaxNode, string languageName)
2828
{
2929
if (_options.CopyrightHeader.IsDefaultOrEmpty)
3030
{

src/Microsoft.DotNet.CodeFormatting/Rules/HasNewLineBeforeFirstNamespaceFormattingRule.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace Microsoft.DotNet.CodeFormatting.Rules
1717
[SyntaxRuleOrder(SyntaxRuleOrder.HasNewLineBeforeFirstNamespaceFormattingRule)]
1818
internal sealed class HasNewLineBeforeFirstNamespaceFormattingRule : CSharpOnlyFormattingRule, ISyntaxFormattingRule
1919
{
20-
public SyntaxNode Process(SyntaxNode syntaxRoot)
20+
public SyntaxNode Process(SyntaxNode syntaxRoot, string languageName)
2121
{
2222
var firstNamespace = syntaxRoot.DescendantNodesAndSelf().OfType<NamespaceDeclarationSyntax>().FirstOrDefault();
2323
IEnumerable<SyntaxTrivia> newTrivia = Enumerable.Empty<SyntaxTrivia>();

src/Microsoft.DotNet.CodeFormatting/Rules/HasNewLineBeforeFirstUsingFormattingRule.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ internal sealed class HasNewLineBeforeFirstUsingFormattingRule : CSharpOnlyForma
2020
{
2121
private const string FormatError = "Could not format using";
2222

23-
public SyntaxNode Process(SyntaxNode syntaxRoot)
23+
public SyntaxNode Process(SyntaxNode syntaxRoot, string languageName)
2424
{
2525
var firstUsing = syntaxRoot.DescendantNodesAndSelf().OfType<UsingDirectiveSyntax>().FirstOrDefault();
2626
if (firstUsing == null)

src/Microsoft.DotNet.CodeFormatting/Rules/HasNoCustomCopyrightHeaderFormattingRule.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ internal HasNoCustomCopyrightHeaderFormattingRule(Options options)
3030
_options = options;
3131
}
3232

33-
public SyntaxNode Process(SyntaxNode syntaxNode)
33+
public SyntaxNode Process(SyntaxNode syntaxNode, string languageName)
3434
{
3535
// SetHeaders
3636
if (!SetHeaders())

src/Microsoft.DotNet.CodeFormatting/Rules/HasUsingsOutsideOfNamespaceFormattingRule.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace Microsoft.DotNet.CodeFormatting.Rules
1616
[SyntaxRuleOrder(SyntaxRuleOrder.HasUsingsOutsideOfNamespaceFormattingRule)]
1717
internal sealed class HasUsingsOutsideOfNamespaceFormattingRule : CSharpOnlyFormattingRule, ISyntaxFormattingRule
1818
{
19-
public SyntaxNode Process(SyntaxNode syntaxNode)
19+
public SyntaxNode Process(SyntaxNode syntaxNode, string languageName)
2020
{
2121
var root = syntaxNode as CompilationUnitSyntax;
2222
if (root == null)

src/Microsoft.DotNet.CodeFormatting/Rules/NonAsciiCharactersAreEscapedInLiteralsRule.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ namespace Microsoft.DotNet.CodeFormatting.Rules
1818
[SyntaxRuleOrder(SyntaxRuleOrder.NonAsciiChractersAreEscapedInLiterals)]
1919
internal sealed class NonAsciiCharactersAreEscapedInLiterals : CSharpOnlyFormattingRule, ISyntaxFormattingRule
2020
{
21-
public SyntaxNode Process(SyntaxNode root)
21+
public SyntaxNode Process(SyntaxNode root, string languageName)
2222
{
2323
return UnicodeCharacterEscapingSyntaxRewriter.Rewriter.Visit(root);
2424
}

0 commit comments

Comments
 (0)