private List <MethodArgument> GetIndexerArguments(BracketedParameterListSyntax node)
        {
            var items      = new List <MethodArgument>();
            var parameters = node.ChildNodes().OfType <ParameterSyntax>();

            foreach (var parameter in parameters)
            {
                var isIn         = parameter.ChildTokens().Any(x => x.Kind() == SyntaxKind.InKeyword);
                var isOut        = parameter.ChildTokens().Any(x => x.Kind() == SyntaxKind.OutKeyword);
                var isByRef      = parameter.ChildTokens().Any(x => x.Kind() == SyntaxKind.RefKeyword);
                var isByVal      = !isByRef;
                var isOptional   = parameter.ChildNodes().Any(x => x is EqualsValueClauseSyntax);
                var isParamArray = parameter.ChildTokens().Any(x => x.Kind() == SyntaxKind.ParamsKeyword);

                var parameterName = parameter.ChildTokens().FirstOrDefault(x => x.Kind() == SyntaxKind.IdentifierToken).ToString();
                var parameterType = parameter.ChildNodes().FirstOrDefault().ToString();

                items.Add(new MethodArgument
                {
                    IsByVal      = isByVal,
                    IsByRef      = isByRef,
                    IsIn         = isIn,
                    IsOut        = isOut,
                    IsOptional   = isOptional,
                    IsParamArray = isParamArray,
                    DefineName   = parameterName,
                    DefineType   = RemoveNamespace(parameterType),
                });
            }

            return(items);
        }
Beispiel #2
0
        public static BracketedParameterListSyntax WrapParameters(BracketedParameterListSyntax parameterList, CancellationToken cancellationToken = default)
        {
            SyntaxTriviaList leadingTrivia = GetIncreasedIndentationTriviaList(parameterList, cancellationToken);

            var nodesAndTokens = new List <SyntaxNodeOrToken>();

            SeparatedSyntaxList <ParameterSyntax> .Enumerator en = parameterList.Parameters.GetEnumerator();

            SyntaxTrivia endOfLine = DetermineEndOfLine(parameterList);

            if (en.MoveNext())
            {
                nodesAndTokens.Add(en.Current.WithLeadingTrivia(leadingTrivia));

                while (en.MoveNext())
                {
                    nodesAndTokens.Add(CommaToken().WithTrailingTrivia(endOfLine));

                    nodesAndTokens.Add(en.Current.WithLeadingTrivia(leadingTrivia));
                }
            }

            return(BracketedParameterList(
                       OpenParenToken().WithTrailingTrivia(endOfLine),
                       SeparatedList <ParameterSyntax>(nodesAndTokens),
                       parameterList.CloseBracketToken));
        }
        //public override void VisitBaseExpression(BaseExpressionSyntax node)
        //{
        //    base.VisitBaseExpression(node);
        //}

        //public override void VisitBaseList(BaseListSyntax node)
        //{
        //    base.VisitBaseList(node);
        //}

        //public override void VisitBinaryExpression(BinaryExpressionSyntax node)
        //{
        //    base.VisitBinaryExpression(node);
        //}

        //public override void VisitBlock(BlockSyntax node)
        //{
        //    base.VisitBlock(node);
        //}

        //public override void VisitBracketedArgumentList(BracketedArgumentListSyntax node)
        //{
        //    base.VisitBracketedArgumentList(node);
        //}

        public override void VisitBracketedParameterList(BracketedParameterListSyntax node)
        {
            if (IsAnyNodeConst)
            {
                base.VisitBracketedParameterList(node);
            }
        }
        private static void HandleIndexerDeclaration(SyntaxNodeAnalysisContext context)
        {
            var indexerDeclaration = (IndexerDeclarationSyntax)context.Node;
            BracketedParameterListSyntax          argumentListSyntax = indexerDeclaration.ParameterList;
            SeparatedSyntaxList <ParameterSyntax> arguments          = argumentListSyntax.Parameters;

            Analyze(context, arguments);
        }
