public static IMethodDeclaration GetOrCreateMethod([NotNull] IClassDeclaration classDeclaration, [NotNull] string methodName) { classDeclaration.GetPsiServices().Locks.AssertReadAccessAllowed(); var result = GetMonoBehaviourMethod(classDeclaration, methodName); if (result == null) { var factory = CSharpElementFactory.GetInstance(classDeclaration); var declaration = (IMethodDeclaration)factory.CreateTypeMemberDeclaration("void $0(){}", methodName); result = classDeclaration.AddClassMemberDeclarationAfter(declaration, classDeclaration.FieldDeclarations.FirstOrDefault()); } return(result); }
public T AddClassMemberDeclarationAfter <T> (T param, IClassMemberDeclaration anchor) where T : IClassMemberDeclaration { return(_classDeclaration.AddClassMemberDeclarationAfter(param, anchor)); }