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


C# AnalysisContext.RegisterSyntaxTreeAction方法代码示例

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


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

示例1: Initialize

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

            context.RegisterSyntaxTreeAction(SyntaxTreeAction);
        }
开发者ID:EdwinEngelen,项目名称:StyleCopAnalyzers,代码行数:8,代码来源:SA1021NegativeSignsMustBeSpacedCorrectly.cs

示例2: Initialize

 public override void Initialize(AnalysisContext context)
 {
     /*
     // this doesn't work, read https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/285
     // SyntaxKind.WhitespaceTrivia is not SyntaxNode, it's SyntaxTrivia.
     context.RegisterSyntaxNodeAction(AnalyzeSyntaxNode, SyntaxKind.WhitespaceTrivia);
     */
     context.RegisterSyntaxTreeAction(AnalyzeSyntaxTree);
 }
开发者ID:RickyLin,项目名称:CodingConventionsCop,代码行数:9,代码来源:IndentWithFourSpacesAnalyzer.cs

示例3: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.RegisterSyntaxTreeAction(
         c => {
             foreach (var asyncOrAwaitToken in GetAsyncOrAwaitTokens(c.Tree.GetRoot())
                 .Where(token => !token.Parent.AncestorsAndSelf().OfType<IdentifierNameSyntax>().Any()))
             {
                 c.ReportDiagnostic(Diagnostic.Create(Rule, asyncOrAwaitToken.GetLocation(), asyncOrAwaitToken.ToString()));
             }
         });
 }
开发者ID:shrknt35,项目名称:sonarlint-vs,代码行数:11,代码来源:AsyncAwaitIdentifier.cs

示例4: Initialize

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

            // handle everything except nameof
            context.RegisterSyntaxTreeAction(SyntaxTreeAction);

            // handle nameof (which appears as an invocation expression??)
            context.RegisterSyntaxNodeAction(InvocationExpressionAction, SyntaxKind.InvocationExpression);
        }
开发者ID:EdwinEngelen,项目名称:StyleCopAnalyzers,代码行数:12,代码来源:SA1000KeywordsMustBeSpacedCorrectly.cs

示例5: Initialize

 public override void Initialize(AnalysisContext c)
 {
     c.RegisterCodeBlockAction(b => ThrowIfMatch(nameof(c.RegisterCodeBlockAction), new AnalysisContextInfo(b.SemanticModel.Compilation, b.OwningSymbol, b.CodeBlock)));
     c.RegisterCodeBlockStartAction<SyntaxKind>(b => ThrowIfMatch(nameof(c.RegisterCodeBlockStartAction), new AnalysisContextInfo(b.SemanticModel.Compilation, b.OwningSymbol, b.CodeBlock)));
     c.RegisterCompilationAction(b => ThrowIfMatch(nameof(c.RegisterCompilationAction), new AnalysisContextInfo(b.Compilation)));
     c.RegisterCompilationStartAction(b => ThrowIfMatch(nameof(c.RegisterCompilationStartAction), new AnalysisContextInfo(b.Compilation)));
     c.RegisterOperationAction(b => ThrowIfMatch(nameof(c.RegisterOperationAction), new AnalysisContextInfo(b.Compilation, b.Operation)), OperationKind.ReturnStatement);
     c.RegisterOperationBlockAction(b => ThrowIfMatch(nameof(c.RegisterOperationBlockAction), new AnalysisContextInfo(b.Compilation, b.OwningSymbol)));
     c.RegisterSemanticModelAction(b => ThrowIfMatch(nameof(c.RegisterSemanticModelAction), new AnalysisContextInfo(b.SemanticModel)));
     c.RegisterSymbolAction(b => ThrowIfMatch(nameof(c.RegisterSymbolAction), new AnalysisContextInfo(b.Compilation, b.Symbol)), SymbolKind.NamedType);
     c.RegisterSyntaxNodeAction(b => ThrowIfMatch(nameof(c.RegisterSyntaxNodeAction), new AnalysisContextInfo(b.SemanticModel.Compilation, b.Node)), SyntaxKind.ReturnStatement);
     c.RegisterSyntaxTreeAction(b => ThrowIfMatch(nameof(c.RegisterSyntaxTreeAction), new AnalysisContextInfo(b.Compilation, b.Tree)));
 }
开发者ID:Rickinio,项目名称:roslyn,代码行数:13,代码来源:AnalysisContextInfoTests.cs

示例6: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.RegisterSyntaxTreeAction(
         c =>
         {
             foreach (var line in c.Tree
                 .GetText()
                 .Lines
                 .Where(line => line.Span.Length > Maximum))
             {
                 c.ReportDiagnostic(Diagnostic.Create(Rule, c.Tree.GetLocation(line.Span), Maximum, line.Span.Length));
             }
         });
 }
开发者ID:shrknt35,项目名称:sonarlint-vs,代码行数:14,代码来源:LineLength.cs

示例7: Initialize

        public override void Initialize(AnalysisContext context)
        {
            context.RegisterSyntaxTreeAction(
                c =>
                {
                    var root = c.Tree.GetRoot();
                    var lines = root.GetLocation().GetLineSpan().EndLinePosition.Line + 1;

                    if (lines > Maximum)
                    {
                        c.ReportDiagnostic(Diagnostic.Create(Rule, Location.None, Maximum, lines));
                    }
                });
        }
开发者ID:shrknt35,项目名称:sonarlint-vs,代码行数:14,代码来源:FileLines.cs

