public void VisitAttributeList(AttributeListSyntax node) { if (node == null) throw new ArgumentNullException("node"); node.Validate(); _writer.WriteSyntax(Syntax.OpenBracket); if (_writer.Configuration.Spaces.Other.WithinAttributeBrackets) _writer.WriteSpace(); if (node.Target != AttributeTarget.None) { switch (node.Target) { case AttributeTarget.Assembly: _writer.WriteKeyword(PrinterKeyword.Assembly); break; case AttributeTarget.Event: _writer.WriteKeyword(PrinterKeyword.Event); break; case AttributeTarget.Field: _writer.WriteKeyword(PrinterKeyword.Field); break; case AttributeTarget.Method: _writer.WriteKeyword(PrinterKeyword.Method); break; case AttributeTarget.Module: _writer.WriteKeyword(PrinterKeyword.Module); break; case AttributeTarget.Param: _writer.WriteKeyword(PrinterKeyword.Param); break; case AttributeTarget.Property: _writer.WriteKeyword(PrinterKeyword.Property); break; case AttributeTarget.Return: _writer.WriteKeyword(PrinterKeyword.Return); break; case AttributeTarget.Type: _writer.WriteKeyword(PrinterKeyword.Type); break; default: throw ThrowHelper.InvalidEnumValue(node.Target); } if (_writer.Configuration.Spaces.Other.BeforeColonInAttribute) _writer.WriteSpace(); _writer.WriteSyntax(Syntax.Colon); if (_writer.Configuration.Spaces.Other.AfterColonInAttribute) _writer.WriteSpace(); } bool hadOne = false; foreach (var attribute in node.Attributes) { if (hadOne) _writer.WriteListSeparator(); else hadOne = true; attribute.Accept(this); } if (_writer.Configuration.Spaces.Other.WithinAttributeBrackets) _writer.WriteSpace(); _writer.WriteSyntax(Syntax.CloseBracket); }