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); }
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"; } } }
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)); }