Skip to content

Commit 68b257f

Browse files
committed
added "find al references" to code explorer context menu
1 parent d7db16f commit 68b257f

File tree

6 files changed

+57
-14
lines changed

6 files changed

+57
-14
lines changed

RetailCoder.VBE/UI/CodeExplorer/CodeExplorerDockablePresenter.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,17 @@ private void RegisterControlEvents()
4646
Control.RunInspections += ContextMenuRunInspections;
4747
Control.SelectionChanged += SelectionChanged;
4848
Control.Rename += RenameSelection;
49+
Control.FindAllReferences += FindAllReferencesForSelection;
50+
}
51+
52+
public event EventHandler<NavigateCodeEventArgs> FindAllReferences;
53+
private void FindAllReferencesForSelection(object sender, NavigateCodeEventArgs e)
54+
{
55+
var handler = FindAllReferences;
56+
if (handler != null)
57+
{
58+
handler(sender, e);
59+
}
4960
}
5061

5162
public event EventHandler<TreeNodeNavigateCodeEventArgs> Rename;

RetailCoder.VBE/UI/CodeExplorer/CodeExplorerWindow.Designer.cs

Lines changed: 19 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

RetailCoder.VBE/UI/CodeExplorer/CodeExplorerWindow.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
using System;
22
using System.Windows.Forms;
33
using Microsoft.Vbe.Interop;
4-
using Rubberduck.Parsing;
5-
using Rubberduck.Parsing.Listeners;
64
using Rubberduck.Parsing.Symbols;
75
using Rubberduck.Properties;
86

@@ -52,6 +50,21 @@ public CodeExplorerWindow()
5250

5351
RunAllTestsContextButton.Click += RunAllTestsContextButton_Click;
5452
InspectContextButton.Click += InspectContextButton_Click;
53+
FindAllReferencesContextButton.Click += FindAllReferencesContextButton_Click;
54+
}
55+
56+
public event EventHandler<NavigateCodeEventArgs> FindAllReferences;
57+
private void FindAllReferencesContextButton_Click(object sender, EventArgs e)
58+
{
59+
var handler = FindAllReferences;
60+
if (handler != null && SolutionTree.SelectedNode != null)
61+
{
62+
var target = SolutionTree.SelectedNode.Tag as Declaration;
63+
if (target != null)
64+
{
65+
handler(this, new NavigateCodeEventArgs(target));
66+
}
67+
}
5568
}
5669

5770
public event EventHandler<TreeNodeNavigateCodeEventArgs> Rename;

RetailCoder.VBE/UI/CodeExplorer/CodeExplorerWindow.resx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@
131131
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
132132
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
133133
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACa
134-
kgAAAk1TRnQBSQFMAgEBKwEAAXABAQFwAQEBEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
134+
kgAAAk1TRnQBSQFMAgEBKwEAAYABAQGAAQEBEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
135135
AwABsAMAAQEBAAEYBgABhBIAA/sD8QGJAZwBtwFVAW0BowFVAWMBmQFVAWIBmAFVAVkBiwJVAX4BVQFY
136136
AYEBVQFgAYsBVQFpAZYBVQFyAaMBiQGbAbUD8AP7AwAD/QP6JPgD+gP9A/sD8QG+AbEBpAG7AaABhgG7
137137
AaABhgG7AaABhgG7AaABhgG7AaABhgG7AaABhgG7AaABhgG7AaABhgG7AaABhgG7AaABhgG+AbEBpAPx

RetailCoder.VBE/UI/RefactorMenu.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,17 @@ private void _findAllReferencesContextMenu_Click(CommandBarButton Ctrl, ref bool
8585
return;
8686
}
8787

88+
FindAllReferences(target);
89+
}
90+
91+
public void FindAllReferences(Declaration target)
92+
{
8893
var referenceCount = target.References.Count();
8994

9095
if (referenceCount == 1)
9196
{
9297
// if there's only 1 reference, just jump to it:
9398
IdentifierReferencesListDockablePresenter.OnNavigateIdentifierReference(IDE, target.References.First());
94-
9599
}
96100
else if (referenceCount > 1)
97101
{

RetailCoder.VBE/UI/RubberduckMenu.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public RubberduckMenu(VBE vbe, AddIn addIn, IConfigurationService configService,
5252
codePresenter.RunAllTests += codePresenter_RunAllTests;
5353
codePresenter.RunInspections += codePresenter_RunInspections;
5454
codePresenter.Rename += codePresenter_Rename;
55+
codePresenter.FindAllReferences += codePresenter_FindAllReferences;
5556
_codeExplorerMenu = new CodeExplorerMenu(vbe, addIn, codeExplorer, codePresenter);
5657

5758
var todoSettings = configService.LoadConfiguration().UserSettings.ToDoListSettings;
@@ -66,6 +67,11 @@ public RubberduckMenu(VBE vbe, AddIn addIn, IConfigurationService configService,
6667
_refactorMenu = new RefactorMenu(IDE, AddIn, parser);
6768
}
6869

70+
private void codePresenter_FindAllReferences(object sender, NavigateCodeEventArgs e)
71+
{
72+
_refactorMenu.FindAllReferences(e.Declaration);
73+
}
74+
6975
private void codePresenter_Rename(object sender, TreeNodeNavigateCodeEventArgs e)
7076
{
7177
_refactorMenu.Rename(e.Node.Tag as Declaration);

0 commit comments

Comments
 (0)