private static BlockSyntax GetMemberBody(MemberDeclarationSyntax memberDeclaration) { if (memberDeclaration != null) { switch (memberDeclaration.CSharpKind()) { case SyntaxKind.MethodDeclaration: return(((MethodDeclarationSyntax)memberDeclaration).Body); case SyntaxKind.OperatorDeclaration: return(((OperatorDeclarationSyntax)memberDeclaration).Body); case SyntaxKind.ConversionOperatorDeclaration: return(((ConversionOperatorDeclarationSyntax)memberDeclaration).Body); case SyntaxKind.ConstructorDeclaration: return(((ConstructorDeclarationSyntax)memberDeclaration).Body); case SyntaxKind.DestructorDeclaration: return(((DestructorDeclarationSyntax)memberDeclaration).Body); } } return(null); }
public static MemberDeclarationSyntax WithBody( this MemberDeclarationSyntax memberDeclaration, BlockSyntax body) { if (memberDeclaration != null) { switch (memberDeclaration.CSharpKind()) { case SyntaxKind.MethodDeclaration: return(((MethodDeclarationSyntax)memberDeclaration).WithBody(body)); case SyntaxKind.OperatorDeclaration: return(((OperatorDeclarationSyntax)memberDeclaration).WithBody(body)); case SyntaxKind.ConversionOperatorDeclaration: return(((ConversionOperatorDeclarationSyntax)memberDeclaration).WithBody(body)); case SyntaxKind.ConstructorDeclaration: return(((ConstructorDeclarationSyntax)memberDeclaration).WithBody(body)); case SyntaxKind.DestructorDeclaration: return(((DestructorDeclarationSyntax)memberDeclaration).WithBody(body)); } } return(null); }
public static TypeSyntax GetMemberType(this MemberDeclarationSyntax member) { if (member != null) { switch (member.CSharpKind()) { case SyntaxKind.DelegateDeclaration: return(((DelegateDeclarationSyntax)member).ReturnType); case SyntaxKind.MethodDeclaration: return(((MethodDeclarationSyntax)member).ReturnType); case SyntaxKind.OperatorDeclaration: return(((OperatorDeclarationSyntax)member).ReturnType); case SyntaxKind.PropertyDeclaration: return(((PropertyDeclarationSyntax)member).Type); case SyntaxKind.IndexerDeclaration: return(((IndexerDeclarationSyntax)member).Type); case SyntaxKind.EventDeclaration: return(((EventDeclarationSyntax)member).Type); case SyntaxKind.EventFieldDeclaration: return(((EventFieldDeclarationSyntax)member).Declaration.Type); case SyntaxKind.FieldDeclaration: return(((FieldDeclarationSyntax)member).Declaration.Type); } } return(null); }
public static MemberDeclarationSyntax WithParameterList( this MemberDeclarationSyntax member, BaseParameterListSyntax parameterList) { if (member != null) { switch (member.CSharpKind()) { case SyntaxKind.DelegateDeclaration: return(((DelegateDeclarationSyntax)member).WithParameterList((ParameterListSyntax)parameterList)); case SyntaxKind.MethodDeclaration: return(((MethodDeclarationSyntax)member).WithParameterList((ParameterListSyntax)parameterList)); case SyntaxKind.ConstructorDeclaration: return(((ConstructorDeclarationSyntax)member).WithParameterList((ParameterListSyntax)parameterList)); case SyntaxKind.IndexerDeclaration: return(((IndexerDeclarationSyntax)member).WithParameterList((BracketedParameterListSyntax)parameterList)); case SyntaxKind.OperatorDeclaration: return(((OperatorDeclarationSyntax)member).WithParameterList((ParameterListSyntax)parameterList)); case SyntaxKind.ConversionOperatorDeclaration: return(((ConversionOperatorDeclarationSyntax)member).WithParameterList((ParameterListSyntax)parameterList)); } } return(null); }
public static MemberDeclarationSyntax WithAttributeLists( this MemberDeclarationSyntax member, SyntaxList <AttributeListSyntax> attributeLists) { if (member != null) { switch (member.CSharpKind()) { case SyntaxKind.EnumDeclaration: return(((EnumDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.EnumMemberDeclaration: return(((EnumMemberDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.StructDeclaration: return(((TypeDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.DelegateDeclaration: return(((DelegateDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.FieldDeclaration: return(((FieldDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.EventFieldDeclaration: return(((EventFieldDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.ConstructorDeclaration: return(((ConstructorDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.DestructorDeclaration: return(((DestructorDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.PropertyDeclaration: return(((PropertyDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.EventDeclaration: return(((EventDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.IndexerDeclaration: return(((IndexerDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.OperatorDeclaration: return(((OperatorDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.ConversionOperatorDeclaration: return(((ConversionOperatorDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.MethodDeclaration: return(((MethodDeclarationSyntax)member).WithAttributeLists(attributeLists)); case SyntaxKind.IncompleteMember: return(((IncompleteMemberSyntax)member).WithAttributeLists(attributeLists)); } } return(null); }
private static MemberDeclarationSyntax AfterMember( SyntaxList<MemberDeclarationSyntax> members, MemberDeclarationSyntax eventDeclaration) { if (eventDeclaration.CSharpKind() == SyntaxKind.EventFieldDeclaration) { // Field style events go after the last field event, or after the last field. var lastEvent = members.LastOrDefault(m => m is EventFieldDeclarationSyntax); return lastEvent ?? LastField(members); } if (eventDeclaration.CSharpKind() == SyntaxKind.EventDeclaration) { // Property style events go after existing events, then after existing constructors. var lastEvent = members.LastOrDefault(m => m is EventDeclarationSyntax); return lastEvent ?? LastConstructor(members); } return null; }
private static MemberDeclarationSyntax AfterMember( SyntaxList <MemberDeclarationSyntax> members, MemberDeclarationSyntax eventDeclaration) { if (eventDeclaration.CSharpKind() == SyntaxKind.EventFieldDeclaration) { // Field style events go after the last field event, or after the last field. var lastEvent = members.LastOrDefault(m => m is EventFieldDeclarationSyntax); return(lastEvent ?? LastField(members)); } if (eventDeclaration.CSharpKind() == SyntaxKind.EventDeclaration) { // Property style events go after existing events, then after existing constructors. var lastEvent = members.LastOrDefault(m => m is EventDeclarationSyntax); return(lastEvent ?? LastConstructor(members)); } return(null); }
private static MemberDeclarationSyntax BeforeMember( SyntaxList<MemberDeclarationSyntax> members, MemberDeclarationSyntax eventDeclaration) { // If it's a field style event, then it goes before everything else if we don't have any // existing fields/events. if (eventDeclaration.CSharpKind() == SyntaxKind.FieldDeclaration) { return members.FirstOrDefault(); } // Otherwise just place it before the methods. return FirstMethod(members); }
private static MemberDeclarationSyntax BeforeMember( SyntaxList <MemberDeclarationSyntax> members, MemberDeclarationSyntax eventDeclaration) { // If it's a field style event, then it goes before everything else if we don't have any // existing fields/events. if (eventDeclaration.CSharpKind() == SyntaxKind.FieldDeclaration) { return(members.FirstOrDefault()); } // Otherwise just place it before the methods. return(FirstMethod(members)); }
private static MemberDeclarationSyntax RemoveAllMembers(MemberDeclarationSyntax declaration) { switch (declaration.CSharpKind()) { case SyntaxKind.EnumDeclaration: return(((EnumDeclarationSyntax)declaration).WithMembers(default(SeparatedSyntaxList <EnumMemberDeclarationSyntax>))); case SyntaxKind.StructDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.ClassDeclaration: return(((TypeDeclarationSyntax)declaration).WithMembers(default(SyntaxList <MemberDeclarationSyntax>))); default: return(declaration); } }
public static bool HasMethodShape(this MemberDeclarationSyntax memberDeclaration) { if (memberDeclaration != null) { switch (memberDeclaration.CSharpKind()) { case SyntaxKind.MethodDeclaration: case SyntaxKind.OperatorDeclaration: case SyntaxKind.ConversionOperatorDeclaration: case SyntaxKind.ConstructorDeclaration: case SyntaxKind.DestructorDeclaration: return(true); } } return(false); }
public static TypeParameterListSyntax GetTypeParameterList(this MemberDeclarationSyntax member) { if (member != null) { switch (member.CSharpKind()) { case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.StructDeclaration: return(((TypeDeclarationSyntax)member).TypeParameterList); case SyntaxKind.DelegateDeclaration: return(((DelegateDeclarationSyntax)member).TypeParameterList); case SyntaxKind.MethodDeclaration: return(((MethodDeclarationSyntax)member).TypeParameterList); } } return(null); }
public static int GetArity(this MemberDeclarationSyntax member) { if (member != null) { switch (member.CSharpKind()) { case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.StructDeclaration: return(((TypeDeclarationSyntax)member).Arity); case SyntaxKind.DelegateDeclaration: return(((DelegateDeclarationSyntax)member).Arity); case SyntaxKind.MethodDeclaration: return(((MethodDeclarationSyntax)member).Arity); } } return(0); }
public static SyntaxToken GetNameToken(this MemberDeclarationSyntax member) { if (member != null) { switch (member.CSharpKind()) { case SyntaxKind.EnumDeclaration: return(((EnumDeclarationSyntax)member).Identifier); case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.StructDeclaration: return(((TypeDeclarationSyntax)member).Identifier); case SyntaxKind.DelegateDeclaration: return(((DelegateDeclarationSyntax)member).Identifier); case SyntaxKind.FieldDeclaration: return(((FieldDeclarationSyntax)member).Declaration.Variables.First().Identifier); case SyntaxKind.EventFieldDeclaration: return(((EventFieldDeclarationSyntax)member).Declaration.Variables.First().Identifier); case SyntaxKind.PropertyDeclaration: return(((PropertyDeclarationSyntax)member).Identifier); case SyntaxKind.EventDeclaration: return(((EventDeclarationSyntax)member).Identifier); case SyntaxKind.MethodDeclaration: return(((MethodDeclarationSyntax)member).Identifier); } } // Constructors, destructors, indexers and operators don't have names. return(default(SyntaxToken)); }
private static MemberDeclarationSyntax RemoveAllMembers(MemberDeclarationSyntax declaration) { switch (declaration.CSharpKind()) { case SyntaxKind.EnumDeclaration: return ((EnumDeclarationSyntax)declaration).WithMembers(default(SeparatedSyntaxList<EnumMemberDeclarationSyntax>)); case SyntaxKind.StructDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.ClassDeclaration: return ((TypeDeclarationSyntax)declaration).WithMembers(default(SyntaxList<MemberDeclarationSyntax>)); default: return declaration; } }
public void AddMember(MemberDeclarationSyntax node) { switch (node.CSharpKind()) { case SyntaxKind.ConstructorDeclaration: { Add((ConstructorDeclarationSyntax)node); return; } break; case SyntaxKind.FieldDeclaration: { Add((FieldDeclarationSyntax)node); return; } break; case SyntaxKind.EventFieldDeclaration: { Add((EventFieldDeclarationSyntax)node); return; } break; case SyntaxKind.PropertyDeclaration: { Add((PropertyDeclarationSyntax)node); return; } break; case SyntaxKind.MethodDeclaration: { Add((MethodDeclarationSyntax)node); return; } break; case SyntaxKind.EnumMemberDeclaration: { Add((EnumMemberDeclarationSyntax)node); return; } break; case SyntaxKind.IndexerDeclaration: { Add((IndexerDeclarationSyntax)node); return; } break; case SyntaxKind.ClassDeclaration: { Add((ClassDeclarationSyntax)node); return; } break; case SyntaxKind.StructDeclaration: { Add((StructDeclarationSyntax)node); return; } break; } throw new NotImplementedException(node.CSharpKind().ToString()); }