From 75c3a07d2402e5b1ad076226efed7781408c9cd0 Mon Sep 17 00:00:00 2001 From: mike Date: Tue, 8 May 2012 12:02:55 +0200 Subject: [PATCH] [Formatting] Fixed overlapping change bug. --- .../Formatter/AstFormattingVisitor.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp/Formatter/AstFormattingVisitor.cs b/ICSharpCode.NRefactory.CSharp/Formatter/AstFormattingVisitor.cs index dc8db5dc41..d1b625f777 100644 --- a/ICSharpCode.NRefactory.CSharp/Formatter/AstFormattingVisitor.cs +++ b/ICSharpCode.NRefactory.CSharp/Formatter/AstFormattingVisitor.cs @@ -210,8 +210,6 @@ namespace ICSharpCode.NRefactory.CSharp removedChars += document.GetLineByNumber(loc.Line + foundBlankLines - blankLines).EndOffset - document.GetLineByNumber(loc.Line).EndOffset; } - if (removedChars == 0 && sb.Length == 0) - return; AddChange(start, removedChars, sb.ToString()); } @@ -237,23 +235,23 @@ namespace ICSharpCode.NRefactory.CSharp public override void VisitUsingDeclaration(UsingDeclaration usingDeclaration) { - FixIndentationForceNewLine(usingDeclaration.StartLocation); if (!(usingDeclaration.PrevSibling is UsingDeclaration || usingDeclaration.PrevSibling is UsingAliasDeclaration)) { EnsureBlankLinesBefore(usingDeclaration, policy.BlankLinesBeforeUsings); - } - if (!(usingDeclaration.NextSibling is UsingDeclaration || usingDeclaration.NextSibling is UsingAliasDeclaration)) { + } else if (!(usingDeclaration.NextSibling is UsingDeclaration || usingDeclaration.NextSibling is UsingAliasDeclaration)) { EnsureBlankLinesAfter(usingDeclaration, policy.BlankLinesAfterUsings); + } else { + FixIndentationForceNewLine(usingDeclaration.StartLocation); } } public override void VisitUsingAliasDeclaration(UsingAliasDeclaration usingDeclaration) { - FixIndentationForceNewLine(usingDeclaration.StartLocation); if (!(usingDeclaration.PrevSibling is UsingDeclaration || usingDeclaration.PrevSibling is UsingAliasDeclaration)) { EnsureBlankLinesBefore(usingDeclaration, policy.BlankLinesBeforeUsings); - } - if (!(usingDeclaration.NextSibling is UsingDeclaration || usingDeclaration.NextSibling is UsingAliasDeclaration)) { + } else if (!(usingDeclaration.NextSibling is UsingDeclaration || usingDeclaration.NextSibling is UsingAliasDeclaration)) { EnsureBlankLinesAfter(usingDeclaration, policy.BlankLinesAfterUsings); + } else { + FixIndentationForceNewLine(usingDeclaration.StartLocation); } } @@ -1298,6 +1296,8 @@ namespace ICSharpCode.NRefactory.CSharp TextReplaceAction AddChange(int offset, int removedChars, string insertedText) { + if (removedChars == 0 && string.IsNullOrEmpty (insertedText)) + return null; var action = new TextReplaceAction (offset, removedChars, insertedText); changes.Add(action); return action;