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


C# AnalysisContext.RegisterSyntaxNodeAction方法代码示例

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


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

示例1: Initialize

        public override void Initialize(AnalysisContext context)
        {
            context.EnableConcurrentExecution();
            context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
            context.RegisterSyntaxNodeAction(
                nodeContext =>
                {
                    GetDiagnostics(nodeContext, ((InvocationExpressionSyntax)nodeContext.Node).ArgumentList?.Arguments);
                },
                new SyntaxKind[] { SyntaxKind.InvocationExpression }
            );
            context.RegisterSyntaxNodeAction(
                nodeContext =>
                {
                    GetDiagnostics(nodeContext, ((ElementAccessExpressionSyntax)nodeContext.Node).ArgumentList?.Arguments);
                },
                new SyntaxKind[] { SyntaxKind.ElementAccessExpression }
            );
            context.RegisterSyntaxNodeAction(
                nodeContext =>
                {
                    GetDiagnostics(nodeContext, ((ObjectCreationExpressionSyntax)nodeContext.Node).ArgumentList?.Arguments);
                },
                new SyntaxKind[] { SyntaxKind.ObjectCreationExpression }
            );

            context.RegisterSyntaxNodeAction(
                nodeContext =>
                {
                    GetDiagnostics(nodeContext, ((AttributeSyntax)nodeContext.Node).ArgumentList?.Arguments);
                },
                new SyntaxKind[] { SyntaxKind.Attribute }
            );
        }
开发者ID:ceddlyburge,项目名称:RefactoringEssentials,代码行数:34,代码来源:RedundantArgumentNameAnalyzer.cs

示例2: Initialize

        public override void Initialize(AnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckEquals(c),
                SyntaxKind.EqualsExpression);

            context.RegisterSyntaxNodeActionInNonGenerated(
                c => CheckLogicalAnd(c),
                SyntaxKind.LogicalAndExpression);

            context.RegisterSyntaxNodeAction(
                c => CheckNotEquals(c),
                SyntaxKind.NotEqualsExpression);

            context.RegisterSyntaxNodeAction(
                c => CheckLogicalOr(c),
                SyntaxKind.LogicalOrExpression);

            context.RegisterSyntaxNodeAction(
                c => CheckLogicalNot(c),
                SyntaxKind.LogicalNotExpression);

            context.RegisterSyntaxNodeAction(
                c => CheckConditional(c),
                SyntaxKind.ConditionalExpression);
        }
开发者ID:jakobehn,项目名称:sonarlint-vs,代码行数:26,代码来源:BooleanLiteralUnnecessary.cs

示例3: Initialize

        public override void Initialize(AnalysisContext context)
        {
            context.RegisterSyntaxNodeAction(
                nodeContext =>
                {
                    GetDiagnostics(nodeContext, ((InvocationExpressionSyntax)nodeContext.Node).ArgumentList?.Arguments);
                },
                new SyntaxKind[] { SyntaxKind.InvocationExpression }
            );
            context.RegisterSyntaxNodeAction(
                nodeContext =>
                {
                    GetDiagnostics(nodeContext, ((ElementAccessExpressionSyntax)nodeContext.Node).ArgumentList?.Arguments);
                },
                new SyntaxKind[] { SyntaxKind.ElementAccessExpression }
            );
            context.RegisterSyntaxNodeAction(
                nodeContext =>
                {
                    GetDiagnostics(nodeContext, ((ObjectCreationExpressionSyntax)nodeContext.Node).ArgumentList?.Arguments);
                },
                new SyntaxKind[] { SyntaxKind.ObjectCreationExpression }
            );

            context.RegisterSyntaxNodeAction(
                nodeContext =>
                {
                    GetDiagnostics(nodeContext, ((AttributeSyntax)nodeContext.Node).ArgumentList?.Arguments);
                },
                new SyntaxKind[] { SyntaxKind.Attribute }
            );
        }
开发者ID:RemcovandenBerg,项目名称:RefactoringEssentials,代码行数:32,代码来源:RedundantArgumentNameAnalyzer.cs

示例4: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
     context.RegisterSyntaxNodeAction(
         (nodeContext) =>
         {
             Diagnostic diagnostic;
             if (TryGetDiagnostic(nodeContext, out diagnostic))
             {
                 nodeContext.ReportDiagnostic(diagnostic);
             }
         },
         new SyntaxKind[] { SyntaxKind.LocalDeclarationStatement }
     );
     context.RegisterSyntaxNodeAction(
         (nodeContext) =>
         {
             Diagnostic diagnostic;
             if (TryGetDiagnosticFromForeach(nodeContext, out diagnostic))
             {
                 nodeContext.ReportDiagnostic(diagnostic);
             }
         },
         new SyntaxKind[] { SyntaxKind.ForEachStatement }
     );
 }
