From b785592ef1f290aa34f6c8f17e97fff6cff6c0cd Mon Sep 17 00:00:00 2001 From: Josef Pihrt Date: Sat, 2 Dec 2023 04:39:55 +0100 Subject: [PATCH] Group refactoring 'Remove members above/below' (#1308) --- ChangeLog.md | 1 + .../MemberDeclarationsRefactoring.cs | 24 ++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 271b599d5d..a0a24c5ca7 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Remove trailing dot from analyzer's title ([PR](https://github.com/dotnet/roslynator/pull/1298)) - Group code fix "Change accessibility to ..." ([PR](https://github.com/dotnet/roslynator/pull/1305)) - [CLI] Bump Roslyn to 4.8.0 ([PR](https://github.com/dotnet/roslynator/pull/1307)). +- Group refactoring "Remove members above/below'" ([PR](https://github.com/dotnet/roslynator/pull/1308)) ### Fixed diff --git a/src/Refactorings/CSharp/Refactorings/MemberDeclarationsRefactoring.cs b/src/Refactorings/CSharp/Refactorings/MemberDeclarationsRefactoring.cs index 2f7a0e96b9..c481a86d83 100644 --- a/src/Refactorings/CSharp/Refactorings/MemberDeclarationsRefactoring.cs +++ b/src/Refactorings/CSharp/Refactorings/MemberDeclarationsRefactoring.cs @@ -1,10 +1,12 @@ // Copyright (c) .NET Foundation and Contributors. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections.Generic; +using System.Collections.Immutable; using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Text; using Roslynator.CSharp.Syntax; @@ -45,17 +47,21 @@ public static void ComputeRefactoring(RefactoringContext context, MemberDeclarat if (context.IsRefactoringEnabled(RefactoringDescriptors.RemoveMemberDeclarations)) { - context.RegisterRefactoring( - "Remove members above", - ct => ReplaceMembersAsync(context.Document, info, members.Skip(index + 1), ct), - RefactoringDescriptors.RemoveMemberDeclarations, - "Above"); + ImmutableArray codeActions = ImmutableArray.Create( + CodeActionFactory.Create( + "above", + ct => ReplaceMembersAsync(context.Document, info, members.Skip(index + 1), ct), + RefactoringDescriptors.RemoveMemberDeclarations, + "Above"), + CodeActionFactory.Create( + "below", + ct => ReplaceMembersAsync(context.Document, info, members.Take(index + 1), ct), + RefactoringDescriptors.RemoveMemberDeclarations, + "Below")); context.RegisterRefactoring( - "Remove members below", - ct => ReplaceMembersAsync(context.Document, info, members.Take(index + 1), ct), - RefactoringDescriptors.RemoveMemberDeclarations, - "Below"); + "Remove members", + codeActions); } if (context.IsRefactoringEnabled(RefactoringDescriptors.SwapMemberDeclarations))