diff --git a/Flow.Launcher.Localization.Analyzers/Localize/OldGetTranslateAnalyzer.cs b/Flow.Launcher.Localization.Analyzers/Localize/OldGetTranslateAnalyzer.cs index f845b98..6828749 100644 --- a/Flow.Launcher.Localization.Analyzers/Localize/OldGetTranslateAnalyzer.cs +++ b/Flow.Launcher.Localization.Analyzers/Localize/OldGetTranslateAnalyzer.cs @@ -1,5 +1,6 @@ using System.Collections.Immutable; using System.Linq; +using Flow.Launcher.Localization.Shared; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; @@ -10,14 +11,9 @@ namespace Flow.Launcher.Localization.Analyzers.Localize [DiagnosticAnalyzer(LanguageNames.CSharp)] public class OldGetTranslateAnalyzer : DiagnosticAnalyzer { - public override ImmutableArray SupportedDiagnostics => - ImmutableArray.Create(AnalyzerDiagnostics.OldLocalizationApiUsed); - - private static readonly string[] oldLocalizationClasses = { "IPublicAPI", "Internationalization" }; - private const string OldLocalizationMethodName = "GetTranslation"; - - private const string StringFormatMethodName = "Format"; - private const string StringFormatTypeName = "string"; + public override ImmutableArray SupportedDiagnostics => ImmutableArray.Create( + AnalyzerDiagnostics.OldLocalizationApiUsed + ); public override void Initialize(AnalysisContext context) { @@ -75,20 +71,20 @@ private static bool IsFormatStringCall(SymbolInfo? symbolInfo) => symbolInfo is SymbolInfo info && IsFormatStringCall(info.Symbol as IMethodSymbol); private static bool IsFormatStringCall(IMethodSymbol methodSymbol) => - methodSymbol?.Name is StringFormatMethodName && - methodSymbol.ContainingType.ToDisplayString() is StringFormatTypeName; + methodSymbol?.Name is Constants.StringFormatMethodName && + methodSymbol.ContainingType.ToDisplayString() is Constants.StringFormatTypeName; private static InvocationExpressionSyntax GetFirstArgumentInvocationExpression(InvocationExpressionSyntax invocationExpr) => invocationExpr.ArgumentList.Arguments.FirstOrDefault()?.Expression as InvocationExpressionSyntax; private static bool IsTranslateCall(SymbolInfo symbolInfo) => symbolInfo.Symbol is IMethodSymbol innerMethodSymbol && - innerMethodSymbol.Name is OldLocalizationMethodName && - oldLocalizationClasses.Contains(innerMethodSymbol.ContainingType.Name); + innerMethodSymbol.Name is Constants.OldLocalizationMethodName && + Constants.OldLocalizationClasses.Contains(innerMethodSymbol.ContainingType.Name); private static bool IsTranslateCall(IMethodSymbol methodSymbol) => - methodSymbol?.Name is OldLocalizationMethodName && - oldLocalizationClasses.Contains(methodSymbol.ContainingType.Name); + methodSymbol?.Name is Constants.OldLocalizationMethodName && + Constants.OldLocalizationClasses.Contains(methodSymbol.ContainingType.Name); private static string GetFirstArgumentStringValue(InvocationExpressionSyntax invocationExpr) { diff --git a/Flow.Launcher.Localization.Analyzers/Localize/OldGetTranslateAnalyzerCodeFixProvider.cs b/Flow.Launcher.Localization.Analyzers/Localize/OldGetTranslateAnalyzerCodeFixProvider.cs index 47cf329..695cfe6 100644 --- a/Flow.Launcher.Localization.Analyzers/Localize/OldGetTranslateAnalyzerCodeFixProvider.cs +++ b/Flow.Launcher.Localization.Analyzers/Localize/OldGetTranslateAnalyzerCodeFixProvider.cs @@ -14,7 +14,9 @@ namespace Flow.Launcher.Localization.Analyzers.Localize [ExportCodeFixProvider(LanguageNames.CSharp, Name = nameof(OldGetTranslateAnalyzerCodeFixProvider)), Shared] public class OldGetTranslateAnalyzerCodeFixProvider : CodeFixProvider { - public sealed override ImmutableArray FixableDiagnosticIds => ImmutableArray.Create(AnalyzerDiagnostics.OldLocalizationApiUsed.Id); + public sealed override ImmutableArray FixableDiagnosticIds => ImmutableArray.Create( + AnalyzerDiagnostics.OldLocalizationApiUsed.Id + ); public sealed override FixAllProvider GetFixAllProvider() { diff --git a/Flow.Launcher.Localization.Shared/Constants.cs b/Flow.Launcher.Localization.Shared/Constants.cs index 51a4168..568da5d 100644 --- a/Flow.Launcher.Localization.Shared/Constants.cs +++ b/Flow.Launcher.Localization.Shared/Constants.cs @@ -17,7 +17,11 @@ public static class Constants public const string IndexAttribute = "index"; public const string NameAttribute = "name"; public const string TypeAttribute = "type"; + public const string OldLocalizationMethodName = "GetTranslation"; + public const string StringFormatMethodName = "Format"; + public const string StringFormatTypeName = "string"; public static readonly Regex LanguagesXamlRegex = new Regex(@"\\Languages\\[^\\]+\.xaml$", RegexOptions.IgnoreCase); + public static readonly string[] OldLocalizationClasses = { "IPublicAPI", "Internationalization" }; } }