Beispiel #5
0
            public override SyntaxNode VisitIndexerDeclaration(IndexerDeclarationSyntax node)
            {
                BracketedParameterListSyntax parameterList = node.ParameterList;

                parameterList = parameterList.WithCloseBracketToken(parameterList.CloseBracketToken.WithTrailingTrivia(Space));

                return(base.VisitIndexerDeclaration(node.WithParameterList(parameterList).WithAccessorList(node.AccessorList.RemoveLineFeed())));
            }
Beispiel #6
0
 public static Doc Print(BracketedParameterListSyntax node)
 {
     return(Doc.Concat(
                Token.Print(node.OpenBracketToken),
                SeparatedSyntaxList.Print(node.Parameters, Parameter.Print, " "),
                Token.Print(node.CloseBracketToken)
                ));
 }
Beispiel #7
0
        public static Task <Document> WrapParametersAsync(
            Document document,
            BracketedParameterListSyntax parameterList,
            CancellationToken cancellationToken = default)
        {
            BracketedParameterListSyntax newNode = WrapParameters(parameterList);

            return(document.ReplaceNodeAsync(parameterList, newNode, cancellationToken));
        }
Beispiel #8
0
        public override void VisitBracketedParameterList(BracketedParameterListSyntax node)
        {
            foreach (ParameterSyntax parameter in node.Parameters)
            {
                parameter.Accept(this);
            }

            base.VisitBracketedParameterList(node);
        }
        public static string MapParameters(BracketedParameterListSyntax parameters, bool useLongNames = false, bool prettyPrint = true)
        {
            if (parameters == null)
            {
                return(string.Empty);
            }
            var paramList = (from ParameterSyntax parameter in parameters.Parameters select TypeMapper.Map(parameter.Type, useLongNames)).ToList();

            return(prettyPrint ? $"[{string.Join(", ", paramList)}]" : string.Join(string.Empty, paramList));
        }
Beispiel #10
0
        public override Evaluation VisitBracketedParameterList(BracketedParameterListSyntax node)
        {
            EvaluationList list = new EvaluationList();

            foreach (ParameterSyntax parameter in node.Parameters)
            {
                list.Add(parameter.Accept <Evaluation>(this));
            }

            return(list);
        }
Beispiel #11
0
        private void AnalyzeIndexerDeclaration(SyntaxNodeAnalysisContext context)
        {
            var indexerDeclaration = (IndexerDeclarationSyntax)context.Node;

            BracketedParameterListSyntax parameterList = indexerDeclaration.ParameterList;

            if (parameterList != null)
            {
                Analyze(context, indexerDeclaration, parameterList.Parameters);
            }
        }
Beispiel #12
0
        private static void HandleIndexerDeclaration(SyntaxNodeAnalysisContext context)
        {
            var indexerDeclaration = (IndexerDeclarationSyntax)context.Node;
            BracketedParameterListSyntax          argumentListSyntax = indexerDeclaration.ParameterList;
            SeparatedSyntaxList <ParameterSyntax> arguments          = argumentListSyntax.Parameters;

            if (arguments.Count > 1)
            {
                Analyze(context, argumentListSyntax.OpenBracketToken, arguments[0], arguments[1]);
            }
        }
 public new void AddChildren()
 {
     base.AddChildren();
     Kind                     = Node.Kind();
     _thisKeyword             = ((IndexerDeclarationSyntax)Node).ThisKeyword;
     _thisKeywordIsChanged    = false;
     _parameterList           = ((IndexerDeclarationSyntax)Node).ParameterList;
     _parameterListIsChanged  = false;
     _expressionBody          = ((IndexerDeclarationSyntax)Node).ExpressionBody;
     _expressionBodyIsChanged = false;
     _semicolonToken          = ((IndexerDeclarationSyntax)Node).SemicolonToken;
     _semicolonTokenIsChanged = false;
 }
 private Doc PrintBracketedParameterListSyntax(
     BracketedParameterListSyntax node)
 {
     return(Concat(
                this.PrintSyntaxToken(node.OpenBracketToken),
                this.PrintSeparatedSyntaxList(
                    node.Parameters,
                    this.PrintParameterSyntax,
                    " "
                    ),
                this.PrintSyntaxToken(node.CloseBracketToken)
                ));
 }
