当前位置: 首页>>代码示例>>C#>>正文


C# SonarAnalysisContext.RegisterSyntaxNodeActionInNonGenerated方法代码示例

本文整理汇总了C#中SonarAnalysisContext.RegisterSyntaxNodeActionInNonGenerated方法的典型用法代码示例。如果您正苦于以下问题:C# SonarAnalysisContext.RegisterSyntaxNodeActionInNonGenerated方法的具体用法?C# SonarAnalysisContext.RegisterSyntaxNodeActionInNonGenerated怎么用?C# SonarAnalysisContext.RegisterSyntaxNodeActionInNonGenerated使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SonarAnalysisContext的用法示例。


在下文中一共展示了SonarAnalysisContext.RegisterSyntaxNodeActionInNonGenerated方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c =>
                {
                    var expressionStatement = (ExpressionStatementSyntax)c.Node;
                    CheckExpressionForPureMethod(c, expressionStatement.Expression);
                },
                SyntaxKind.ExpressionStatement);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c =>
                {
                    var lambda = (LambdaExpressionSyntax)c.Node;

                    var symbol = c.SemanticModel.GetSymbolInfo(lambda).Symbol as IMethodSymbol;
                    if (symbol == null ||
                        !symbol.ReturnsVoid)
                    {
                        return;
                    }

                    var expression = lambda.Body as ExpressionSyntax;
                    CheckExpressionForPureMethod(c, expression);
                },
                SyntaxKind.ParenthesizedLambdaExpression,
                SyntaxKind.SimpleLambdaExpression);
        }
开发者ID:dbolkensteyn,项目名称:sonarlint-vs,代码行数:28,代码来源:ReturnValueIgnored.cs

示例2: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c =>
                {
                    var argumentList = (AttributeArgumentListSyntax)c.Node;
                    if (!argumentList.Arguments.Any())
                    {
                        c.ReportDiagnostic(Diagnostic.Create(Rule, argumentList.GetLocation()));
                    }
                },
                SyntaxKind.AttributeArgumentList);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c =>
                {
                    var objectCreation = (ObjectCreationExpressionSyntax)c.Node;
                    var argumentList = objectCreation.ArgumentList;
                    if (argumentList != null &&
                        objectCreation.Initializer != null &&
                        !argumentList.Arguments.Any())
                    {
                        c.ReportDiagnostic(Diagnostic.Create(Rule, argumentList.GetLocation()));
                    }
                },
                SyntaxKind.ObjectCreationExpression);
        }
开发者ID:dbolkensteyn,项目名称:sonarlint-vs,代码行数:27,代码来源:RedundantParentheses.cs

示例3: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckForCandidatePartialInvocation(c),
                SyntaxKind.InvocationExpression);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckForCandidatePartialDeclaration(c),
                SyntaxKind.MethodDeclaration);
        }
开发者ID:dbolkensteyn,项目名称:sonarlint-vs,代码行数:10,代码来源:PartialMethodNoImplementation.cs

示例4: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckConstructorDeclaration(c),
                SyntaxKind.ConstructorDeclaration);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckDestructorDeclaration(c),
                SyntaxKind.DestructorDeclaration);
        }
开发者ID:dbolkensteyn,项目名称:sonarlint-vs,代码行数:10,代码来源:RedundancyInConstructorDestructorDeclaration.cs

示例5: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckInterfaceVariance((InterfaceDeclarationSyntax)c.Node, c),
                SyntaxKind.InterfaceDeclaration);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckDelegateVariance((DelegateDeclarationSyntax)c.Node, c),
                SyntaxKind.DelegateDeclaration);
        }
开发者ID:dbolkensteyn,项目名称:sonarlint-vs,代码行数:10,代码来源:GenericTypeParameterInOut.cs

示例6: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckConditionalExpression(c),
                SyntaxKind.ConditionalExpression);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckIfStatement(c),
                SyntaxKind.IfStatement);
        }
开发者ID:duncanpMS,项目名称:sonarlint-vs,代码行数:10,代码来源:ConditionalSimplification.cs

示例7: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckObjectCreation(c),
                SyntaxKind.ObjectCreationExpression);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckInvocation(c),
                SyntaxKind.InvocationExpression);
        }
开发者ID:dbolkensteyn,项目名称:sonarlint-vs,代码行数:10,代码来源:InsecureHashAlgorithm.cs

示例8: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c=> CheckForNoExitMethod(c),
                SyntaxKind.MethodDeclaration);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckForNoExitProperty(c),
                SyntaxKind.PropertyDeclaration);
        }
开发者ID:duncanpMS,项目名称:sonarlint-vs,代码行数:10,代码来源:InfiniteRecursion.cs

