@@ -14,6 +14,8 @@ namespace Flow.Launcher.Localization.Analyzers.Localize
14
14
[ ExportCodeFixProvider ( LanguageNames . CSharp , Name = nameof ( OldGetTranslateAnalyzerCodeFixProvider ) ) , Shared ]
15
15
public class OldGetTranslateAnalyzerCodeFixProvider : CodeFixProvider
16
16
{
17
+ #region CodeFixProvider
18
+
17
19
public sealed override ImmutableArray < string > FixableDiagnosticIds => ImmutableArray . Create (
18
20
AnalyzerDiagnostics . OldLocalizationApiUsed . Id
19
21
) ;
@@ -39,6 +41,10 @@ public sealed override async Task RegisterCodeFixesAsync(CodeFixContext context)
39
41
) ;
40
42
}
41
43
44
+ #endregion
45
+
46
+ #region Fix Methods
47
+
42
48
private static Document FixOldTranslation ( CodeFixContext context , SyntaxNode root , Diagnostic diagnostic )
43
49
{
44
50
var diagnosticSpan = diagnostic . Location . SourceSpan ;
@@ -63,20 +69,19 @@ private static Document FixOldTranslation(CodeFixContext context, SyntaxNode roo
63
69
return context . Document ;
64
70
}
65
71
72
+ #region Utils
66
73
67
74
private static string GetTranslationKey ( ExpressionSyntax syntax )
68
75
{
69
- if (
70
- syntax is LiteralExpressionSyntax literalExpressionSyntax &&
71
- literalExpressionSyntax . Token . Value is string translationKey
72
- )
76
+ if ( syntax is LiteralExpressionSyntax literalExpressionSyntax &&
77
+ literalExpressionSyntax . Token . Value is string translationKey )
73
78
return translationKey ;
74
79
return null ;
75
80
}
76
81
77
82
private static Document FixOldTranslationWithoutStringFormat (
78
- CodeFixContext context , string translationKey , SyntaxNode root , InvocationExpressionSyntax invocationExpr
79
- ) {
83
+ CodeFixContext context , string translationKey , SyntaxNode root , InvocationExpressionSyntax invocationExpr )
84
+ {
80
85
var newInvocationExpr = SyntaxFactory . ParseExpression (
81
86
$ "{ Constants . ClassName } .{ translationKey } ()"
82
87
) ;
@@ -88,10 +93,8 @@ private static Document FixOldTranslationWithoutStringFormat(
88
93
89
94
private static string GetTranslationKeyFromInnerInvocation ( ExpressionSyntax syntax )
90
95
{
91
- if (
92
- syntax is InvocationExpressionSyntax invocationExpressionSyntax &&
93
- invocationExpressionSyntax . ArgumentList . Arguments . Count is 1
94
- )
96
+ if ( syntax is InvocationExpressionSyntax invocationExpressionSyntax &&
97
+ invocationExpressionSyntax . ArgumentList . Arguments . Count is 1 )
95
98
{
96
99
var firstArgument = invocationExpressionSyntax . ArgumentList . Arguments . First ( ) . Expression ;
97
100
return GetTranslationKey ( firstArgument ) ;
@@ -104,13 +107,17 @@ private static Document FixOldTranslationWithStringFormat(
104
107
SeparatedSyntaxList < ArgumentSyntax > argumentList ,
105
108
string translationKey2 ,
106
109
SyntaxNode root ,
107
- InvocationExpressionSyntax invocationExpr
108
- ) {
110
+ InvocationExpressionSyntax invocationExpr )
111
+ {
109
112
var newArguments = string . Join ( ", " , argumentList . Skip ( 1 ) . Select ( a => a . Expression ) ) ;
110
113
var newInnerInvocationExpr = SyntaxFactory . ParseExpression ( $ "{ Constants . ClassName } .{ translationKey2 } ({ newArguments } )") ;
111
114
112
115
var newRoot = root . ReplaceNode ( invocationExpr , newInnerInvocationExpr ) ;
113
116
return context . Document . WithSyntaxRoot ( newRoot ) ;
114
117
}
118
+
119
+ #endregion
120
+
121
+ #endregion
115
122
}
116
123
}
0 commit comments