Beispiel #15
0
 public static Task <Document> FixListAsync(
     Document document,
     BracketedParameterListSyntax bracketedParameterList,
     ListFixMode fixMode = ListFixMode.Fix,
     CancellationToken cancellationToken = default)
 {
     return(FixListAsync(
                document,
                bracketedParameterList,
                bracketedParameterList.OpenBracketToken,
                bracketedParameterList.Parameters,
                fixMode,
                cancellationToken));
 }
Beispiel #16
0
        public override void VisitIndexerDeclaration(IndexerDeclarationSyntax node)
        {
            VisitAttributeLists(node.AttributeLists);

            if (!ShouldVisit)
            {
                return;
            }

            TypeSyntax type = node.Type;

            if (type != null)
            {
                VisitType(type);
            }

            if (!ShouldVisit)
            {
                return;
            }

            BracketedParameterListSyntax parameterList = node.ParameterList;

            if (node != null)
            {
                VisitBracketedParameterList(parameterList);
            }

            if (!ShouldVisit)
            {
                return;
            }

            AccessorListSyntax accessorList = node.AccessorList;

            if (accessorList != null)
            {
                VisitAccessorList(accessorList);
            }
            else
            {
                ArrowExpressionClauseSyntax expressionBody = node.ExpressionBody;

                if (expressionBody != null)
                {
                    VisitArrowExpressionClause(expressionBody);
                }
            }
        }
Beispiel #17
0
        public override void VisitBracketedParameterList(BracketedParameterListSyntax node)
        {
            if (!PreVisit(node))
            {
                return;
            }

            foreach (ParameterSyntax parameter in node.Parameters)
            {
                parameter.Accept(this);
            }

            base.VisitBracketedParameterList(node);

            PostVisit(node);
        }
 public static IndexerDeclarationSyntax IndexerDeclaration(
     SyntaxList<AttributeListSyntax> attributeLists,
     SyntaxTokenList modifiers,
     TypeSyntax type,
     ExplicitInterfaceSpecifierSyntax explicitInterfaceSpecifier,
     BracketedParameterListSyntax parameterList,
     AccessorListSyntax accessorList)
 {
     return SyntaxFactory.IndexerDeclaration(
         attributeLists: attributeLists,
         modifiers: modifiers,
         type: type,
         explicitInterfaceSpecifier: explicitInterfaceSpecifier,
         parameterList: parameterList,
         accessorList: accessorList,
         expressionBody: default(ArrowExpressionClauseSyntax));
 }
Beispiel #19
0
 public static IndexerDeclarationSyntax IndexerDeclaration(
     SyntaxList <AttributeListSyntax> attributeLists,
     SyntaxTokenList modifiers,
     TypeSyntax type,
     ExplicitInterfaceSpecifierSyntax explicitInterfaceSpecifier,
     BracketedParameterListSyntax parameterList,
     AccessorListSyntax accessorList)
 {
     return(SyntaxFactory.IndexerDeclaration(
                attributeLists: attributeLists,
                modifiers: modifiers,
                type: type,
                explicitInterfaceSpecifier: explicitInterfaceSpecifier,
                parameterList: parameterList,
                accessorList: accessorList,
                expressionBody: default(ArrowExpressionClauseSyntax)));
 }
