internal static InsertionPoint GetSuitableInsertionPoint (IReadonlyTextDocument data, IEnumerable<InsertionPoint> points, ITypeSymbol cls, Location part, SyntaxNode member)
{
switch (member.Kind ()) {
case SyntaxKind.FieldDeclaration:
return GetNewFieldPosition (data, points, cls, part);
case SyntaxKind.MethodDeclaration:
case SyntaxKind.ConstructorDeclaration:
case SyntaxKind.DestructorDeclaration:
case SyntaxKind.OperatorDeclaration:
return GetNewMethodPosition (data, points, cls, part);
case SyntaxKind.EventDeclaration:
return GetNewEventPosition (data, points, cls, part);
case SyntaxKind.PropertyDeclaration:
return GetNewPropertyPosition (data, points, cls, part);
}
throw new InvalidOperationException ("Invalid member type: " + member.Kind ());
}