Example #1
0
 public virtual void VisitEventFieldDeclaration(EventFieldDeclaration eventFieldDeclaration)
 {
     VisitMemberDeclaration(eventFieldDeclaration);
     Visit(eventFieldDeclaration.Type);
     Visit(eventFieldDeclaration.AddAccessor);
     Visit(eventFieldDeclaration.RemoveAccessor);
     Visit(eventFieldDeclaration.PrivateImplementationType);
 }
 private static int SortOrder(MemberDeclaration m)
 {
     return(m switch
     {
         FieldDeclaration o => 100 + GetModifiersSortOrder(o) * 10 + GetVisibilitySortOrder(o),
         EventFieldDeclaration o => 200 + GetModifiersSortOrder(o) * 10 + GetVisibilitySortOrder(o),
         ConstructorDeclaration o => 300 + GetModifiersSortOrder(o) * 10 + GetVisibilitySortOrder(o),
         PropertyDeclaration o => 400 + GetModifiersSortOrder(o) * 10 + GetVisibilitySortOrder(o),
         MethodDeclaration o => 500 + GetModifiersSortOrder(o) * 10 + GetVisibilitySortOrder(o),
         _ => int.MaxValue,
     });
        protected virtual void Write(IndentedTextWriter writer, EventFieldDeclaration member)
        {
            Write(writer, member.CustomAttributes);
            Write(writer, member.Modifiers);
            writer.Write("event ");
            if (member.Type != null)
            {
                Write(writer, member.Type);
                writer.Write(" ");
            }

            if (member.PrivateImplementationType != null)
            {
                Write(writer, member.PrivateImplementationType);
                writer.Write('.');
            }

            WriteIdentifier(writer, member.Name);

            if (member.AddAccessor == null && member.RemoveAccessor == null)
            {
                writer.WriteLine(";");
            }
            else
            {
                writer.WriteLine();
                writer.WriteLine("{");
                writer.Indent++;

                if (member.AddAccessor != null)
                {
                    writer.WriteLine("add");
                    Write(writer, member.AddAccessor);
                }

                if (member.RemoveAccessor != null)
                {
                    writer.WriteLine("remove");
                    Write(writer, member.RemoveAccessor);
                }

                writer.Indent--;
                writer.WriteLine("}");
            }
        }