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


C# AnalysisContext.RegisterCompilationAction方法代码示例

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


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

示例1: Initialize

        public override void Initialize(AnalysisContext analysisContext)
        {
            analysisContext.EnableConcurrentExecution();
            analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);

            analysisContext.RegisterCompilationAction(AnalyzeCompilation);
        }
开发者ID:bkoelman,项目名称:roslyn-analyzers,代码行数:7,代码来源:MarkAssembliesWithComVisible.cs

示例2: Initialize

        public override void Initialize(AnalysisContext analysisContext)
        {
            analysisContext.RegisterCompilationStartAction(compilationContext =>
            {
                // The compilation start action cannot report a diagnostic,
                // so we do not report T1002 here.

                compilationContext.RegisterSymbolAction(context =>                
                {
                    // We do not report a callback here, as the analysis itself serves.
                    AnalyzeSymbol((INamedTypeSymbol)context.Symbol, context.ReportDiagnostic);
                },
                SymbolKind.NamedType);

                compilationContext.RegisterCompilationEndAction(context =>
                {
                    string targetName = Path.GetFileName(context.Compilation.References.First().Display);
                    context.ReportDiagnostic(
                        CreateDiagnostic(CallbackReportingRule, "RegisterCompilationEndAction", targetName));
                });
            });

            analysisContext.RegisterCompilationAction(context =>
            {
                string targetName = Path.GetFileName(context.Compilation.References.First().Display);
                context.ReportDiagnostic(
                    CreateDiagnostic(CallbackReportingRule, "RegisterCompilationAction", targetName));
            });
        }
开发者ID:blinds52,项目名称:binskim,代码行数:29,代码来源:TestRoslynAnalyzer.cs

示例3: Initialize

 public override void Initialize(AnalysisContext analysisContext)
 {
     analysisContext.RegisterCompilationAction(
         (context) =>
             {
                 context.ReportDiagnostic(CodeAnalysis.Diagnostic.Create(s_rule, Location.None, messageArgs: Id));
             }
         );
 }
开发者ID:Rickinio,项目名称:roslyn,代码行数:9,代码来源:SuppressMessageAttributeTests.DiagnosticAnalyzers.cs

示例4: Initialize

        /// <summary>
        /// Called once at session start to register actions in the analysis context.
        /// </summary>
        /// <param name="context">object that allows the assignment of callbacks</param>
        public override void Initialize(AnalysisContext context)
        {
#if DEBUG
            Logger.AddHooks(Logger.LogToFile([email protected]"C:\Users\Public\Documents\semdiff_logs_{Guid.NewGuid()}.txt"));
            Logger.Suppress();
#endif

            SetupLibGit2Sharp();
            context.RegisterCompilationAction(OnCompilation);
        }
开发者ID:semdiffdotnet,项目名称:semdiff,代码行数:14,代码来源:SemDiffAnalyzer.cs

示例5: Initialize

            public override void Initialize(AnalysisContext context)
            {
                context.RegisterCompilationAction(compilationContext =>
                {
                    // With location diagnostic.
                    var location = compilationContext.Compilation.SyntaxTrees.First().GetRoot().GetLocation();
                    compilationContext.ReportDiagnostic(Diagnostic.Create(Descriptor1, location, s_properties));

                    // No location diagnostic.
                    compilationContext.ReportDiagnostic(Diagnostic.Create(Descriptor2, Location.None, s_properties));
                });
            }
开发者ID:noahstein,项目名称:roslyn,代码行数:12,代码来源:CommonDiagnosticAnalyzers.cs

示例6: 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

示例7: Initialize

 public override void Initialize(AnalysisContext analysisContext)
 {
     analysisContext.RegisterCompilationAction(AnalyzeCompilation);
 }
开发者ID:Anniepoh,项目名称:roslyn-analyzers,代码行数:4,代码来源:MarkAssembliesWithAttributesDiagnosticAnalyzer.cs