Beispiel #20
0
 public static IndexerDeclarationSyntax Update(
     this IndexerDeclarationSyntax syntax,
     SyntaxList <AttributeListSyntax> attributeLists,
     SyntaxTokenList modifiers,
     TypeSyntax type,
     ExplicitInterfaceSpecifierSyntax explicitInterfaceSpecifier,
     SyntaxToken thisKeyword,
     BracketedParameterListSyntax parameterList,
     AccessorListSyntax accessorList)
 {
     return(syntax.Update(
                attributeLists,
                modifiers,
                type,
                explicitInterfaceSpecifier,
                thisKeyword,
                parameterList,
                accessorList,
                expressionBody: default,
Beispiel #21
0
 public static IndexerDeclarationSyntax Update(
     this IndexerDeclarationSyntax syntax,
     SyntaxList <AttributeSyntax> attributeLists,
     SyntaxTokenList modifiers,
     SyntaxToken funcKeyword,
     SyntaxToken operatorKeyword,
     ExplicitInterfaceSpecifierSyntax explicitInterfaceSpecifier,
     SyntaxToken minusGreaterThanOrEqualToken,
     TypeSyntax type,
     BracketedParameterListSyntax parameterList,
     AccessorListSyntax accessorList)
 {
     return(syntax.Update(
                attributeLists,
                modifiers,
                funcKeyword,
                operatorKeyword,
                explicitInterfaceSpecifier,
                parameterList,
                minusGreaterThanOrEqualToken,
                type,
Beispiel #22
0
 public static IndexerDeclarationSyntax IndexerDeclaration(
     SyntaxList <AttributeListSyntax> attributeLists,
     SyntaxTokenList modifiers,
     TypeSyntax type,
     ExplicitInterfaceSpecifierSyntax explicitInterfaceSpecifier,
     SyntaxToken thisKeyword,
     BracketedParameterListSyntax parameterList,
     AccessorListSyntax accessorList,
     ArrowExpressionClauseSyntax expressionBody,
     SyntaxToken semicolonToken)
 {
     return(SyntaxFactory.IndexerDeclaration(
                attributeLists: attributeLists,
                modifiers: modifiers,
                refKeyword: default(SyntaxToken),
                type: type,
                explicitInterfaceSpecifier: explicitInterfaceSpecifier,
                thisKeyword: thisKeyword,
                parameterList: parameterList,
                accessorList: accessorList,
                expressionBody: expressionBody,
                semicolonToken: semicolonToken));
 }
 public static IndexerDeclarationSyntax IndexerDeclaration(
     SyntaxList<AttributeListSyntax> attributeLists, 
     SyntaxTokenList modifiers, 
     TypeSyntax type, 
     ExplicitInterfaceSpecifierSyntax explicitInterfaceSpecifier,
     SyntaxToken thisKeyword, 
     BracketedParameterListSyntax parameterList, 
     AccessorListSyntax accessorList, 
     ArrowExpressionClauseSyntax expressionBody, 
     SyntaxToken semicolonToken)
 {
     return SyntaxFactory.IndexerDeclaration(
         attributeLists: attributeLists,
         modifiers: modifiers,
         refKeyword: default(SyntaxToken),
         type: type,
         explicitInterfaceSpecifier: explicitInterfaceSpecifier,
         thisKeyword: thisKeyword,
         parameterList: parameterList,
         accessorList: accessorList,
         expressionBody: expressionBody,
         semicolonToken: semicolonToken);
 }
Beispiel #24
0
        private static void AnalyzeBracketParametersList(SyntaxNodeAnalysisContext context, BracketedParameterListSyntax parameterListSyntax)
        {
            var openBracketToken = parameterListSyntax.OpenBracketToken;

            if (openBracketToken.IsMissing ||
                parameterListSyntax.IsMissing ||
                !parameterListSyntax.Parameters.Any())
            {
                return;
            }

            var firstParameter = parameterListSyntax.Parameters[0];

            var firstParameterLineSpan = firstParameter.GetLocation().GetLineSpan();

            if (!firstParameterLineSpan.IsValid)
            {
                return;
            }

            var openBracketLineSpan = openBracketToken.GetLocation().GetLineSpan();

            if (!openBracketLineSpan.IsValid)
            {
                return;
            }

            if (openBracketLineSpan.EndLinePosition.Line != firstParameterLineSpan.StartLinePosition.Line &&
                openBracketLineSpan.EndLinePosition.Line != (firstParameterLineSpan.StartLinePosition.Line - 1))
            {
                context.ReportDiagnostic(Diagnostic.Create(Descriptor, firstParameter.GetLocation()));
            }
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitBracketedParameterList(BracketedParameterListSyntax node)
 {
     this.OnNodeVisited(node);
     if (!this.traverseRootOnly) base.VisitBracketedParameterList(node);
 }
Beispiel #26
0
 public override UstNode VisitBracketedParameterList(BracketedParameterListSyntax node)
 {
     return(base.VisitBracketedParameterList(node));
 }
        public void VisitBracketedParameterList(BracketedParameterListSyntax node)
        {
            if (node == null)
                throw new ArgumentNullException("node");

            node.Validate();

            _writer.WriteSyntax(Syntax.OpenBracket);

            bool hadOne = false;

            foreach (var parameter in node.Parameters)
            {
                if (hadOne)
                    _writer.WriteListSeparator();
                else
                    hadOne = true;

                parameter.Accept(this);
            }

            _writer.WriteSyntax(Syntax.CloseBracket);
        }
 public TameBracketedParameterListSyntax(BracketedParameterListSyntax node)
 {
     Node = node;
     AddChildren();
 }
        public static void Analyze(SyntaxNodeAnalysisContext context, AccessorListSyntax accessorList)
        {
            SyntaxList <AccessorDeclarationSyntax> accessors = accessorList.Accessors;

            if (accessors.Any(f => f.BodyOrExpressionBody() != null))
            {
                if (accessorList.IsSingleLine(includeExteriorTrivia: false))
                {
                    ReportDiagnostic(context, accessorList);
                }
                else
                {
                    foreach (AccessorDeclarationSyntax accessor in accessors)
                    {
                        if (ShouldBeFormatted(accessor))
                        {
                            ReportDiagnostic(context, accessor);
                        }
                    }
                }
            }
            else
            {
                SyntaxNode parent = accessorList.Parent;

                switch (parent?.Kind())
                {
                case SyntaxKind.PropertyDeclaration:
                {
                    if (accessors.All(f => !f.AttributeLists.Any()) &&
                        !accessorList.IsSingleLine(includeExteriorTrivia: false))
                    {
                        var         propertyDeclaration = (PropertyDeclarationSyntax)parent;
                        SyntaxToken identifier          = propertyDeclaration.Identifier;

                        if (!identifier.IsMissing)
                        {
                            SyntaxToken closeBrace = accessorList.CloseBraceToken;

                            if (!closeBrace.IsMissing)
                            {
                                TextSpan span = TextSpan.FromBounds(identifier.Span.End, closeBrace.Span.Start);

                                if (propertyDeclaration
                                    .DescendantTrivia(span)
                                    .All(f => f.IsWhitespaceOrEndOfLineTrivia()))
                                {
                                    ReportDiagnostic(context, accessorList);
                                }
                            }
                        }
                    }

                    break;
                }

                case SyntaxKind.IndexerDeclaration:
                {
                    if (accessors.All(f => !f.AttributeLists.Any()) &&
                        !accessorList.IsSingleLine(includeExteriorTrivia: false))
                    {
                        var indexerDeclaration = (IndexerDeclarationSyntax)parent;

                        BracketedParameterListSyntax parameterList = indexerDeclaration.ParameterList;

                        if (parameterList != null)
                        {
                            SyntaxToken closeBracket = parameterList.CloseBracketToken;

                            if (!closeBracket.IsMissing)
                            {
                                SyntaxToken closeBrace = accessorList.CloseBraceToken;

                                if (!closeBrace.IsMissing)
                                {
                                    TextSpan span = TextSpan.FromBounds(closeBracket.Span.End, closeBrace.Span.Start);

                                    if (indexerDeclaration
                                        .DescendantTrivia(span)
                                        .All(f => f.IsWhitespaceOrEndOfLineTrivia()))
                                    {
                                        ReportDiagnostic(context, accessorList);
                                    }
                                }
                            }
                        }
                    }

                    break;
                }
                }
            }
        }
 public IndexerDeclarationSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxTokenList modifiers, TypeSyntax type, ExplicitInterfaceSpecifierSyntax explicitInterfaceSpecifier, SyntaxToken thisKeyword, BracketedParameterListSyntax parameterList, AccessorListSyntax accessorList, ArrowExpressionClauseSyntax expressionBody, SyntaxToken semicolonToken)
 {
     return Update(attributeLists, modifiers, this.RefKeyword, type, explicitInterfaceSpecifier, thisKeyword, parameterList, accessorList, expressionBody, semicolonToken);
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitBracketedParameterList(BracketedParameterListSyntax node)
 {
     this.OnNodeVisited(node, this.type.IsInstanceOfType(node));
     base.VisitBracketedParameterList(node);
 }
Beispiel #32
0
 public override void VisitBracketedParameterList(BracketedParameterListSyntax node)
 {
     throw new NotImplementedException();
 }
Beispiel #33
0
 public IndexerDeclarationSyntax Update(SyntaxList <AttributeListSyntax> attributeLists, SyntaxTokenList modifiers, TypeSyntax type, ExplicitInterfaceSpecifierSyntax explicitInterfaceSpecifier, SyntaxToken thisKeyword, BracketedParameterListSyntax parameterList, AccessorListSyntax accessorList, ArrowExpressionClauseSyntax expressionBody, SyntaxToken semicolonToken)
 {
     return(Update(attributeLists, modifiers, this.RefKeyword, type, explicitInterfaceSpecifier, thisKeyword, parameterList, accessorList, expressionBody, semicolonToken));
 }
Beispiel #34
0
 public static IndexerDeclarationSyntax Update(
     this IndexerDeclarationSyntax syntax,
     SyntaxList<AttributeListSyntax> attributeLists,
     SyntaxTokenList modifiers,
     TypeSyntax type,
     ExplicitInterfaceSpecifierSyntax explicitInterfaceSpecifier,
     SyntaxToken thisKeyword,
     BracketedParameterListSyntax parameterList,
     AccessorListSyntax accessorList)
 {
     return syntax.Update(
         attributeLists,
         modifiers,
         default(SyntaxToken),
         type,
         explicitInterfaceSpecifier,
         thisKeyword,
         parameterList,
         accessorList,
         default(ArrowExpressionClauseSyntax),
         default(SyntaxToken));
 }
        private static void AnalyzeBracketParametersList(SyntaxNodeAnalysisContext context, BracketedParameterListSyntax parameterListSyntax)
        {
            var openBracketToken = parameterListSyntax.OpenBracketToken;
            if (openBracketToken.IsMissing ||
                parameterListSyntax.IsMissing ||
                !parameterListSyntax.Parameters.Any())
            {
                return;
            }

            var firstParameter = parameterListSyntax.Parameters[0];

            var firstParameterLineSpan = firstParameter.GetLineSpan();
            if (!firstParameterLineSpan.IsValid)
            {
                return;
            }

            var openBracketLineSpan = openBracketToken.GetLineSpan();
            if (!openBracketLineSpan.IsValid)
            {
                return;
            }

            if (openBracketLineSpan.EndLinePosition.Line != firstParameterLineSpan.StartLinePosition.Line &&
                openBracketLineSpan.EndLinePosition.Line != (firstParameterLineSpan.StartLinePosition.Line - 1))
            {
                context.ReportDiagnostic(Diagnostic.Create(Descriptor, firstParameter.GetLocation()));
            }
        }
        private static void AnalyzeAccessorList(SyntaxNodeAnalysisContext context)
        {
            var accessorList = (AccessorListSyntax)context.Node;

            SyntaxList <AccessorDeclarationSyntax> accessors = accessorList.Accessors;

            if (accessors.Any(f => f.BodyOrExpressionBody() != null))
            {
                if (DiagnosticDescriptors.AddNewLineBeforeAccessorOfFullProperty.IsEffective(context))
                {
                    SyntaxToken token = accessorList.OpenBraceToken;

                    foreach (AccessorDeclarationSyntax accessor in accessors)
                    {
                        if (accessor.BodyOrExpressionBody() != null &&
                            accessor.SyntaxTree.IsSingleLineSpan(TextSpan.FromBounds(token.Span.End, accessor.SpanStart)))
                        {
                            DiagnosticHelpers.ReportDiagnostic(
                                context,
                                DiagnosticDescriptors.AddNewLineBeforeAccessorOfFullProperty,
                                Location.Create(accessor.SyntaxTree, new TextSpan(accessor.SpanStart, 0)));

                            break;
                        }

                        token = accessor.Body?.CloseBraceToken ?? accessor.SemicolonToken;

                        if (!token.Equals(accessor.GetLastToken()))
                        {
                            break;
                        }
                    }
                }

                if (DiagnosticDescriptors.RemoveNewLinesFromAccessorWithSingleLineExpression.IsEffective(context) &&
                    !accessorList.IsSingleLine(includeExteriorTrivia: false))
                {
                    foreach (AccessorDeclarationSyntax accessor in accessors)
                    {
                        if (CanRemoveNewLinesFromAccessor(accessor))
                        {
                            DiagnosticHelpers.ReportDiagnostic(context, DiagnosticDescriptors.RemoveNewLinesFromAccessorWithSingleLineExpression, accessor);
                        }
                    }
                }
            }
            else if (DiagnosticDescriptors.RemoveNewLinesFromAccessorListOfAutoProperty.IsEffective(context))
            {
                SyntaxNode parent = accessorList.Parent;

                switch (parent?.Kind())
                {
                case SyntaxKind.PropertyDeclaration:
                {
                    if (accessors.All(f => !f.AttributeLists.Any()) &&
                        !accessorList.IsSingleLine(includeExteriorTrivia: false))
                    {
                        var         propertyDeclaration = (PropertyDeclarationSyntax)parent;
                        SyntaxToken identifier          = propertyDeclaration.Identifier;

                        if (!identifier.IsMissing)
                        {
                            SyntaxToken closeBrace = accessorList.CloseBraceToken;

                            if (!closeBrace.IsMissing)
                            {
                                TextSpan span = TextSpan.FromBounds(identifier.Span.End, closeBrace.SpanStart);

                                if (propertyDeclaration
                                    .DescendantTrivia(span)
                                    .All(f => f.IsWhitespaceOrEndOfLineTrivia()))
                                {
                                    DiagnosticHelpers.ReportDiagnostic(context, DiagnosticDescriptors.RemoveNewLinesFromAccessorListOfAutoProperty, accessorList);
                                }
                            }
                        }
                    }

                    break;
                }

                case SyntaxKind.IndexerDeclaration:
                {
                    if (accessors.All(f => !f.AttributeLists.Any()) &&
                        !accessorList.IsSingleLine(includeExteriorTrivia: false))
                    {
                        var indexerDeclaration = (IndexerDeclarationSyntax)parent;

                        BracketedParameterListSyntax parameterList = indexerDeclaration.ParameterList;

                        if (parameterList != null)
                        {
                            SyntaxToken closeBracket = parameterList.CloseBracketToken;

                            if (!closeBracket.IsMissing)
                            {
                                SyntaxToken closeBrace = accessorList.CloseBraceToken;

                                if (!closeBrace.IsMissing)
                                {
                                    TextSpan span = TextSpan.FromBounds(closeBracket.Span.End, closeBrace.SpanStart);

                                    if (indexerDeclaration
                                        .DescendantTrivia(span)
                                        .All(f => f.IsWhitespaceOrEndOfLineTrivia()))
                                    {
                                        DiagnosticHelpers.ReportDiagnostic(context, DiagnosticDescriptors.RemoveNewLinesFromAccessorListOfAutoProperty, accessorList);
                                    }
                                }
                            }
                        }
                    }

                    break;
                }
                }
            }
        }
        public BracketedParameterListTranslation(BracketedParameterListSyntax syntax, SyntaxTranslation parent) : base(syntax, parent)
        {

        }
Beispiel #38
0
 public override void VisitBracketedParameterList(BracketedParameterListSyntax node)
 {
 }
Beispiel #39
0
 public static List <ParameterInfo> Parse(BracketedParameterListSyntax syntax) =>
 syntax?.Parameters.Select(p => new ParameterInfo(p)).ToList() ??
 new List <ParameterInfo>();