Browse Source

Added space in named argument formatting option.

newNRvisualizers
Mike Krüger 13 years ago
parent
commit
c882a84787
  1. 6
      ICSharpCode.NRefactory.CSharp/Formatter/AstFormattingVisitor.cs
  2. 8
      ICSharpCode.NRefactory.CSharp/Formatter/CSharpFormattingOptions.cs
  3. 46
      ICSharpCode.NRefactory.Tests/FormattingTests/TestSpacingVisitor.cs

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

@ -1687,6 +1687,12 @@ namespace ICSharpCode.NRefactory.CSharp @@ -1687,6 +1687,12 @@ namespace ICSharpCode.NRefactory.CSharp
base.VisitLambdaExpression(lambdaExpression);
}
public override void VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression)
{
ForceSpacesAfter(namedArgumentExpression.ColonToken, policy.SpaceInNamedArgumentAfterDoubleColon);
base.VisitNamedArgumentExpression(namedArgumentExpression);
}
#endregion
void ForceSpaceBefore(int offset, bool forceSpace)

8
ICSharpCode.NRefactory.CSharp/Formatter/CSharpFormattingOptions.cs

@ -727,6 +727,10 @@ namespace ICSharpCode.NRefactory.CSharp @@ -727,6 +727,10 @@ namespace ICSharpCode.NRefactory.CSharp
set;
}
public bool SpaceInNamedArgumentAfterDoubleColon {
get;
set;
}
#endregion
#region Blank Lines
@ -767,7 +771,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -767,7 +771,7 @@ namespace ICSharpCode.NRefactory.CSharp
#endregion
public CSharpFormattingOptions ()
public CSharpFormattingOptions()
{
IndentNamespaceBody = true;
IndentClassBody = IndentInterfaceBody = IndentStructBody = IndentEnumBody = true;
@ -866,7 +870,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -866,7 +870,7 @@ namespace ICSharpCode.NRefactory.CSharp
SpaceBeforeIndexerDeclarationBracket = true;
SpaceWithinIndexerDeclarationBracket = false;
SpaceBeforeIndexerDeclarationParameterComma = false;
SpaceInNamedArgumentAfterDoubleColon = true;
SpaceAfterIndexerDeclarationParameterComma = true;

46
ICSharpCode.NRefactory.Tests/FormattingTests/TestSpacingVisitor.cs

@ -1584,19 +1584,53 @@ return (Test)null; @@ -1584,19 +1584,53 @@ return (Test)null;
}
[Test()]
public void TestRemoveWhitespacesBeforeSemicolon ()
public void TestRemoveWhitespacesBeforeSemicolon()
{
CSharpFormattingOptions policy = new CSharpFormattingOptions ();
var result = GetResult (policy, @"class Test {
CSharpFormattingOptions policy = new CSharpFormattingOptions();
var result = GetResult(policy, @"class Test {
void TestMe ()
{
Foo () ;
}
}");
int i1 = result.Text.IndexOf ("Foo");
int i2 = result.Text.LastIndexOf (";") + ";".Length;
Assert.AreEqual (@"Foo ();", result.GetText (i1, i2 - i1));
int i1 = result.Text.IndexOf("Foo");
int i2 = result.Text.LastIndexOf(";") + ";".Length;
Assert.AreEqual(@"Foo ();", result.GetText(i1, i2 - i1));
}
[Test()]
public void TestSpaceInNamedArgumentAfterDoubleColon()
{
var policy = new CSharpFormattingOptions();
policy.SpaceInNamedArgumentAfterDoubleColon = true;
var result = GetResult(policy, @"class Test {
void TestMe ()
{
Foo (bar:expr);
}
}");
int i1 = result.Text.IndexOf("Foo");
int i2 = result.Text.LastIndexOf(";") + ";".Length;
Assert.AreEqual(@"Foo (bar: expr);", result.GetText(i1, i2 - i1));
}
[Test()]
public void TestSpaceInNamedArgumentAfterDoubleColon2()
{
var policy = new CSharpFormattingOptions();
policy.SpaceInNamedArgumentAfterDoubleColon = false;
var result = GetResult(policy, @"class Test {
void TestMe ()
{
Foo (bar: expr);
}
}");
int i1 = result.Text.IndexOf("Foo");
int i2 = result.Text.LastIndexOf(";") + ";".Length;
Assert.AreEqual(@"Foo (bar:expr);", result.GetText(i1, i2 - i1));
}
}
}

Loading…
Cancel
Save