开发者ID:petterek,项目名称:RefactoringEssentials,代码行数:26,代码来源:LocalVariableHidesMemberAnalyzer.cs

示例5: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
     context.RegisterSyntaxNodeAction(
         nodeContext =>
         {
             Diagnostic diagnostic;
             if (TryGetDiagnostic(nodeContext, out diagnostic))
             {
                 nodeContext.ReportDiagnostic(diagnostic);
             }
         },
         new SyntaxKind[] {
             SyntaxKind.EqualsExpression,
             SyntaxKind.NotEqualsExpression,
             SyntaxKind.LessThanExpression,
             SyntaxKind.LessThanOrEqualExpression,
             SyntaxKind.GreaterThanExpression,
             SyntaxKind.GreaterThanOrEqualExpression
         }
     );
     context.RegisterSyntaxNodeAction(
         nodeContext =>
         {
             Diagnostic diagnostic;
             if (TryGetDiagnostic2(nodeContext, out diagnostic))
             {
                 nodeContext.ReportDiagnostic(diagnostic);
             }
         },
         new SyntaxKind[] { SyntaxKind.LogicalNotExpression }
     );
 }
开发者ID:alecor191,项目名称:RefactoringEssentials,代码行数:33,代码来源:ConditionIsAlwaysTrueOrFalseAnalyzer.cs

示例6: Initialize

        public override void Initialize(AnalysisContext context)
        {
            context.RegisterSyntaxNodeAction(syntaxContext =>
            {
                var node = (VariableDeclarationSyntax)syntaxContext.Node;
                // C# syntax doesn't allow implicitly typed variables to have multiple declarators,
                // but we need to handle error situations (incomplete or extra declarators).   
                if (node.Type != null &&
                    node.Type.IsVar &&
                    !IsTypeObvious(node) &&
                    !IsAnonymousType(node.Variables.FirstOrDefault(), syntaxContext.SemanticModel, syntaxContext.CancellationToken))
                {
                    syntaxContext.ReportDiagnostic(Diagnostic.Create(s_ruleVariableDeclaration, node.GetLocation(), node.Variables.Single().Identifier.Text));
                }
            }, SyntaxKind.VariableDeclaration);

            context.RegisterSyntaxNodeAction(syntaxContext =>
            {
                var node = (ForEachStatementSyntax)syntaxContext.Node; 
                if (node.Type != null &&
                    node.Identifier != null &&
                    node.Type.IsVar &&
                    !IsTypeObvious(node) &&
                    !IsAnonymousType(node, syntaxContext.SemanticModel, syntaxContext.CancellationToken))
                {
                    syntaxContext.ReportDiagnostic(Diagnostic.Create(s_ruleForEachStatement, node.Identifier.GetLocation(), node.Identifier.Text));
                }
            }, SyntaxKind.ForEachStatement);
        }
开发者ID:michaelcfanning,项目名称:codeformatter,代码行数:29,代码来源:ProvideExplicitVariableTypeAnalyzer.cs

示例7: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.RegisterSyntaxNodeAction(HandleMethodDeclaration, SyntaxKind.MethodDeclaration);
     context.RegisterSyntaxNodeAction(HandleOperatorDeclaration, SyntaxKind.OperatorDeclaration);
     context.RegisterSyntaxNodeAction(HandleConversionOperatorDeclaration, SyntaxKind.ConversionOperatorDeclaration);
     context.RegisterSyntaxNodeAction(HandlePropertyDeclaration, SyntaxKind.PropertyDeclaration);
     context.RegisterSyntaxNodeAction(HandleIndexerDeclaration, SyntaxKind.IndexerDeclaration);
 }
开发者ID:Killerameise,项目名称:CSharpEssentials,代码行数:8,代码来源:UseExpressionBodiedMemberAnalyzer.cs

示例8: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.RegisterSyntaxNodeAction(AnalyzeClassOrStructOrInterfaceDeclaration, SyntaxKind.ClassDeclaration, SyntaxKind.StructDeclaration, SyntaxKind.InterfaceDeclaration, SyntaxKind.EnumDeclaration);
     context.RegisterSyntaxNodeAction(AnalyzeFieldOrEvent, SyntaxKind.FieldDeclaration, SyntaxKind.EventFieldDeclaration);
     context.RegisterSyntaxNodeAction(AnalyzeMethodOrConstructor, SyntaxKind.MethodDeclaration, SyntaxKind.ConstructorDeclaration);
     context.RegisterSyntaxNodeAction(AnalyzeProperty, SyntaxKind.PropertyDeclaration);
     context.RegisterSyntaxNodeAction(AnalyzeDelegate, SyntaxKind.DelegateDeclaration);
 }
