public override SyntaxNode VisitAttribute(AttributeSyntax node) { if (node.Name is IdentifierNameSyntax newNameNode) { if (newNameNode.Identifier.ValueText.EndsWith(Attribute_Keywork)) { var orginalNodeTypeInfo = semanticModel.GetTypeInfo(node.Name); if (orginalNodeTypeInfo.Type == null) { base.VisitAttribute(node); } if (orginalNodeTypeInfo.Type.Name == newNameNode.Identifier.ValueText) { var newName = newNameNode.Identifier.ValueText.TrimEnd(Attribute_Keywork); if (isReportOnlyMode) { var lineSpan = node.GetFileLinePosSpan(); AddReport(new ChangesReport(node) { LineNumber = lineSpan.StartLinePosition.Line, Column = lineSpan.StartLinePosition.Character, Message = "Attributes should not ended with \"Attribute\"", Generator = nameof(RemoveAttributeKeywork) }); } node = node.WithName(SyntaxFactory.IdentifierName(newName)); } } } return(base.VisitAttribute(node)); }