diff --git a/src/Features/CSharp/Portable/SplitIntoNestedIfStatements/CSharpSplitIntoNestedIfStatementsCodeRefactoringProvider.cs b/src/Features/CSharp/Portable/SplitIntoNestedIfStatements/CSharpSplitIntoNestedIfStatementsCodeRefactoringProvider.cs index de1e7effd754860afdf7f03bfb87c8685f82fdc1..adc7d4299469cadf8b0bbee8fea8f0be6c9233ed 100644 --- a/src/Features/CSharp/Portable/SplitIntoNestedIfStatements/CSharpSplitIntoNestedIfStatementsCodeRefactoringProvider.cs +++ b/src/Features/CSharp/Portable/SplitIntoNestedIfStatements/CSharpSplitIntoNestedIfStatementsCodeRefactoringProvider.cs @@ -12,6 +12,8 @@ namespace Microsoft.CodeAnalysis.CSharp.SplitIntoNestedIfStatements internal sealed class CSharpSplitIntoNestedIfStatementsCodeRefactoringProvider : AbstractSplitIntoNestedIfStatementsCodeRefactoringProvider { + protected override string IfKeywordText => SyntaxFacts.GetText(SyntaxKind.IfKeyword); + protected override int LogicalAndSyntaxKind => (int)SyntaxKind.LogicalAndExpression; protected override bool IsConditionOfIfStatement(SyntaxNode expression, out IfStatementSyntax ifStatement) diff --git a/src/Features/Core/Portable/FeaturesResources.Designer.cs b/src/Features/Core/Portable/FeaturesResources.Designer.cs index 47b7038749134066a5a7a2441915df6fd7b94266..e2d6a14262495bcceeae56fde6ce381eb315dde4 100644 --- a/src/Features/Core/Portable/FeaturesResources.Designer.cs +++ b/src/Features/Core/Portable/FeaturesResources.Designer.cs @@ -3235,6 +3235,15 @@ internal class FeaturesResources { } } + /// + /// Looks up a localized string similar to Split into nested '{0}' statements. + /// + internal static string Split_into_nested_0_statements { + get { + return ResourceManager.GetString("Split_into_nested_0_statements", resourceCulture); + } + } + /// /// Looks up a localized string similar to Structures. /// diff --git a/src/Features/Core/Portable/FeaturesResources.resx b/src/Features/Core/Portable/FeaturesResources.resx index a60f945a4868091d42fcf66ccf4ae4b8d34d93d8..f4bdee5093e7b6d170a1a42477422f3de3a27d23 100644 --- a/src/Features/Core/Portable/FeaturesResources.resx +++ b/src/Features/Core/Portable/FeaturesResources.resx @@ -1469,4 +1469,7 @@ This version used in: {2} Fix formatting + + Split into nested '{0}' statements + \ No newline at end of file diff --git a/src/Features/Core/Portable/SplitIntoNestedIfStatements/AbstractSplitIntoNestedIfStatementsCodeRefactoringProvider.cs b/src/Features/Core/Portable/SplitIntoNestedIfStatements/AbstractSplitIntoNestedIfStatementsCodeRefactoringProvider.cs index e79b60ea9cafbfd81aa8bfde6ee291739c32162c..6c3586bfba167f6086e14dba00eebfca6b29e12a 100644 --- a/src/Features/Core/Portable/SplitIntoNestedIfStatements/AbstractSplitIntoNestedIfStatementsCodeRefactoringProvider.cs +++ b/src/Features/Core/Portable/SplitIntoNestedIfStatements/AbstractSplitIntoNestedIfStatementsCodeRefactoringProvider.cs @@ -18,6 +18,8 @@ internal abstract class AbstractSplitIntoNestedIfStatementsCodeRefactoringProvid where TIfStatementSyntax : SyntaxNode where TExpressionSyntax : SyntaxNode { + protected abstract string IfKeywordText { get; } + protected abstract int LogicalAndSyntaxKind { get; } protected abstract bool IsConditionOfIfStatement(SyntaxNode expression, out TIfStatementSyntax ifStatement); @@ -39,7 +41,10 @@ public sealed override async Task ComputeRefactoringsAsync(CodeRefactoringContex if (IsPartOfBinaryExpressionChain(token, LogicalAndSyntaxKind, out var rootExpression) && IsConditionOfIfStatement(rootExpression, out _)) { - context.RegisterRefactoring(new MyCodeAction(c => FixAsync(context.Document, context.Span, c))); + context.RegisterRefactoring( + new MyCodeAction( + c => FixAsync(context.Document, context.Span, c), + IfKeywordText)); } } @@ -86,8 +91,8 @@ private static bool IsPartOfBinaryExpressionChain(SyntaxToken token, int syntaxK private sealed class MyCodeAction : CodeAction.DocumentChangeAction { - public MyCodeAction(Func> createChangedDocument) - : base("Split into nested 'if' statements", createChangedDocument) + public MyCodeAction(Func> createChangedDocument, string ifKeywordText) + : base(string.Format(FeaturesResources.Split_into_nested_0_statements, ifKeywordText), createChangedDocument) { } } diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.cs.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.cs.xlf index 870bde4de41438115bc9c8da402b325e6dd0def6..ca18803a23c1617e06380239ca81f3f44eced427 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.cs.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.cs.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.de.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.de.xlf index 06541b39777176db08ce952cf4fbccb29bed7e51..03796a2b27bb0911ae8c752ff443d0cee091a911 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.de.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.de.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.es.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.es.xlf index 6078d794ee564ca553ea1ecce8755decdff11b9e..19db20bff2fad012f151cfcbea9838a9bc0a96d0 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.es.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.es.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.fr.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.fr.xlf index f1b541d1d8080c8f81e5b414f3bc8b75659330f2..4b184e9c28bc923b9aa4e06b5005c692a23b7816 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.fr.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.fr.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.it.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.it.xlf index 00ff1bb35d66364f01c7844068c6a690e4bde60e..59ff49ee6cc312c78fa1c0ae70c157ba8e81ff2b 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.it.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.it.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.ja.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.ja.xlf index 25838b5cc5e4e76f3eeb00a74d3eea9bb87bafaf..17b9deb5bf691f6c9e3555e3078cb3125f7cdb31 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.ja.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.ja.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.ko.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.ko.xlf index ba8ad769359bbead659dcb8cb5725c47ce776294..53940ad5aeadff1ecfe517d5f293933968b24903 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.ko.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.ko.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.pl.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.pl.xlf index cc81112f7f47318fe86e29053939e2a62726e6e7..7105740303d320ececfa06870ecd181c3ddcea9f 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.pl.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.pl.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.pt-BR.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.pt-BR.xlf index 5161c7a57715fff722ef24ee97b7468729376b6f..f869d3502cfbc7c0f7e975056f7fb252e5581be4 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.pt-BR.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.pt-BR.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.ru.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.ru.xlf index 104022da9f7e8ca92da3200373f99f81cb55f955..01643680f7ffca8ca89381fecfc89cd139227744 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.ru.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.ru.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.tr.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.tr.xlf index 31fc884707fb9b6d2dc8fa58d2f01e28693eef02..24125afb0af1cc92015b386b6d6f554ca1e4c816 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.tr.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.tr.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.zh-Hans.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.zh-Hans.xlf index 019214762474f09ca3a2dcc8cffd13410a06e416..6e861d7fcacf6d3984157f6dd10b2a2f39e3ee4e 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.zh-Hans.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.zh-Hans.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/Core/Portable/xlf/FeaturesResources.zh-Hant.xlf b/src/Features/Core/Portable/xlf/FeaturesResources.zh-Hant.xlf index 719c80ecd40de3c2a73dfd4f4edfb78695658cd2..b96dfed7870be036a84b2106af51bb1feac79367 100644 --- a/src/Features/Core/Portable/xlf/FeaturesResources.zh-Hant.xlf +++ b/src/Features/Core/Portable/xlf/FeaturesResources.zh-Hant.xlf @@ -152,6 +152,11 @@ Replace '{0}' with '{1}' + + Split into nested '{0}' statements + Split into nested '{0}' statements + + Use block body for lambda expressions Use block body for lambda expressions diff --git a/src/Features/VisualBasic/Portable/SplitIntoNestedIfStatements/VisualbasicSplitIntoNestedIfStatementsCodeRefactoringProvider.vb b/src/Features/VisualBasic/Portable/SplitIntoNestedIfStatements/VisualbasicSplitIntoNestedIfStatementsCodeRefactoringProvider.vb index 5edcc1ade5afedaf28c29c55e208aa1593f9d3c4..e2f7046c369d48093779d3df07c6ace2cc184ba6 100644 --- a/src/Features/VisualBasic/Portable/SplitIntoNestedIfStatements/VisualbasicSplitIntoNestedIfStatementsCodeRefactoringProvider.vb +++ b/src/Features/VisualBasic/Portable/SplitIntoNestedIfStatements/VisualbasicSplitIntoNestedIfStatementsCodeRefactoringProvider.vb @@ -11,6 +11,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.SplitIntoNestedIfStatements Friend NotInheritable Class VisualBasicSplitIntoNestedIfStatementsCodeRefactoringProvider Inherits AbstractSplitIntoNestedIfStatementsCodeRefactoringProvider(Of MultiLineIfBlockSyntax, ExpressionSyntax) + Protected Overrides ReadOnly Property IfKeywordText As String = SyntaxFacts.GetText(SyntaxKind.IfKeyword) + Protected Overrides ReadOnly Property LogicalAndSyntaxKind As Integer = SyntaxKind.AndAlsoExpression Protected Overrides Function IsConditionOfIfStatement(expression As SyntaxNode, ByRef ifStatement As MultiLineIfBlockSyntax) As Boolean