Browse Source

Added object initializers support to VB output visitor.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@5220 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 16 years ago
parent
commit
aa877491c1
  1. 28
      src/Libraries/NRefactory/Project/Src/PrettyPrinter/VBNet/VBNetOutputVisitor.cs
  2. 9
      src/Libraries/NRefactory/Test/Output/VBNet/VBNetOutputTest.cs

28
src/Libraries/NRefactory/Project/Src/PrettyPrinter/VBNet/VBNetOutputVisitor.cs

@ -2655,6 +2655,34 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -2655,6 +2655,34 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
outputFormatter.PrintToken(Tokens.OpenParenthesis);
AppendCommaSeparatedList(objectCreateExpression.Parameters);
outputFormatter.PrintToken(Tokens.CloseParenthesis);
CollectionInitializerExpression initializer = objectCreateExpression.ObjectInitializer;
if (!initializer.IsNull) {
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.With);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenCurlyBrace);
outputFormatter.IndentationLevel++;
for (int i = 0; i < initializer.CreateExpressions.Count; i++) {
Expression expr = initializer.CreateExpressions[i];
if (i > 0)
outputFormatter.PrintToken(Tokens.Comma);
outputFormatter.PrintLineContinuation();
outputFormatter.Indent();
NamedArgumentExpression nae = expr as NamedArgumentExpression;
if (nae != null) {
outputFormatter.PrintToken(Tokens.Dot);
outputFormatter.PrintIdentifier(nae.Name);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.Assign);
outputFormatter.Space();
TrackedVisit(nae.Expression, data);
}
}
outputFormatter.IndentationLevel--;
outputFormatter.PrintLineContinuation();
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.CloseCurlyBrace);
}
return null;
}

9
src/Libraries/NRefactory/Test/Output/VBNet/VBNetOutputTest.cs

@ -467,5 +467,14 @@ End Using"); @@ -467,5 +467,14 @@ End Using");
TestExpression("347UL");
TestExpression("\".\"C");
}
[Test]
public void ObjectInitializer()
{
TestExpression("New StringWriter() With { _\n" +
" .NewLine = Environment.NewLine, _\n" +
" .Encoding = Encoding.UTF8 _\n" +
"}");
}
}
}

Loading…
Cancel
Save