コード例 #1
0
            protected override Action <ITextControl> ExecutePsiTransaction(ISolution solution, IProgressIndicator progress)
            {
                if (myIsSerialized)
                {
                    AttributeUtil.RemoveAttributeFromAllDeclarations(myFieldDeclaration, KnownTypes.SerializeField);
                    if (myFieldDeclaration.GetAccessRights() == AccessRights.PUBLIC)
                    {
                        AttributeUtil.AddAttributeToEntireDeclaration(myMultipleFieldDeclaration,
                                                                      PredefinedType.NONSERIALIZED_ATTRIBUTE_CLASS, EmptyArray <AttributeValue> .Instance, myModule,
                                                                      myElementFactory);
                    }
                }
                else
                {
                    if (myFieldDeclaration.IsStatic)
                    {
                        ModifiersUtil.SetStatic(myMultipleFieldDeclaration, false);
                    }
                    if (myFieldDeclaration.IsReadonly)
                    {
                        ModifiersUtil.SetReadonly(myMultipleFieldDeclaration, false);
                    }

                    AttributeUtil.RemoveAttributeFromAllDeclarations(myFieldDeclaration,
                                                                     PredefinedType.NONSERIALIZED_ATTRIBUTE_CLASS);
                    if (myFieldDeclaration.GetAccessRights() != AccessRights.PUBLIC)
                    {
                        AttributeUtil.AddAttributeToEntireDeclaration(myMultipleFieldDeclaration,
                                                                      KnownTypes.SerializeField, EmptyArray <AttributeValue> .Instance, myModule, myElementFactory);
                    }
                }

                return(null);
            }
コード例 #2
0
            protected override Action <ITextControl> ExecutePsiTransaction(
                ISolution solution, IProgressIndicator progress)
            {
                IAttribute attribute;

                if (mySelectedFieldDeclaration == null)
                {
                    attribute = AttributeUtil.AddAttributeToEntireDeclaration(myMultipleFieldDeclaration,
                                                                              myAttributeTypeName, myAttributeValues, null, myModule, myElementFactory);
                }
                else
                {
                    attribute = AttributeUtil.AddAttributeToSingleDeclaration(mySelectedFieldDeclaration,
                                                                              myAttributeTypeName, myAttributeValues, null, myModule, myElementFactory);
                }

                if (myAttributeValues.Length == 0)
                {
                    return(null);
                }

                return(attribute.CreateHotspotSession());
            }