Skip to content

Commit

Permalink
Getting ForEachVariable formatting the same as a regular ForEach (#368)
Browse files Browse the repository at this point in the history
* Getting foreach variable formatting the same as a regular foreach

closes #300

* more kool-aid
  • Loading branch information
belav authored Jul 24, 2021
1 parent 4772ec7 commit f7b994d
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,5 +70,25 @@ public class ClassName
case 1:
return;
}

foreach (var (x, y) in thing)
{
this.DoOtherThing();
}

foreach (
(
(int l2, int l3),
(int longName________________________, string[] anotherLongName___________)
) in (
from l2 in Enumerable.Range(1, 7)
from l3 in Enumerable.Range(1, 7)
select (l2, l3)
).AsParallel()
.Select(l => (l, res: GenerateTable(l.l2, l.l3, cutOff)))
.OrderBy(v => v.res.Total)
) {
return;
}
}
}
6 changes: 2 additions & 4 deletions Src/CSharpier/SyntaxPrinter/Node.cs
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ public static Doc Print(SyntaxNode syntaxNode)
return CheckedStatement.Print(checkedStatementSyntax);
case ClassOrStructConstraintSyntax classOrStructConstraintSyntax:
return ClassOrStructConstraint.Print(classOrStructConstraintSyntax);
case CommonForEachStatementSyntax commonForEachStatementSyntax:
return CommonForEachStatement.Print(commonForEachStatementSyntax);
case CompilationUnitSyntax compilationUnitSyntax:
return CompilationUnit.Print(compilationUnitSyntax);
case ConditionalAccessExpressionSyntax conditionalAccessExpressionSyntax:
Expand Down Expand Up @@ -149,10 +151,6 @@ public static Doc Print(SyntaxNode syntaxNode)
return FinallyClause.Print(finallyClauseSyntax);
case FixedStatementSyntax fixedStatementSyntax:
return FixedStatement.Print(fixedStatementSyntax);
case ForEachStatementSyntax forEachStatementSyntax:
return ForEachStatement.Print(forEachStatementSyntax);
case ForEachVariableStatementSyntax forEachVariableStatementSyntax:
return ForEachVariableStatement.Print(forEachVariableStatementSyntax);
case ForStatementSyntax forStatementSyntax:
return ForStatement.Print(forStatementSyntax);
case FromClauseSyntax fromClauseSyntax:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,29 @@

namespace CSharpier.SyntaxPrinter.SyntaxNodePrinters
{
public static class ForEachStatement
public static class CommonForEachStatement
{
public static Doc Print(ForEachStatementSyntax node)
public static Doc Print(CommonForEachStatementSyntax node)
{
var groupId = Guid.NewGuid().ToString();

var leadingTrivia = node.AwaitKeyword.Kind() != SyntaxKind.None
? Token.PrintLeadingTrivia(node.AwaitKeyword)
: Token.PrintLeadingTrivia(node.ForEachKeyword);

var variable = node switch
{
ForEachStatementSyntax forEach => Doc.Concat(
Node.Print(forEach.Type),
" ",
Token.Print(forEach.Identifier)
),
ForEachVariableStatementSyntax forEachVariable => Node.Print(
forEachVariable.Variable
),
_ => Doc.Null
};

var docs = Doc.Concat(
ExtraNewLines.Print(node),
leadingTrivia,
Expand All @@ -32,9 +45,7 @@ public static Doc Print(ForEachStatementSyntax node)
groupId,
Doc.Indent(
Doc.SoftLine,
Node.Print(node.Type),
" ",
Token.Print(node.Identifier),
variable,
" ",
Token.Print(node.InKeyword),
" ",
Expand Down

This file was deleted.

0 comments on commit f7b994d

Please sign in to comment.