Skip to content

Commit

Permalink
Merge pull request rubberduck-vba#1168 from retailcoder/CodeExplorer
Browse files Browse the repository at this point in the history
Resolver performance fix
  • Loading branch information
retailcoder committed Mar 3, 2016
2 parents 640644a + d99048c commit c06ef2e
Show file tree
Hide file tree
Showing 3 changed files with 209 additions and 76 deletions.
36 changes: 22 additions & 14 deletions RetailCoder.VBE/UI/Command/FindAllReferencesCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -92,24 +92,32 @@ private SearchResultsViewModel CreateViewModel(Declaration declaration)
private Declaration FindTarget(object parameter)
{
var declaration = parameter as Declaration;
if (declaration == null)
if (declaration != null)
{
var selection = _vbe.ActiveCodePane.GetSelection();
if (!selection.Equals(default(QualifiedSelection)))
{
declaration = _state.AllUserDeclarations
.SingleOrDefault(item => item.QualifiedName.QualifiedModuleName == selection.QualifiedName
&& (item.QualifiedSelection.Selection.ContainsFirstCharacter(selection.Selection)
||
item.References.Any(reference => reference.Selection.ContainsFirstCharacter(selection.Selection))));
}
return declaration;
}

if (declaration == null)
{
return null;
}
var selection = _vbe.ActiveCodePane.GetSelection();
if (!selection.Equals(default(QualifiedSelection)))
{
declaration = _state.AllDeclarations
.SingleOrDefault(item =>
IsSelectedDeclaration(selection, item) ||
item.References.Any(reference => IsSelectedReference(selection, reference)));
}
return declaration;
}

private static bool IsSelectedDeclaration(QualifiedSelection selection, Declaration declaration)
{
return declaration.QualifiedSelection.QualifiedName.Equals(selection.QualifiedName)
&& declaration.QualifiedSelection.Selection.ContainsFirstCharacter(selection.Selection);
}

private static bool IsSelectedReference(QualifiedSelection selection, IdentifierReference reference)
{
return reference.QualifiedModuleName.Equals(selection.QualifiedName)
&& reference.Selection.ContainsFirstCharacter(selection.Selection);
}
}
}

0 comments on commit c06ef2e

Please sign in to comment.