public void FindAllReferences(Declaration target) { var referenceCount = target.References.Count(); if (referenceCount == 1) { // if there's only 1 reference, just jump to it: IdentifierReferencesListDockablePresenter.OnNavigateIdentifierReference(IDE, target.References.First()); } else if (referenceCount > 1) { // if there's more than one reference, show the dockable reference navigation window: try { ShowReferencesToolwindow(target); } catch (COMException) { // the exception is related to the docked control host instance, // trying again will work (I know, that's bad bad bad code) ShowReferencesToolwindow(target); } } else { var message = string.Format(RubberduckUI.AllReferences_NoneFound, target.IdentifierName); var caption = string.Format(RubberduckUI.AllReferences_Caption, target.IdentifierName); MessageBox.Show(message, caption, MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void ShowReferencesToolwindow(Declaration target) { // throws a COMException if toolwindow was already closed var window = new IdentifierReferencesListControl(target); var presenter = new IdentifierReferencesListDockablePresenter(IDE, AddIn, window, target); presenter.Show(); }
public void FindAllReferences(Declaration target) { var referenceCount = target.References.Count(); if (referenceCount == 1) { // if there's only 1 reference, just jump to it: IdentifierReferencesListDockablePresenter.OnNavigateIdentifierReference(IDE, target.References.First()); } else if (referenceCount > 1) { // if there's more than one reference, show the dockable reference navigation window: try { ShowReferencesToolwindow(target); } catch (COMException) { // the exception is related to the docked control host instance, // trying again will work (I know, that's bad bad bad code) ShowReferencesToolwindow(target); } } }