Skip to content

Commit 89807b5

Browse files
committed
fixed & clarified FindAllReferencesCommand
1 parent de4fb11 commit 89807b5

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

RetailCoder.VBE/UI/Command/FindAllReferencesCommand.cs

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,17 +92,32 @@ private SearchResultsViewModel CreateViewModel(Declaration declaration)
9292
private Declaration FindTarget(object parameter)
9393
{
9494
var declaration = parameter as Declaration;
95-
if (declaration == null)
95+
if (declaration != null)
9696
{
97-
var selection = _vbe.ActiveCodePane.GetSelection();
98-
if (!selection.Equals(default(QualifiedSelection)))
99-
{
100-
declaration = _state.AllDeclarations
101-
.SingleOrDefault(item => item.QualifiedSelection.Selection.ContainsFirstCharacter(selection.Selection)
102-
|| item.References.Any(reference => reference.Selection.ContainsFirstCharacter(selection.Selection)));
103-
}
97+
return declaration;
98+
}
99+
100+
var selection = _vbe.ActiveCodePane.GetSelection();
101+
if (!selection.Equals(default(QualifiedSelection)))
102+
{
103+
declaration = _state.AllDeclarations
104+
.SingleOrDefault(item =>
105+
IsSelectedDeclaration(selection, item) ||
106+
item.References.Any(reference => IsSelectedReference(selection, reference)));
104107
}
105108
return declaration;
106109
}
110+
111+
private static bool IsSelectedDeclaration(QualifiedSelection selection, Declaration declaration)
112+
{
113+
return declaration.QualifiedSelection.QualifiedName.Equals(selection.QualifiedName)
114+
&& declaration.QualifiedSelection.Selection.ContainsFirstCharacter(selection.Selection);
115+
}
116+
117+
private static bool IsSelectedReference(QualifiedSelection selection, IdentifierReference reference)
118+
{
119+
return reference.QualifiedModuleName.Equals(selection.QualifiedName)
120+
&& reference.Selection.ContainsFirstCharacter(selection.Selection);
121+
}
107122
}
108123
}

0 commit comments

Comments
 (0)