mirror of https://github.com/icsharpcode/ILSpy.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1167 lines
37 KiB
1167 lines
37 KiB
// |
|
// TestFormattingVisitor.cs |
|
// |
|
// Author: |
|
// Mike Krüger <mkrueger@novell.com> |
|
// |
|
// Copyright (c) 2010 Novell, Inc (http://www.novell.com) |
|
// |
|
// Permission is hereby granted, free of charge, to any person obtaining a copy |
|
// of this software and associated documentation files (the "Software"), to deal |
|
// in the Software without restriction, including without limitation the rights |
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
// copies of the Software, and to permit persons to whom the Software is |
|
// furnished to do so, subject to the following conditions: |
|
// |
|
// The above copyright notice and this permission notice shall be included in |
|
// all copies or substantial portions of the Software. |
|
// |
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
|
// THE SOFTWARE. |
|
/* |
|
using System; |
|
using NUnit.Framework; |
|
using MonoDevelop.Ide.Gui; |
|
using MonoDevelop.Projects; |
|
using MonoDevelop.Core; |
|
using MonoDevelop.Ide.CodeCompletion; |
|
using MonoDevelop.Ide.Gui.Content; |
|
using MonoDevelop.Projects.Dom.Parser; |
|
using MonoDevelop.CSharp.Parser; |
|
using MonoDevelop.CSharp.Resolver; |
|
using MonoDevelop.CSharp.Completion; |
|
using Mono.TextEditor; |
|
using MonoDevelop.CSharp.Formatting; |
|
|
|
namespace MonoDevelop.CSharpBinding.FormattingTests |
|
{ |
|
[TestFixture()] |
|
public class TestSpacingVisitor : UnitTests.TestBase |
|
{ |
|
[Test()] |
|
public void TestFieldSpacesBeforeComma1 () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
int a , b, c; |
|
}"; |
|
|
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.ClassBraceStyle = BraceStyle.EndOfLine; |
|
policy.SpacesAfterComma = false; |
|
policy.SpacesBeforeComma = false; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
Assert.AreEqual (@"class Test { |
|
int a,b,c; |
|
}", data.Document.Text); |
|
} |
|
|
|
[Test()] |
|
public void TestFieldSpacesBeforeComma2 () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
int a , b, c; |
|
}"; |
|
|
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.ClassBraceStyle = BraceStyle.EndOfLine; |
|
policy.SpacesAfterComma = true; |
|
policy.SpacesBeforeComma = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
Assert.AreEqual (@"class Test { |
|
int a , b , c; |
|
}", data.Document.Text); |
|
} |
|
|
|
[Test()] |
|
public void TestFixedFieldSpacesBeforeComma () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
fixed int a[10] , b[10], c[10]; |
|
}"; |
|
|
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.ClassBraceStyle = BraceStyle.EndOfLine; |
|
policy.SpacesAfterComma = true; |
|
policy.SpacesBeforeComma = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
Assert.AreEqual (@"class Test { |
|
fixed int a[10] , b[10] , c[10]; |
|
}", data.Document.Text); |
|
} |
|
|
|
[Test()] |
|
public void TestConstFieldSpacesBeforeComma () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
const int a = 1 , b = 2, c = 3; |
|
}"; |
|
|
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.ClassBraceStyle = BraceStyle.EndOfLine; |
|
policy.SpacesAfterComma = false; |
|
policy.SpacesBeforeComma = false; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
Assert.AreEqual (@"class Test { |
|
const int a = 1,b = 2,c = 3; |
|
}", data.Document.Text); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeDelegateDeclarationParentheses () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = "delegate void TestDelegate();"; |
|
|
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.BeforeDelegateDeclarationParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
Assert.AreEqual (@"delegate void TestDelegate ();", data.Document.Text); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeDelegateDeclarationParenthesesComplex () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = "delegate void TestDelegate\n\t\t\t();"; |
|
|
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.BeforeDelegateDeclarationParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
Assert.AreEqual (@"delegate void TestDelegate ();", data.Document.Text); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeMethodDeclarationParentheses () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"public abstract class Test |
|
{ |
|
public abstract Test TestMethod(); |
|
}"; |
|
|
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.BeforeMethodDeclarationParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
Console.WriteLine (data.Document.Text); |
|
Assert.AreEqual (@"public abstract class Test |
|
{ |
|
public abstract Test TestMethod (); |
|
}", data.Document.Text); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeConstructorDeclarationParentheses () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test |
|
{ |
|
Test() |
|
{ |
|
} |
|
}"; |
|
|
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.BeforeConstructorDeclarationParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
Assert.AreEqual (@"class Test |
|
{ |
|
Test () |
|
{ |
|
} |
|
}", data.Document.Text); |
|
} |
|
|
|
|
|
|
|
[Test()] |
|
public void TestBeforeConstructorDeclarationParenthesesDestructorCase () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test |
|
{ |
|
~Test() |
|
{ |
|
} |
|
}"; |
|
|
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.BeforeConstructorDeclarationParentheses = true; |
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
Assert.AreEqual (@"class Test |
|
{ |
|
~Test () |
|
{ |
|
} |
|
}", data.Document.Text); |
|
} |
|
|
|
|
|
|
|
static void TestBinaryOperator (CSharpFormattingPolicy policy, string op) |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = "class Test { void TestMe () { result = left" +op+"right; } }"; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.IndexOf ("left"); |
|
int i2 = data.Document.Text.IndexOf ("right") + "right".Length; |
|
if (i1 < 0 || i2 < 0) |
|
Assert.Fail ("text invalid:" + data.Document.Text); |
|
Assert.AreEqual ("left " + op + " right", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestSpacesAroundMultiplicativeOperator () |
|
{ |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.AroundMultiplicativeOperatorParentheses = true; |
|
|
|
TestBinaryOperator (policy, "*"); |
|
TestBinaryOperator (policy, "/"); |
|
} |
|
|
|
[Test()] |
|
public void TestSpacesAroundShiftOperator () |
|
{ |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.AroundShiftOperatorParentheses = true; |
|
TestBinaryOperator (policy, "<<"); |
|
TestBinaryOperator (policy, ">>"); |
|
} |
|
|
|
[Test()] |
|
public void TestSpacesAroundAdditiveOperator () |
|
{ |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.AroundAdditiveOperatorParentheses = true; |
|
|
|
TestBinaryOperator (policy, "+"); |
|
TestBinaryOperator (policy, "-"); |
|
} |
|
|
|
[Test()] |
|
public void TestSpacesAroundBitwiseOperator () |
|
{ |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.AroundBitwiseOperatorParentheses = true; |
|
|
|
TestBinaryOperator (policy, "&"); |
|
TestBinaryOperator (policy, "|"); |
|
TestBinaryOperator (policy, "^"); |
|
} |
|
|
|
[Test()] |
|
public void TestSpacesAroundRelationalOperator () |
|
{ |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.AroundRelationalOperatorParentheses = true; |
|
|
|
TestBinaryOperator (policy, "<"); |
|
TestBinaryOperator (policy, "<="); |
|
TestBinaryOperator (policy, ">"); |
|
TestBinaryOperator (policy, ">="); |
|
} |
|
|
|
[Test()] |
|
public void TestSpacesAroundEqualityOperator () |
|
{ |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.AroundEqualityOperatorParentheses = true; |
|
|
|
TestBinaryOperator (policy, "=="); |
|
TestBinaryOperator (policy, "!="); |
|
} |
|
|
|
[Test()] |
|
public void TestSpacesAroundLogicalOperator () |
|
{ |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.AroundLogicalOperatorParentheses = true; |
|
|
|
TestBinaryOperator (policy, "&&"); |
|
TestBinaryOperator (policy, "||"); |
|
} |
|
|
|
[Test()] |
|
public void TestConditionalOperator () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
result = condition?trueexpr:falseexpr; |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.ConditionalOperatorAfterConditionSpace = true; |
|
policy.ConditionalOperatorAfterSeparatorSpace = true; |
|
policy.ConditionalOperatorBeforeConditionSpace = true; |
|
policy.ConditionalOperatorBeforeSeparatorSpace = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
|
|
int i1 = data.Document.Text.IndexOf ("condition"); |
|
int i2 = data.Document.Text.IndexOf ("falseexpr") + "falseexpr".Length; |
|
Assert.AreEqual (@"condition ? trueexpr : falseexpr", data.Document.GetTextBetween (i1, i2)); |
|
|
|
|
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
result = true ? trueexpr : falseexpr; |
|
} |
|
}"; |
|
policy.ConditionalOperatorAfterConditionSpace = false; |
|
policy.ConditionalOperatorAfterSeparatorSpace = false; |
|
policy.ConditionalOperatorBeforeConditionSpace = false; |
|
policy.ConditionalOperatorBeforeSeparatorSpace = false; |
|
|
|
compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
i1 = data.Document.Text.IndexOf ("true"); |
|
i2 = data.Document.Text.IndexOf ("falseexpr") + "falseexpr".Length; |
|
Assert.AreEqual (@"true?trueexpr:falseexpr", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeMethodCallParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
MethodCall(); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.BeforeMethodCallParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.IndexOf ("MethodCall"); |
|
int i2 = data.Document.Text.IndexOf (";") + ";".Length; |
|
Assert.AreEqual (@"MethodCall ();", data.Document.GetTextBetween (i1, i2)); |
|
|
|
|
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
MethodCall (); |
|
} |
|
}"; |
|
policy.BeforeMethodCallParentheses = false; |
|
|
|
compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
i1 = data.Document.Text.IndexOf ("MethodCall"); |
|
i2 = data.Document.Text.IndexOf (";") + ";".Length; |
|
Assert.AreEqual (@"MethodCall();", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinMethodCallParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
MethodCall(true); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinMethodCallParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
|
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( true )", data.Document.GetTextBetween (i1, i2)); |
|
|
|
|
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
MethodCall( true ); |
|
} |
|
}"; |
|
policy.WithinMethodCallParentheses = false; |
|
|
|
compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
i1 = data.Document.Text.LastIndexOf ("("); |
|
i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"(true)", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeIfParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
if(true); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.IfParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.IndexOf ("if"); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"if (true)", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinIfParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
if (true); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinIfParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( true )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeWhileParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
while(true); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WhileParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.IndexOf ("while"); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"while (true)", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinWhileParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
while (true); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinWhileParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( true )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeForParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
for(;;); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.ForParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.IndexOf ("for"); |
|
int i2 = data.Document.Text.LastIndexOf ("(") + "(".Length; |
|
Assert.AreEqual (@"for (", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinForParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
for(;;); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinForParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( ;; )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeForeachParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
foreach(var o in list); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.ForeachParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.IndexOf ("foreach"); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"foreach (var o in list)", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinForeachParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
foreach(var o in list); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinForEachParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( var o in list )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeCatchParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
try {} catch(Exception) {} |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.CatchParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.IndexOf ("catch"); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"catch (Exception)", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinCatchParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
try {} catch(Exception) {} |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinCatchParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( Exception )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeLockParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
lock(this) {} |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.LockParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.IndexOf ("lock"); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"lock (this)", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinLockParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
lock(this) {} |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinLockParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( this )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
|
|
[Test()] |
|
public void TestSpacesAfterSemicolon () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
for (int i;true;i++) ; |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.SpacesAfterSemicolon = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("for"); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
|
|
Assert.AreEqual (@"for (int i; true; i++)", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestSpacesAfterTypecast () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
Test TestMe () |
|
{ |
|
return (Test)null; |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.SpacesAfterTypecast = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("return"); |
|
int i2 = data.Document.Text.LastIndexOf ("null") + "null".Length; |
|
|
|
Assert.AreEqual (@"return (Test) null", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeUsingParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
using(a) {} |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.UsingParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.IndexOf ("using"); |
|
int i2 = data.Document.Text.LastIndexOf ("(") + "(".Length; |
|
Assert.AreEqual (@"using (", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinUsingParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
using(a) {} |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinUsingParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( a )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
static void TestAssignmentOperator (CSharpFormattingPolicy policy, string op) |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = "class Test { void TestMe () { left" +op+"right; } }"; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.IndexOf ("left"); |
|
int i2 = data.Document.Text.IndexOf ("right") + "right".Length; |
|
if (i1 < 0 || i2 < 0) |
|
Assert.Fail ("text invalid:" + data.Document.Text); |
|
Assert.AreEqual ("left " + op + " right", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestAroundAssignmentSpace () |
|
{ |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.AroundAssignmentParentheses = true; |
|
|
|
TestAssignmentOperator (policy, "="); |
|
TestAssignmentOperator (policy, "*="); |
|
TestAssignmentOperator (policy, "/="); |
|
TestAssignmentOperator (policy, "+="); |
|
TestAssignmentOperator (policy, "%="); |
|
TestAssignmentOperator (policy, "-="); |
|
TestAssignmentOperator (policy, "<<="); |
|
TestAssignmentOperator (policy, ">>="); |
|
TestAssignmentOperator (policy, "&="); |
|
TestAssignmentOperator (policy, "|="); |
|
TestAssignmentOperator (policy, "^="); |
|
} |
|
|
|
[Test()] |
|
public void TestAroundAssignmentSpaceInDeclarations () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
int left=right; |
|
} |
|
}"; |
|
|
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.AroundAssignmentParentheses = true; |
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("left"); |
|
int i2 = data.Document.Text.LastIndexOf ("right") + "right".Length; |
|
Assert.AreEqual (@"left = right", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestBeforeSwitchParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
switch (test) { default: break; } |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.SwitchParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.IndexOf ("switch"); |
|
int i2 = data.Document.Text.LastIndexOf ("(") + "(".Length; |
|
Assert.AreEqual (@"switch (", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinSwitchParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
switch (test) { default: break; } |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinSwitchParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( test )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
c = (test); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( test )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinMethodDeclarationParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe (int a) |
|
{ |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinMethodDeclarationParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( int a )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinCastParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
a = (int)b; |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinCastParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( int )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinSizeOfParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
a = sizeof(int); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinSizeOfParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( int )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinTypeOfParenthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
a = typeof(int); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinTypeOfParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( int )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestWithinCheckedExpressionParanthesesSpace () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
a = checked(a + b); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinCheckedExpressionParantheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("("); |
|
int i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( a + b )", data.Document.GetTextBetween (i1, i2)); |
|
|
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
a = unchecked(a + b); |
|
} |
|
}"; |
|
|
|
compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
i1 = data.Document.Text.LastIndexOf ("("); |
|
i2 = data.Document.Text.LastIndexOf (")") + ")".Length; |
|
Assert.AreEqual (@"( a + b )", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestSpacesWithinBrackets () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
Test this[int i] { |
|
get {} |
|
set {} |
|
} |
|
|
|
void TestMe () |
|
{ |
|
this[0] = 5; |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.SpacesWithinBrackets = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
|
|
Assert.AreEqual (@"class Test { |
|
Test this[ int i ] { |
|
get {} |
|
set {} |
|
} |
|
|
|
void TestMe () |
|
{ |
|
this[ 0 ] = 5; |
|
} |
|
}", data.Document.Text); |
|
|
|
policy.SpacesWithinBrackets = false; |
|
|
|
compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
|
|
Assert.AreEqual (@"class Test { |
|
Test this[int i] { |
|
get {} |
|
set {} |
|
} |
|
|
|
void TestMe () |
|
{ |
|
this[0] = 5; |
|
} |
|
}", data.Document.Text); |
|
} |
|
|
|
|
|
[Test()] |
|
public void TestSpaceBeforeNewParentheses () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
new Test(); |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.NewParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("new"); |
|
int i2 = data.Document.Text.LastIndexOf (";") + ";".Length; |
|
Assert.AreEqual (@"new Test ();", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestSpacesBeforeComma () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
int[] i = new int[] { 1,3,3,7 }; |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.SpacesBeforeComma = true; |
|
policy.SpacesAfterComma = false; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("new"); |
|
int i2 = data.Document.Text.LastIndexOf (";") + ";".Length; |
|
Assert.AreEqual (@"new int[] { 1 ,3 ,3 ,7 };", data.Document.GetTextBetween (i1, i2)); |
|
policy.SpacesBeforeComma = false; |
|
|
|
compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
i1 = data.Document.Text.LastIndexOf ("new"); |
|
i2 = data.Document.Text.LastIndexOf (";") + ";".Length; |
|
Assert.AreEqual (@"new int[] { 1,3,3,7 };", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestSpacesAfterComma () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
int[] i = new int[] { 1,3,3,7 }; |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.SpacesBeforeComma = false; |
|
policy.SpacesAfterComma = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.LastIndexOf ("new"); |
|
int i2 = data.Document.Text.LastIndexOf (";") + ";".Length; |
|
Assert.AreEqual (@"new int[] { 1, 3, 3, 7 };", data.Document.GetTextBetween (i1, i2)); |
|
policy.SpacesAfterComma = false; |
|
|
|
compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
i1 = data.Document.Text.LastIndexOf ("new"); |
|
i2 = data.Document.Text.LastIndexOf (";") + ";".Length; |
|
Assert.AreEqual (@"new int[] { 1,3,3,7 };", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
[Test()] |
|
public void TestSpacesInLambdaExpression () |
|
{ |
|
TextEditorData data = new TextEditorData (); |
|
data.Document.FileName = "a.cs"; |
|
data.Document.Text = @"class Test { |
|
void TestMe () |
|
{ |
|
var v = x=>x!=null; |
|
} |
|
}"; |
|
CSharpFormattingPolicy policy = new CSharpFormattingPolicy (); |
|
policy.WithinWhileParentheses = true; |
|
|
|
CSharp.Dom.CompilationUnit compilationUnit = new CSharpParser ().Parse (data); |
|
compilationUnit.AcceptVisitor (new DomSpacingVisitor (policy, data), null); |
|
int i1 = data.Document.Text.IndexOf ("x"); |
|
int i2 = data.Document.Text.LastIndexOf ("null") + "null".Length; |
|
Assert.AreEqual (@"x => x != null", data.Document.GetTextBetween (i1, i2)); |
|
} |
|
|
|
} |
|
} |
|
*/ |