示例8: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.RegisterCompilationAction(compilationContext =>
         compilationContext.ReportDiagnostic(CodeAnalysis.Diagnostic.Create(UnsupportedDescriptor, Location.None)));
 }
开发者ID:anshita-arya,项目名称:roslyn,代码行数:5,代码来源:DiagnosticAnalyzerTests.cs

示例9: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.RegisterSyntaxTreeAction(c => c.ReportDiagnostic(Diagnostic.Create(s_syntaxRule, c.Tree.GetRoot().GetLocation())));
     context.RegisterSemanticModelAction(c => c.ReportDiagnostic(Diagnostic.Create(s_semanticRule, c.SemanticModel.SyntaxTree.GetRoot().GetLocation())));
     context.RegisterCompilationAction(c => c.ReportDiagnostic(Diagnostic.Create(s_compilationRule, c.Compilation.SyntaxTrees.First().GetRoot().GetLocation())));
 }
开发者ID:XieShuquan,项目名称:roslyn,代码行数:6,代码来源:DiagnosticAnalyzerServiceTests.cs

示例10: Initialize

 public override void Initialize(AnalysisContext analysisContext)
 {
     analysisContext.RegisterCompilationAction(AnalyzeCompilation);
     analysisContext.RegisterSymbolAction(AnalyzeSymbol, SymbolKind.NamedType);
 }
开发者ID:maggiemsft,项目名称:roslyn-analyzers,代码行数:5,代码来源:IdentifiersShouldDifferByMoreThanCase.cs

示例11: InitializeProtected

 /// <summary>
 /// Called once on concrete analyzers at session start to register actions in the analysis context.
 /// </summary>
 /// <param name="context">The analysis context.</param>
 protected override void InitializeProtected(AnalysisContext context)
 {
     context.RegisterCodeBlockAction(AnalyzeCodeBlock);
     context.RegisterCompilationAction(AnalyzeCompilation);
     context.RegisterSemanticModelAction(AnalyzeSemanticModel);
     context.RegisterSyntaxTreeAction(AnalyzeSyntaxTree);
     context.RegisterSymbolAction(AnalyzeNamedTypeSymbol, SymbolKind.NamedType);
 }
开发者ID:IntegerMan,项目名称:Alfred,代码行数:12,代码来源:ManticoreAnalyzer.cs

示例12: Initialize

        public override void Initialize(AnalysisContext analysisContext)
        {
            analysisContext.RegisterSymbolAction(saContext =>
            {
                var symbol = saContext.Symbol;
                AnalyzeSymbol(saContext.ReportDiagnostic, symbol);
                switch(symbol.Kind)
                {
                    case SymbolKind.NamedType:
                        {
                            var namedType = symbol as INamedTypeSymbol;

                            AnalyzeSymbols(saContext.ReportDiagnostic, namedType.TypeParameters);

                            if (namedType.TypeKind == TypeKind.Delegate && namedType.DelegateInvokeMethod != null)
                            {
                                AnalyzeSymbols(saContext.ReportDiagnostic, namedType.DelegateInvokeMethod.Parameters);
                            }

                            return;
                        }

                    case SymbolKind.Method:
                        {
                            var methodSymbol = symbol as IMethodSymbol;
                            if (!methodSymbol.IsAccessorMethod())
                            {
                                AnalyzeSymbols(saContext.ReportDiagnostic, methodSymbol.Parameters);
                                AnalyzeSymbols(saContext.ReportDiagnostic, methodSymbol.TypeParameters);
                            }

                            return;
                        }

                    case SymbolKind.Property:
                        { 
                            var propertySymbol = symbol as IPropertySymbol;
                            AnalyzeSymbols(saContext.ReportDiagnostic, propertySymbol.Parameters);
                            return;
                        }
                }
            },
            SymbolKind.NamedType,
            SymbolKind.Method, SymbolKind.Property, SymbolKind.Field, SymbolKind.Event);

            analysisContext.RegisterCompilationAction(caContext =>
            {
                var compilation = caContext.Compilation;
                AnalyzeSymbol(caContext.ReportDiagnostic, compilation.Assembly);
            });
        }
