Browse Source

Fixed formatting bug.

pull/32/merge
Mike Krüger 13 years ago
parent
commit
d22b96f12c
  1. 10
      ICSharpCode.NRefactory.CSharp/Formatter/FormattingVisitor.cs
  2. 32
      ICSharpCode.NRefactory.Tests/FormattingTests/TestFormattingBugs.cs

10
ICSharpCode.NRefactory.CSharp/Formatter/FormattingVisitor.cs

@ -552,6 +552,8 @@ namespace ICSharpCode.NRefactory.CSharp @@ -552,6 +552,8 @@ namespace ICSharpCode.NRefactory.CSharp
var prev = lbrace.GetPrevNode();
while (prev is NewLineNode)
prev = prev.GetPrevNode();
if (prev is PreProcessorDirective)
return;
int prevOffset = document.GetOffset(prev.EndLocation);
if (prev is Comment || prev is PreProcessorDirective) {
@ -570,6 +572,8 @@ namespace ICSharpCode.NRefactory.CSharp @@ -570,6 +572,8 @@ namespace ICSharpCode.NRefactory.CSharp
prev = lbrace.GetPrevNode();
while (prev is NewLineNode)
prev = prev.GetPrevNode();
if (prev is PreProcessorDirective)
return;
prevOffset = document.GetOffset(prev.EndLocation);
int braceOffset = document.GetOffset(lbrace.StartLocation);
AddChange(prevOffset, braceOffset - prevOffset, "");
@ -579,6 +583,8 @@ namespace ICSharpCode.NRefactory.CSharp @@ -579,6 +583,8 @@ namespace ICSharpCode.NRefactory.CSharp
prev = lbrace.GetPrevNode();
while (prev is NewLineNode)
prev = prev.GetPrevNode();
if (prev is PreProcessorDirective)
return;
prevOffset = document.GetOffset(prev.EndLocation);
braceOffset = document.GetOffset(lbrace.StartLocation);
AddChange(prevOffset, braceOffset - prevOffset, options.EolMarker + curIndent.IndentString);
@ -587,6 +593,8 @@ namespace ICSharpCode.NRefactory.CSharp @@ -587,6 +593,8 @@ namespace ICSharpCode.NRefactory.CSharp
prev = lbrace.GetPrevNode();
while (prev is NewLineNode)
prev = prev.GetPrevNode();
if (prev is PreProcessorDirective)
return;
prevOffset = document.GetOffset(prev.EndLocation);
braceOffset = document.GetOffset(lbrace.StartLocation);
curIndent.Push(IndentType.Block);
@ -597,6 +605,8 @@ namespace ICSharpCode.NRefactory.CSharp @@ -597,6 +605,8 @@ namespace ICSharpCode.NRefactory.CSharp
prev = lbrace.GetPrevNode();
while (prev is NewLineNode)
prev = prev.GetPrevNode();
if (prev is PreProcessorDirective)
return;
prevOffset = document.GetOffset(prev.EndLocation);
braceOffset = document.GetOffset(lbrace.StartLocation);
curIndent.Push(IndentType.Block);

32
ICSharpCode.NRefactory.Tests/FormattingTests/TestFormattingBugs.cs

@ -318,6 +318,38 @@ foo (); @@ -318,6 +318,38 @@ foo ();
}
}");
}
/// <summary>
/// Bug 11601 - Formatting document moves "{" into the #endif line
/// </summary>
[Test]
public void TestBug11601 ()
{
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateMono ();
policy.MethodBraceStyle = BraceStyle.EndOfLine;
Test (policy, @"class Test
{
#if true
Test MyMethod ()
#else
Test MyMethod2 ()
#endif
{
}
}",
@"class Test
{
#if true
Test MyMethod ()
#else
Test MyMethod2 ()
#endif
{
}
}");
}
}
}

Loading…
Cancel
Save