示例8: Initialize

        public override void Initialize(AnalysisContext context)
        {
            context.RegisterSyntaxTreeAction((syntaxTreeContext) =>
            {
                var filePath = syntaxTreeContext.Tree.FilePath;

                if (filePath == null)
                    return;

                var fileName = System.IO.Path.GetFileNameWithoutExtension(filePath);

                if (Char.IsLower(fileName.ToCharArray()[0]))
                    syntaxTreeContext.ReportDiagnostic(Diagnostic.Create(Rule, Location.Create(syntaxTreeContext.Tree, TextSpan.FromBounds(0, 0)), fileName));
            });
        }
开发者ID:johnkoerner,项目名称:AnalyzerSamples,代码行数:15,代码来源:FileNameMustStartWithACapitalLetter.cs

示例9: Initialize

        public override void Initialize(AnalysisContext context)
        {
            context.RegisterSyntaxTreeAction(
                c =>
                {
                    var offset = c.Tree.GetText().ToString().IndexOf('\t');
                    if (offset < 0)
                    {
                        return;
                    }

                    var location = c.Tree.GetLocation(TextSpan.FromBounds(offset, offset));
                    c.ReportDiagnostic(Diagnostic.Create(Rule, location));
                });
        }
开发者ID:shrknt35,项目名称:sonarlint-vs,代码行数:15,代码来源:TabCharacter.cs

示例10: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.RegisterSyntaxTreeAction(
         c =>
         {
             var root = c.Tree.GetRoot();
             foreach (var closeBraceToken in GetDescendantCloseBraceTokens(root)
                 .Where(closeBraceToken =>
                     !StartsLine(closeBraceToken) &&
                     !IsOnSameLineAsOpenBrace(closeBraceToken) &&
                     !IsInitializer(closeBraceToken.Parent)))
             {
                 c.ReportDiagnostic(Diagnostic.Create(Rule, closeBraceToken.GetLocation()));
             }
         });
 }
开发者ID:OsirisTerje,项目名称:sonarlint-vs,代码行数:16,代码来源:RightCurlyBraceStartsLine.cs

示例11: Initialize

 public override void Initialize(AnalysisContext analysisContext)
 {
     analysisContext.RegisterSyntaxTreeAction(
         (context) =>
             {
                 foreach (var nodeOrToken in context.Tree.GetRoot().DescendantNodesAndTokens())
                 {
                     if (nodeOrToken.IsToken && _spans.Any(s => s.OverlapsWith(nodeOrToken.FullSpan)))
                     {
                         context.ReportDiagnostic(CodeAnalysis.Diagnostic.Create(s_rule, nodeOrToken.GetLocation(), messageArgs: nodeOrToken.ToString()));
                     }
                 }
             });
 }
开发者ID:Rickinio,项目名称:roslyn,代码行数:14,代码来源:SuppressMessageAttributeTests.DiagnosticAnalyzers.cs

示例12: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.RegisterSyntaxTreeAction(c =>
     {
         c.ReportDiagnostic(Diagnostic.Create(_descriptor, c.Tree.GetLocation(TextSpan.FromBounds(0, 0))));
     });
 }
开发者ID:elemk0vv,项目名称:roslyn-1,代码行数:7,代码来源:CodeFixServiceTests.cs

示例13: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.RegisterSyntaxTreeAction(c =>
     {
         c.ReportDiagnostic(Diagnostic.Create(_rule, Location.Create(c.Tree, new Text.TextSpan(0, 1))));
     });
 }
开发者ID:nbsoftwarecsjava,项目名称:roslyn,代码行数:7,代码来源:DiagnosticsSquiggleTaggerProviderTests.cs

示例14: Initialize

        public override void Initialize(AnalysisContext context)
        {
            context.RegisterSyntaxTreeAction(
                c =>
                {
                    var root = c.Tree.GetRoot();

                    var rootExpressions =
                        root
                        .DescendantNodes(e2 => !(e2 is ExpressionSyntax))
                        .Where(
                            e =>
                                e is ExpressionSyntax &&
                                !IsCompoundExpression(e));

                    var compoundExpressionsDescendants =
                        root
                        .DescendantNodes()
                        .Where(IsCompoundExpression)
                        .SelectMany(
                            e =>
                                e
                                .DescendantNodes(
                                    e2 =>
                                        e == e2 ||
                                        !(e2 is ExpressionSyntax))
                                .Where(
                                    e2 =>
                                        e2 is ExpressionSyntax &&
                                        !IsCompoundExpression(e2)));

                    var expressionsToCheck = rootExpressions.Concat(compoundExpressionsDescendants);

                    var complexExpressions =
                        expressionsToCheck
                        .Select(
                            e =>
                            new
                            {
                                Expression = e,
                                Complexity =
                                    e
                                    .DescendantNodesAndSelf(e2 => !IsCompoundExpression(e2))
                                    .Count(
                                        e2 =>
                                            e2.IsKind(SyntaxKind.ConditionalExpression) ||
                                            e2.IsKind(SyntaxKind.LogicalAndExpression) ||
                                            e2.IsKind(SyntaxKind.LogicalOrExpression))
                            })
                        .Where(e => e.Complexity > Maximum);

                    foreach (var complexExpression in complexExpressions)
                    {
                        c.ReportDiagnostic(Diagnostic.Create(Rule, complexExpression.Expression.GetLocation(), Maximum, complexExpression.Complexity));
                    }
                });
        }
开发者ID:shrknt35,项目名称:sonarlint-vs,代码行数:57,代码来源:ExpressionComplexity.cs

示例15: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.RegisterSyntaxTreeAction(c => c.ReportDiagnostic(Diagnostic.Create(s_syntaxRule, c.Tree.GetRoot().GetLocation())));
 }
开发者ID:XieShuquan,项目名称:roslyn,代码行数:4,代码来源:DiagnosticAnalyzerServiceTests.cs


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