开发者ID:Anniepoh,项目名称:roslyn-analyzers,代码行数:51,代码来源:AttributeStringLiteralsShouldParseCorrectly.cs

示例13: Initialize

        public override void Initialize(AnalysisContext analysisContext)
        {
            analysisContext.EnableConcurrentExecution();
            analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);

            analysisContext.RegisterSymbolAction(symbolAnalysisContext =>
            {
                var symbol = symbolAnalysisContext.Symbol;
                switch (symbol.Kind)
                {
                    case SymbolKind.Namespace:
                        {
                            if (ContainsUnderScore(symbol.Name))
                            {
                                symbolAnalysisContext.ReportDiagnostic(symbol.CreateDiagnostic(NamespaceRule, symbol.ToDisplayString()));
                            }

                            return;
                        }

                    case SymbolKind.NamedType:
                        {
                            var namedType = symbol as INamedTypeSymbol;
                            AnalyzeTypeParameters(symbolAnalysisContext, namedType.TypeParameters);

                            if (namedType.TypeKind == TypeKind.Delegate &&
                                namedType.DelegateInvokeMethod != null)
                            {
                                AnalyzeParameters(symbolAnalysisContext, namedType.DelegateInvokeMethod.Parameters);
                            }

                            if (!ContainsUnderScore(symbol.Name) || !symbol.IsPublic())
                            {
                                return;
                            }

                            symbolAnalysisContext.ReportDiagnostic(symbol.CreateDiagnostic(TypeRule, symbol.ToDisplayString()));
                            return;
                        }

                    case SymbolKind.Field:
                        {
                            var fieldSymbol = symbol as IFieldSymbol;
                            if (ContainsUnderScore(symbol.Name) && symbol.IsPublic() && (fieldSymbol.IsConst || (fieldSymbol.IsStatic && fieldSymbol.IsReadOnly)))
                            {
                                symbolAnalysisContext.ReportDiagnostic(symbol.CreateDiagnostic(MemberRule, symbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)));
                                return;
                            }

                            return;
                        }

                    default:
                        {
                            var methodSymbol = symbol as IMethodSymbol;
                            if (methodSymbol != null)
                            {
                                if (methodSymbol.IsOperator())
                                {
                                    // Do not flag for operators.
                                    return;
                                }

                                AnalyzeParameters(symbolAnalysisContext, methodSymbol.Parameters);
                                AnalyzeTypeParameters(symbolAnalysisContext, methodSymbol.TypeParameters);
                            }

                            var propertySymbol = symbol as IPropertySymbol;
                            if (propertySymbol != null)
                            {
                                AnalyzeParameters(symbolAnalysisContext, propertySymbol.Parameters);
                            }

                            if (!ContainsUnderScore(symbol.Name) || IsInvalidSymbol(symbol))
                            {
                                return;
                            }

                            symbolAnalysisContext.ReportDiagnostic(symbol.CreateDiagnostic(MemberRule, symbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)));
                            return;
                        }
                }
            },
            SymbolKind.Namespace, // Namespace
            SymbolKind.NamedType, //Type
            SymbolKind.Method, SymbolKind.Property, SymbolKind.Field, SymbolKind.Event // Members
            );

            analysisContext.RegisterCompilationAction(compilationAnalysisContext =>
            {
                var compilation = compilationAnalysisContext.Compilation;
                if (ContainsUnderScore(compilation.AssemblyName))
                {
                    compilationAnalysisContext.ReportDiagnostic(compilation.Assembly.CreateDiagnostic(AssemblyRule, compilation.AssemblyName));
                }
            });
        }
开发者ID:bkoelman,项目名称:roslyn-analyzers,代码行数:97,代码来源:IdentifiersShouldNotContainUnderscores.cs


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