Skip to content

Commit 7b5f67b

Browse files
committed
Works from the Code Explorer
1 parent 9ebd4f1 commit 7b5f67b

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

RetailCoder.VBE/UI/RefactorMenu.cs

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
using System;
2-
using System.Drawing;
32
using System.Linq;
43
using System.Runtime.InteropServices;
5-
using System.Threading.Tasks;
64
using System.Windows.Forms;
75
using Microsoft.Office.Core;
86
using Microsoft.Vbe.Interop;
@@ -12,9 +10,8 @@
1210
using Rubberduck.Refactoring;
1311
using Rubberduck.UI.FindSymbol;
1412
using Rubberduck.UI.IdentifierReferences;
15-
using Rubberduck.UI.Refactorings.ExtractMethod;
16-
using Rubberduck.UI.Refactorings.Rename;
1713
using Rubberduck.UI.Refactorings.RemoveParameter;
14+
using Rubberduck.UI.Refactorings.Rename;
1815
using Rubberduck.UI.Refactorings.ReorderParameters;
1916
using Rubberduck.VBEditor;
2017
using Rubberduck.VBEditor.Extensions;
@@ -230,23 +227,25 @@ private void FindAllImplementations()
230227
var progress = new ParsingProgressPresenter();
231228
var result = progress.Parse(_parser, IDE.ActiveVBProject);
232229

233-
var targets = result.Declarations.Items
234-
.Where(item => !item.IsBuiltIn
235-
&& item.ComponentName == selection.QualifiedName.ComponentName);
230+
var interfaceNames = result.Declarations.FindInterfaceMembers().Where(item => item.Project.Equals(selection.QualifiedName.Project)).Select(item => item.ComponentName).Distinct();
231+
var interfaceReferences = result.Declarations.Items.Where(item => interfaceNames.Contains(item.IdentifierName)).Select(item => item.References);
236232

237-
var interfaceImplementation = result.Declarations.FindInterfaceImplementationMembers();
238-
if (interfaceImplementation == null)
233+
foreach (var reference in interfaceReferences)
239234
{
240-
return;
235+
foreach (var item in reference)
236+
{
237+
if (item.Selection.Contains(selection.Selection))
238+
{
239+
FindAllImplementations(item.Declaration);
240+
return;
241+
}
242+
}
241243
}
242-
243-
FindAllImplementations(interfaceMember);
244244
}
245245

246246
public void FindAllImplementations(Declaration target)
247247
{
248-
var test = target.DeclarationType;
249-
var referenceCount = 0;
248+
var referenceCount = target.References.Count();
250249

251250
if (referenceCount == 1)
252251
{
@@ -387,7 +386,6 @@ public void RemoveParameter(QualifiedSelection selection)
387386
var result = progress.Parse(_parser, IDE.ActiveVBProject);
388387

389388
var presenter = new RemoveParameterPresenter(result, selection);
390-
391389
}
392390

393391
private CommandBarButton AddMenuButton(CommandBarPopup menu)

0 commit comments

Comments
 (0)