public static Action <ITextControl> Execute([CanBeNull] IPropertyDeclaration propertyDeclaration, ISolution solution, CSharpElementFactory elementFactory) { if (propertyDeclaration == null) { return(null); } var fieldDeclaration = AutomaticToBackingFieldAction.Execute(propertyDeclaration); AttributeUtil.AddAttributeToSingleDeclaration(fieldDeclaration, KnownTypes.SerializeField, propertyDeclaration.GetPsiModule(), elementFactory); return(AutomaticToBackingFieldAction.PostExecute(propertyDeclaration, fieldDeclaration, solution)); }
public static bool IsAvailable([CanBeNull] IPropertyDeclaration propertyDeclaration) { if (propertyDeclaration == null) { return(false); } if (!propertyDeclaration.IsFromUnityProject()) { return(false); } if (AutomaticToBackingFieldAction.IsAvailable(propertyDeclaration)) { var unityApi = propertyDeclaration.GetSolution().GetComponent <UnityApi>(); var containingType = propertyDeclaration.DeclaredElement?.GetContainingType(); return(containingType != null && unityApi.IsUnityType(containingType)); } return(false); }