Browse Source

Fixed anonymous method brace style formatting.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
fa2db3bb41
  1. 20
      ICSharpCode.NRefactory.CSharp/Formatter/AstFormattingVisitor.cs
  2. 24
      ICSharpCode.NRefactory.Tests/FormattingTests/TestBraceStlye.cs

20
ICSharpCode.NRefactory.CSharp/Formatter/AstFormattingVisitor.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// AstFormattingVisitor.cs
//
// Author:
@ -1271,23 +1271,26 @@ namespace ICSharpCode.NRefactory.CSharp @@ -1271,23 +1271,26 @@ namespace ICSharpCode.NRefactory.CSharp
{
if (!variableDeclarationStatement.SemicolonToken.IsNull)
FixStatementIndentation (variableDeclarationStatement.StartLocation);
if ((variableDeclarationStatement.Modifiers & Modifiers.Const) == Modifiers.Const) {
ForceSpacesAround (variableDeclarationStatement.Type, true);
} else {
ForceSpacesAfter (variableDeclarationStatement.Type, true);
}
var lastLoc = variableDeclarationStatement.StartLocation;
IndentLevel++;
foreach (var initializer in variableDeclarationStatement.Variables) {
var indent = !(initializer.Initializer is AnonymousMethodExpression);
if (indent)
IndentLevel++;
if (lastLoc.Line != initializer.StartLocation.Line) {
FixStatementIndentation (initializer.StartLocation);
lastLoc = initializer.StartLocation;
}
initializer.AcceptVisitor (this);
if (indent)
IndentLevel--;
}
IndentLevel--;
FormatCommas (variableDeclarationStatement, policy.SpaceBeforeLocalVariableDeclarationComma, policy.SpaceAfterLocalVariableDeclarationComma);
FixSemicolon (variableDeclarationStatement.SemicolonToken);
}
@ -1340,6 +1343,13 @@ namespace ICSharpCode.NRefactory.CSharp @@ -1340,6 +1343,13 @@ namespace ICSharpCode.NRefactory.CSharp
base.VisitComposedType (composedType);
}
public override void VisitAnonymousMethodExpression (AnonymousMethodExpression anonymousMethodExpression)
{
if (!anonymousMethodExpression.Body.IsNull)
EnforceBraceStyle (policy.AnonymousMethodBraceStyle, anonymousMethodExpression.Body.LBraceToken, anonymousMethodExpression.Body.RBraceToken);
base.VisitAnonymousMethodExpression (anonymousMethodExpression);
}
public override void VisitAssignmentExpression (AssignmentExpression assignmentExpression)
{
ForceSpacesAround (assignmentExpression.OperatorToken, policy.SpaceAroundAssignment);

24
ICSharpCode.NRefactory.Tests/FormattingTests/TestBraceStlye.cs

@ -64,6 +64,30 @@ namespace B { @@ -64,6 +64,30 @@ namespace B {
}");
}
[Test()]
public void TestAnonymousMethodBraceStyle ()
{
CSharpFormattingOptions policy = new CSharpFormattingOptions ();
policy.AnonymousMethodBraceStyle = BraceStyle.EndOfLine;
Test (policy,
@"class Test
{
void Foo ()
{
EventHandler handler = delegate(object sender, EventArgs e){};
}
}",
@"class Test
{
void Foo ()
{
EventHandler handler = delegate(object sender, EventArgs e) {
};
}
}");
}
[Test()]
public void TestClassBraceStlye ()
{

Loading…
Cancel
Save