示例9: Initialize

    protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckCastExpression(c),
                SyntaxKind.CastExpression);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckExtensionMethodInvocation(c),
                SyntaxKind.InvocationExpression);
        }
开发者ID:dbolkensteyn,项目名称:sonarlint-vs,代码行数:10,代码来源:RedundantCast.cs

示例10: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckEquality(c),
                SyntaxKind.EqualsExpression,
                SyntaxKind.NotEqualsExpression);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckLogicalExpression(c),
                SyntaxKind.LogicalAndExpression,
                SyntaxKind.LogicalOrExpression);
        }
开发者ID:duncanpMS,项目名称:sonarlint-vs,代码行数:12,代码来源:EqualityOnFloatingPoint.cs

示例11: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckField(c),
                SyntaxKind.FieldDeclaration);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckEvent(c),
                SyntaxKind.EventFieldDeclaration);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckAutoProperty(c),
                SyntaxKind.PropertyDeclaration);
        }
开发者ID:duncanpMS,项目名称:sonarlint-vs,代码行数:14,代码来源:MemberInitializedToDefault.cs

示例12: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckEnum(c),
                SyntaxKind.EnumDeclaration);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckInterface(c),
                SyntaxKind.InterfaceDeclaration);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckClass(c),
                SyntaxKind.ClassDeclaration);
        }
开发者ID:dbolkensteyn,项目名称:sonarlint-vs,代码行数:14,代码来源:RedundantInheritanceList.cs

示例13: Initialize

 protected override void Initialize(SonarAnalysisContext context)
 {
     context.RegisterSyntaxNodeActionInNonGenerated(
         c => CheckLoop(c, ((WhileStatementSyntax) c.Node).Statement),
         SyntaxKind.WhileStatement);
     context.RegisterSyntaxNodeActionInNonGenerated(
         c => CheckLoop(c, ((ForStatementSyntax) c.Node).Statement),
         SyntaxKind.ForStatement);
     context.RegisterSyntaxNodeActionInNonGenerated(
         c => CheckLoop(c, ((ForEachStatementSyntax) c.Node).Statement),
         SyntaxKind.ForEachStatement);
     context.RegisterSyntaxNodeActionInNonGenerated(
         c => CheckIf(c, (IfStatementSyntax) c.Node),
         SyntaxKind.IfStatement);
 }
开发者ID:dbolkensteyn,项目名称:sonarlint-vs,代码行数:15,代码来源:MultilineBlocksWithoutBrace.cs

示例14: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c =>
                {
                    var outerInvocation = (InvocationExpressionSyntax)c.Node;
                    if (!IsMethodOrderByExtension(outerInvocation, c.SemanticModel))
                    {
                        return;
                    }

                    var memberAccess = outerInvocation.Expression as MemberAccessExpressionSyntax;
                    if (memberAccess == null)
                    {
                        return;
                    }

                    var innerInvocation = memberAccess.Expression as InvocationExpressionSyntax;
                    if (!IsMethodOrderByExtension(innerInvocation, c.SemanticModel) &&
                        !IsMethodThenByExtension(innerInvocation, c.SemanticModel))
                    {
                        return;
                    }

                    c.ReportDiagnostic(Diagnostic.Create(Rule, memberAccess.Name.GetLocation()));
                },
                SyntaxKind.InvocationExpression);
        }
开发者ID:dbolkensteyn,项目名称:sonarlint-vs,代码行数:28,代码来源:OrderByRepeated.cs

示例15: Initialize

        protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c =>
                {
                    var methodDeclaration = (MethodDeclarationSyntax)c.Node;
                    var methodSymbol = c.SemanticModel.GetDeclaredSymbol(methodDeclaration);
                    if (methodSymbol == null ||
                        methodSymbol.ReturnsVoid)
                    {
                        return;
                    }

                    AttributeData attribute;
                    if (!TryGetOperationContract(methodSymbol, out attribute))
                    {
                        return;
                    }

                    var isOneWay = attribute.NamedArguments.FirstOrDefault(na => na.Key == "IsOneWay").Value.Value as bool?;
                    if (isOneWay.HasValue &&
                        isOneWay.Value)
                    {
                        c.ReportDiagnostic(Diagnostic.Create(Rule, methodDeclaration.ReturnType.GetLocation()));
                    }
                },
                SyntaxKind.MethodDeclaration);
        }
开发者ID:dbolkensteyn,项目名称:sonarlint-vs,代码行数:28,代码来源:WcfNonVoidOneWay.cs


注:本文中的SonarAnalysisContext.RegisterSyntaxNodeActionInNonGenerated方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。