66using Rubberduck . Parsing . Rewriter ;
77using Rubberduck . Parsing . Symbols ;
88using Rubberduck . Parsing . VBA ;
9+ using Rubberduck . Refactorings . ReplaceReferences ;
910using Rubberduck . VBEditor . ComManagement ;
1011
1112namespace Rubberduck . Refactorings . Rename
@@ -18,15 +19,18 @@ public class RenameCodeDefinedIdentifierRefactoringAction : CodeOnlyRefactoringA
1819 private readonly IDeclarationFinderProvider _declarationFinderProvider ;
1920 private readonly IProjectsProvider _projectsProvider ;
2021 private readonly IDictionary < DeclarationType , Action < RenameModel , IRewriteSession > > _renameActions ;
22+ private readonly ReplaceReferencesRefactoringAction _replaceReferencesRefactoringAction ;
2123
2224 public RenameCodeDefinedIdentifierRefactoringAction (
2325 IDeclarationFinderProvider declarationFinderProvider ,
26+ ReplaceReferencesRefactoringAction replaceReferencesRefactoringAction ,
2427 IProjectsProvider projectsProvider ,
2528 IRewritingManager rewritingManager )
2629 : base ( rewritingManager )
2730 {
2831 _declarationFinderProvider = declarationFinderProvider ;
2932 _projectsProvider = projectsProvider ;
33+ _replaceReferencesRefactoringAction = replaceReferencesRefactoringAction ;
3034
3135 _renameActions = new Dictionary < DeclarationType , Action < RenameModel , IRewriteSession > >
3236 {
@@ -172,21 +176,17 @@ private void RenameStandardElements(Declaration target, string newName, IRewrite
172176
173177 private void RenameReferences ( Declaration target , string newName , IRewriteSession rewriteSession )
174178 {
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+ } ;
181183
182- foreach ( var grouping in modules )
184+ foreach ( var reference in target . References )
183185 {
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 ) ;
189187 }
188+
189+ _replaceReferencesRefactoringAction . Refactor ( replaceReferencesModel , rewriteSession ) ;
190190 }
191191
192192 private void RenameDeclaration ( Declaration target , string newName , IRewriteSession rewriteSession )
0 commit comments