| File: Microsoft.NetCore.Analyzers\Resources\BasicMarkAssembliesWithNeutralResourcesLanguage.vb | Web Access |
| Project: src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers\Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers.vbproj (Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers) |
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the MIT license. See License.txt in the project root for license information. Imports Microsoft.NetCore.Analyzers.Resources Imports Microsoft.CodeAnalysis Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.VisualBasic Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Namespace Microsoft.NetCore.VisualBasic.Analyzers.Resources ''' <summary> ''' CA1824: Mark assemblies with NeutralResourcesLanguageAttribute ''' </summary> <DiagnosticAnalyzer(LanguageNames.VisualBasic)> Public NotInheritable Class BasicMarkAssembliesWithNeutralResourcesLanguageAnalyzer Inherits MarkAssembliesWithNeutralResourcesLanguageAnalyzer Protected Overrides Sub RegisterAttributeAnalyzer(context As CompilationStartAnalysisContext, shouldAnalyze As Func(Of Boolean), onResourceFound As Action(Of SyntaxNodeAnalysisContext), generatedCode As INamedTypeSymbol) context.RegisterSyntaxNodeAction( Sub(nc) If Not shouldAnalyze() Then Return End If Dim attributeSyntax = DirectCast(nc.Node, AttributeSyntax) If Not CheckBasicAttribute(attributeSyntax) Then Return End If If Not CheckResxGeneratedFile(nc.SemanticModel, attributeSyntax, attributeSyntax.ArgumentList.Arguments(0).GetExpression(), generatedCode, nc.CancellationToken) Then Return End If onResourceFound(nc) End Sub, SyntaxKind.Attribute) End Sub Private Shared Function CheckBasicAttribute(attribute As AttributeSyntax) As Boolean Return (attribute?.Name?.GetLastToken().Text.Equals(GeneratedCodeAttribute, StringComparison.Ordinal) = True AndAlso attribute.ArgumentList.Arguments.Count > 0).GetValueOrDefault() End Function End Class End Namespace