本文整理汇总了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 }
);
}
示例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);
}
示例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 }
);
}
示例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 }
);
}
示例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 }
);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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