public static IClassMemberDeclaration CreatePropertyDeclaration(this CSharpElementFactory factory, IType typeExpression, string memberName, bool isReadOnly, AccessRights accessRights) { var declaration = factory.CreatePropertyDeclaration(typeExpression, memberName); declaration.SetAccessRights(accessRights); declaration.WithPrivateGetter(factory); if (!isReadOnly) { declaration.WithPrivateSetter(factory); } return(declaration); }
protected override IClassMemberDeclaration CreateMemberDeclaration(CSharpElementFactory factory) { var declaration = factory.CreatePropertyDeclaration(ExpressionType, "__"); declaration.SetAccessRights(AccessRights.PUBLIC); var getter = factory.CreateAccessorDeclaration(AccessorKind.GETTER, false); var setter = factory.CreateAccessorDeclaration(AccessorKind.SETTER, false); declaration.AddAccessorDeclarationAfter(getter, null); declaration.AddAccessorDeclarationBefore(setter, null); declaration.SetStatic(IsStatic); return declaration; }
protected override IClassMemberDeclaration CreateMemberDeclaration(CSharpElementFactory factory) { var declaration = factory.CreatePropertyDeclaration(ExpressionType, "__"); declaration.SetAccessRights(AccessRights.PUBLIC); var getter = factory.CreateAccessorDeclaration(AccessorKind.GETTER, withBody: false); var setter = factory.CreateAccessorDeclaration(AccessorKind.SETTER, withBody: false); declaration.AddAccessorDeclarationAfter(getter, null); declaration.AddAccessorDeclarationBefore(setter, null); declaration.SetStatic(IsStatic); return(declaration); }
public static IClassMemberDeclaration CreatePrivatePropertyDeclaration(this CSharpElementFactory factory, IType typeExpression, string memberName) { var declaration = factory.CreatePropertyDeclaration(typeExpression, memberName); declaration.SetAccessRights(AccessRights.PRIVATE); var getter = factory.CreateAccessorDeclaration(AccessorKind.GETTER, false); var setter = factory.CreateAccessorDeclaration(AccessorKind.SETTER, false); declaration.AddAccessorDeclarationAfter(getter, null); declaration.AddAccessorDeclarationBefore(setter, null); return(declaration); }
private void CreateStatement(CSharpElementFactory factory, ICSharpExpression expression, IPsiSourceFile sourceFile, AccessRights accessRights) { var statement = (IExpressionStatement)factory.CreateStatement("'__' = expression;"); var propertyDeclaration = factory.CreatePropertyDeclaration(Context.Type, Context.SuggestedPropertyName, IsReadOnly, accessRights); var assignment = (IAssignmentExpression)statement.Expression; assignment.SetSource(expression); var psiServices = expression.GetPsiServices(); var suggestionManager = psiServices.Naming.Suggestion; var classDeclaration = Context.ParameterDeclaration.GetContainingNode <IClassDeclaration>().NotNull(); var suggestion = suggestionManager.CreateEmptyCollection( PluralityKinds.Unknown, expression.Language, true, sourceFile); suggestion.Add(expression, new EntryOptions { SubrootPolicy = SubrootPolicy.Decompose, PredefinedPrefixPolicy = PredefinedPrefixPolicy.Remove }); suggestion.Prepare(propertyDeclaration.DeclaredElement, new SuggestionOptions { UniqueNameContext = (ITreeNode)classDeclaration.Body ?? classDeclaration }); propertyDeclaration.SetName(suggestion.FirstName()); var memberAnchor = GetAnchorMember(classDeclaration.MemberDeclarations.ToList()); classDeclaration.AddClassMemberDeclarationAfter(propertyDeclaration, (IClassMemberDeclaration)memberAnchor); var languageHelper = LanguageManager.Instance.TryGetService <IIntroducePropertyFromParameterLanguageHelper>( Context.Parameter.PresentationLanguage); if (languageHelper == null) { return; } var anchorInitializationAnchorMember = GetAnchorInitializationAnchorMember(Context.ConstructorDeclaration); languageHelper.AddAssignmentToBody(Context.ConstructorDeclaration, anchorInitializationAnchorMember, false, Context.Parameter, propertyDeclaration.DeclaredElement); }