开发者ID:cincuranet,项目名称:ExplicitDefaultAccessModifiersAnalyzer,代码行数:8,代码来源:DiagnosticAnalyzer.cs

示例9: Initialize

        /// <inheritdoc/>
        public override void Initialize(AnalysisContext context)
        {
            context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
            context.EnableConcurrentExecution();

            context.RegisterSyntaxNodeAction(BaseTypeLikeDeclarationAction, HandledTypeLikeDeclarationKinds);
            context.RegisterSyntaxNodeAction(MemberDeclarationAction, MemberDeclarationKinds);
        }
开发者ID:EdwinEngelen,项目名称:StyleCopAnalyzers,代码行数:9,代码来源:SA1648InheritDocMustBeUsedWithInheritingClass.cs

示例10: Initialize

        /// <inheritdoc/>
        public override void Initialize(AnalysisContext context)
        {
            context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
            context.EnableConcurrentExecution();

            context.RegisterSyntaxNodeAction(this.typeDeclarationAction, SyntaxKinds.TypeDeclaration);
            context.RegisterSyntaxNodeAction(this.methodDeclarationAction, SyntaxKind.MethodDeclaration);
        }
开发者ID:EdwinEngelen,项目名称:StyleCopAnalyzers,代码行数:9,代码来源:PartialElementDocumentationSummaryBase.cs

示例11: Initialize

        public override void Initialize(AnalysisContext context)
        {
            // Need to analyze methods, anonymous delegates and lambda-expressions
            context.RegisterSyntaxNodeAction(AnalyzeMethodBody, SyntaxKind.MethodDeclaration);

            context.RegisterSyntaxNodeAction(AnalyzeLambdaExpression, SyntaxKind.ParenthesizedLambdaExpression);
            context.RegisterSyntaxNodeAction(AnalyzeLambdaExpression, SyntaxKind.AnonymousMethodExpression);
        }
开发者ID:SergeyTeplyakov,项目名称:ErrorProne.NET,代码行数:8,代码来源:RedundantAwaitAnalyzer.cs

示例12: Initialize

        /// <inheritdoc/>
        public override void Initialize(AnalysisContext context)
        {
            context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
            context.EnableConcurrentExecution();

            context.RegisterSyntaxNodeAction(MemberAccessExpressionAction, SyntaxKind.SimpleMemberAccessExpression);
            context.RegisterSyntaxNodeAction(SimpleNameAction, SyntaxKinds.SimpleName);
        }
开发者ID:EdwinEngelen,项目名称:StyleCopAnalyzers,代码行数:9,代码来源:SA1101PrefixLocalCallsWithThis.cs

示例13: Initialize

        /// <inheritdoc/>
        public override void Initialize(AnalysisContext context)
        {
            context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
            context.EnableConcurrentExecution();

            context.RegisterSyntaxNodeAction(CompilationUnitAction, SyntaxKind.CompilationUnit);
            context.RegisterSyntaxNodeAction(NamespaceDeclarationAction, SyntaxKind.NamespaceDeclaration);
        }
开发者ID:EdwinEngelen,项目名称:StyleCopAnalyzers,代码行数:9,代码来源:SA1217UsingStaticDirectivesMustBeOrderedAlphabetically.cs

示例14: Initialize

        /// <inheritdoc/>
        public override void Initialize(AnalysisContext context)
        {
            context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
            context.EnableConcurrentExecution();

            context.RegisterSyntaxNodeAction(XmlElementAction, SyntaxKind.XmlElement);
            context.RegisterSyntaxNodeAction(XmlEmptyElementAction, SyntaxKind.XmlEmptyElement);
        }
开发者ID:Romanx,项目名称:StyleCopAnalyzers,代码行数:9,代码来源:SA1613ElementParameterDocumentationMustDeclareParameterName.cs

示例15: Initialize

        /// <inheritdoc/>
        public override void Initialize(AnalysisContext context)
        {
            context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
            context.EnableConcurrentExecution();

            context.RegisterSyntaxNodeAction(ElseStatementAction, SyntaxKind.ElseClause);
            context.RegisterSyntaxNodeAction(CatchClauseAction, SyntaxKind.CatchClause);
            context.RegisterSyntaxNodeAction(FinallyClauseAction, SyntaxKind.FinallyClause);
        }
开发者ID:EdwinEngelen,项目名称:StyleCopAnalyzers,代码行数:10,代码来源:SA1510ChainedStatementBlocksMustNotBePrecededByBlankLine.cs


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