public static Doc Print(ArgumentSyntax node) { var docs = new List <Doc>(); if (node.NameColon != null) { docs.Add(NameColon.Print(node.NameColon)); } docs.Add(Token.PrintWithSuffix(node.RefKindKeyword, " ")); docs.Add(Node.Print(node.Expression)); return(Doc.Concat(docs)); }
public static Doc Print(RecursivePatternSyntax node) { return(Doc.Concat( node.Type != null ? Doc.Concat(Node.Print(node.Type), " ") : Doc.Null, node.PositionalPatternClause != null ? Doc.Concat( Token.Print(node.PositionalPatternClause.OpenParenToken), SeparatedSyntaxList.Print( node.PositionalPatternClause.Subpatterns, subpatternNode => Doc.Concat( subpatternNode.NameColon != null ? NameColon.Print(subpatternNode.NameColon) : string.Empty, Node.Print(subpatternNode.Pattern) ), " " ), Token.Print(node.PositionalPatternClause.CloseParenToken) ) : string.Empty, node.PropertyPatternClause != null ? Doc.Concat( Token.PrintWithSuffix(node.PropertyPatternClause.OpenBraceToken, " "), SeparatedSyntaxList.Print( node.PropertyPatternClause.Subpatterns, subpatternNode => Doc.Concat( subpatternNode.NameColon != null ? NameColon.Print(subpatternNode.NameColon) : Doc.Null, Node.Print(subpatternNode.Pattern) ), " " ), node.PropertyPatternClause.Subpatterns.Any() ? " " : Doc.Null, Token.Print(node.PropertyPatternClause.CloseBraceToken) ) : string.Empty, node.Designation != null ? Doc.Concat(" ", Node.Print(node.Designation)) : string.Empty )); }
public static Doc Print(AttributeListSyntax node) { var docs = new List <Doc>(); if (node.Parent is CompilationUnitSyntax) { docs.Add(ExtraNewLines.Print(node)); } docs.Add(Token.Print(node.OpenBracketToken)); if (node.Target != null) { docs.Add( Token.Print(node.Target.Identifier), Token.PrintWithSuffix(node.Target.ColonToken, " ") ); } var printSeparatedSyntaxList = SeparatedSyntaxList.Print( node.Attributes, attributeNode => { var name = Node.Print(attributeNode.Name); if (attributeNode.ArgumentList == null) { return(name); } return(Doc.Group( name, Token.Print(attributeNode.ArgumentList.OpenParenToken), Doc.Indent( Doc.SoftLine, SeparatedSyntaxList.Print( attributeNode.ArgumentList.Arguments, attributeArgumentNode => Doc.Concat( attributeArgumentNode.NameEquals != null ? NameEquals.Print(attributeArgumentNode.NameEquals) : Doc.Null, attributeArgumentNode.NameColon != null ? NameColon.Print(attributeArgumentNode.NameColon) : Doc.Null, Node.Print(attributeArgumentNode.Expression) ), Doc.Line ) ), Doc.SoftLine, Token.Print(attributeNode.ArgumentList.CloseParenToken) )); }, Doc.Line ); docs.Add( node.Attributes.Count > 1 ? Doc.Indent(Doc.SoftLine, printSeparatedSyntaxList) : printSeparatedSyntaxList ); docs.Add( node.Attributes.Count > 1 ? Doc.SoftLine : Doc.Null, Token.Print(node.CloseBracketToken) ); return(Doc.Group(docs)); }