6
6
using Rubberduck . Parsing . Rewriter ;
7
7
using Rubberduck . Parsing . Symbols ;
8
8
using Rubberduck . Parsing . VBA ;
9
+ using Rubberduck . Refactorings . ReplaceReferences ;
9
10
using Rubberduck . VBEditor . ComManagement ;
10
11
11
12
namespace Rubberduck . Refactorings . Rename
@@ -18,15 +19,18 @@ public class RenameCodeDefinedIdentifierRefactoringAction : CodeOnlyRefactoringA
18
19
private readonly IDeclarationFinderProvider _declarationFinderProvider ;
19
20
private readonly IProjectsProvider _projectsProvider ;
20
21
private readonly IDictionary < DeclarationType , Action < RenameModel , IRewriteSession > > _renameActions ;
22
+ private readonly ReplaceReferencesRefactoringAction _replaceReferencesRefactoringAction ;
21
23
22
24
public RenameCodeDefinedIdentifierRefactoringAction (
23
25
IDeclarationFinderProvider declarationFinderProvider ,
26
+ ReplaceReferencesRefactoringAction replaceReferencesRefactoringAction ,
24
27
IProjectsProvider projectsProvider ,
25
28
IRewritingManager rewritingManager )
26
29
: base ( rewritingManager )
27
30
{
28
31
_declarationFinderProvider = declarationFinderProvider ;
29
32
_projectsProvider = projectsProvider ;
33
+ _replaceReferencesRefactoringAction = replaceReferencesRefactoringAction ;
30
34
31
35
_renameActions = new Dictionary < DeclarationType , Action < RenameModel , IRewriteSession > >
32
36
{
@@ -172,21 +176,17 @@ private void RenameStandardElements(Declaration target, string newName, IRewrite
172
176
173
177
private void RenameReferences ( Declaration target , string newName , IRewriteSession rewriteSession )
174
178
{
175
- var modules = target . References
176
- . Where ( reference =>
177
- reference . Context . GetText ( ) != "Me"
178
- && ! reference . IsArrayAccess
179
- && ! reference . IsDefaultMemberAccess )
180
- . GroupBy ( r => r . QualifiedModuleName ) ;
179
+ var replaceReferencesModel = new ReplaceReferencesModel ( )
180
+ {
181
+ ModuleQualifyExternalReferences = true
182
+ } ;
181
183
182
- foreach ( var grouping in modules )
184
+ foreach ( var reference in target . References )
183
185
{
184
- var rewriter = rewriteSession . CheckOutModuleRewriter ( grouping . Key ) ;
185
- foreach ( var reference in grouping )
186
- {
187
- rewriter . Replace ( reference . Context , newName ) ;
188
- }
186
+ replaceReferencesModel . AssignReferenceReplacementExpression ( reference , newName ) ;
189
187
}
188
+
189
+ _replaceReferencesRefactoringAction . Refactor ( replaceReferencesModel , rewriteSession ) ;
190
190
}
191
191
192
192
private void RenameDeclaration ( Declaration target , string newName , IRewriteSession rewriteSession )
0 commit comments