Example #1
0
        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);
        }
Example #3
0
        internal static DocumentedElement LoadFromSyntaxNode(PropertyDeclarationSyntax node)
        {
            SyntaxToken syntaxToken = node.ChildTokens().First(token => token.IsKind(SyntaxKind.IdentifierToken));

            return(DocumentedElement.LoadFromSyntaxTokenAndTrivia(syntaxToken, node.GetLeadingTrivia()));
        }