private void CombineGetSetAccess(ClassDeclaration classNode)
        {
            List <Node> removedNodes = new List <Node>();

            for (int i = 0; i < classNode.Members.Count; i++)
            {
                if (classNode.Members[i].Kind != NodeKind.GetAccessor)
                {
                    continue;
                }

                GetAccessor getAccessor = classNode.Members[i] as GetAccessor;
                SetAccessor setAccessor = classNode.Members.Find(c =>
                                                                 (c.Kind == NodeKind.SetAccessor) &&
                                                                 ((c as SetAccessor).Name.Text == getAccessor.Name.Text)) as SetAccessor;

                if (setAccessor != null)
                {
                    removedNodes.Add(getAccessor);
                    removedNodes.Add(setAccessor);

                    Node getSestAccessor = NodeHelper.CreateNode(NodeKind.GetSetAccessor);
                    getSestAccessor.Parent = classNode;
                    getSestAccessor.AddChild(getAccessor.TsNode);
                    getSestAccessor.AddChild(setAccessor.TsNode);
                    classNode.InsertMember(i++, getSestAccessor);
                }
            }

            classNode.RemoveAllMembers(m => removedNodes.IndexOf(m) >= 0);
        }
Example #2
0
 public DelegatedEncodingMember(
     string name,
     GetAccessor <TInstance, TMember> getAccessor,
     SetAccessor <TInstance, TMember> setAccessor)
 {
     this.name        = name;
     this.getAccessor = getAccessor;
     this.setAccessor = setAccessor;
 }
        private void RenameParameterName(SetAccessor setAccessor)
        {
            string paramName = setAccessor.Parameters[0].Name.Text;

            if (paramName != "value")
            {
                List <Node> referencedNode = setAccessor.Body.Descendants(n => n.Kind == NodeKind.Identifier && n.Text == paramName);
                foreach (Node node in referencedNode)
                {
                    node.Text = "value";
                }
            }
        }
Example #4
0
        public CSharpSyntaxNode Convert(SetAccessor node)
        {
            PropertyDeclarationSyntax csProperty = SyntaxFactory
                                                   .PropertyDeclaration(node.Parameters[0].Type.ToCsNode <TypeSyntax>(), node.Name.Text)
                                                   .AddModifiers(node.Modifiers.ToCsNodes <SyntaxToken>());

            if (node.JsDoc.Count > 0)
            {
                csProperty = csProperty.WithLeadingTrivia(SyntaxFactory.Trivia(node.JsDoc[0].ToCsNode <DocumentationCommentTriviaSyntax>()));
            }

            AccessorDeclarationSyntax csSetAccess = SyntaxFactory.AccessorDeclaration(SyntaxKind.SetAccessorDeclaration);

            if (node.Body != null)
            {
                csSetAccess = csSetAccess.WithBody(node.Body.ToCsNode <BlockSyntax>());
            }

            return(csProperty.AddAccessorListAccessors(csSetAccess));
        }