本文整理汇总了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);
}
示例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);
}
示例3: Initialize
protected override void Initialize(SonarAnalysisContext context)
{
context.RegisterSyntaxNodeActionInNonGenerated(
c => CheckForCandidatePartialInvocation(c),
SyntaxKind.InvocationExpression);
context.RegisterSyntaxNodeActionInNonGenerated(
c => CheckForCandidatePartialDeclaration(c),
SyntaxKind.MethodDeclaration);
}
示例4: Initialize
protected override void Initialize(SonarAnalysisContext context)
{
context.RegisterSyntaxNodeActionInNonGenerated(
c => CheckConstructorDeclaration(c),
SyntaxKind.ConstructorDeclaration);
context.RegisterSyntaxNodeActionInNonGenerated(
c => CheckDestructorDeclaration(c),
SyntaxKind.DestructorDeclaration);
}
示例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);
}
示例6: Initialize
protected override void Initialize(SonarAnalysisContext context)
{
context.RegisterSyntaxNodeActionInNonGenerated(
c => CheckConditionalExpression(c),
SyntaxKind.ConditionalExpression);
context.RegisterSyntaxNodeActionInNonGenerated(
c => CheckIfStatement(c),
SyntaxKind.IfStatement);
}
示例7: Initialize
protected override void Initialize(SonarAnalysisContext context)
{
context.RegisterSyntaxNodeActionInNonGenerated(
c => CheckObjectCreation(c),
SyntaxKind.ObjectCreationExpression);
context.RegisterSyntaxNodeActionInNonGenerated(
c => CheckInvocation(c),
SyntaxKind.InvocationExpression);
}
示例8: Initialize
protected override void Initialize(SonarAnalysisContext context)
{
context.RegisterSyntaxNodeActionInNonGenerated(
c=> CheckForNoExitMethod(c),
SyntaxKind.MethodDeclaration);
context.RegisterSyntaxNodeActionInNonGenerated(
c => CheckForNoExitProperty(c),
SyntaxKind.PropertyDeclaration);
}
示例9: Initialize
protected override void Initialize(SonarAnalysisContext context)
{
context.RegisterSyntaxNodeActionInNonGenerated(
c => CheckCastExpression(c),
SyntaxKind.CastExpression);
context.RegisterSyntaxNodeActionInNonGenerated(
c => CheckExtensionMethodInvocation(c),
SyntaxKind.InvocationExpression);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}