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);
        }
Exemplo n.º 2
0
 public T AddClassMemberDeclarationAfter <T> (T param, IClassMemberDeclaration anchor) where T : IClassMemberDeclaration
 {
     return(_classDeclaration.AddClassMemberDeclarationAfter(param, anchor));
 }