public override SyntaxNode VisitPropertyDeclaration(PropertyDeclarationSyntax node) { var arrowExpressionClause = node.ChildNodes().SingleOrDefault(x => x.Kind() == SyntaxKind.ArrowExpressionClause) as ArrowExpressionClauseSyntax; if (arrowExpressionClause == null) { return(base.VisitPropertyDeclaration(node)); } SyntaxToken identifierToken = node.ChildTokens().SingleOrDefault(x => x.Kind() == SyntaxKind.IdentifierToken); if (identifierToken.Kind() != SyntaxKind.IdentifierToken) { return(base.VisitPropertyDeclaration(node)); } string arrowLeadingTrivia = arrowExpressionClause.GetLeadingTrivia().ToString(); string identifierTrailingTrivia = identifierToken.TrailingTrivia.ToString(); if (!ShouldFormat(arrowExpressionClause, identifierToken)) { return(base.VisitPropertyDeclaration(node)); } SyntaxNode newNode = FormatPropertyNode(node, identifierToken, arrowExpressionClause); string newNodeString = newNode.ToString(); return(base.VisitPropertyDeclaration(newNode as PropertyDeclarationSyntax)); }
public override void VisitPropertyDeclaration(PropertyDeclarationSyntax node) { var startLength = node.Span.Start; var endLength = node.Span.End; var parentNamespace = GetNamespace(DefineKinds.Property, startLength, endLength); var defineType = node.ChildNodes().FirstOrDefault().ToString(); var defineName = node.ChildTokens().FirstOrDefault(x => x.Kind() == SyntaxKind.IdentifierToken).ToString(); UserDefinitions.Add(new UserDefinition { DefineKinds = DefineKinds.Property, Namespace = parentNamespace, DefineName = defineName, DefineFullName = $"{parentNamespace}.{defineName}", ReturnType = RemoveNamespace(defineType), SourceFile = SourceFile, StartLength = startLength, EndLength = endLength, }); base.VisitPropertyDeclaration(node); }
internal static DocumentedElement LoadFromSyntaxNode(PropertyDeclarationSyntax node) { SyntaxToken syntaxToken = node.ChildTokens().First(token => token.IsKind(SyntaxKind.IdentifierToken)); return(DocumentedElement.LoadFromSyntaxTokenAndTrivia(syntaxToken, node.GetLeadingTrivia())); }