public override void Run(DTE2 app) { try { var basePaths = Utils.FindSolutionDirectories(app); if (basePaths == null || basePaths.Count() == 0) { return; } var repository = new Repository(/*basePath*/); var loader = GetLoaderAgent(basePaths, repository); var filterer = new Filterer(basePaths, repository); var form = new FinderForm(GetTitle(), GetColor(), loader, filterer, defaultSearchTerm: app.GetSelectedText()); if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK) { var foundItem = form.GetSelectedItem(); FoundItemsBank.Items = filterer.FoundItems; GotoItem(app, basePaths, foundItem); } else { app.StatusBar.Text = "Ready"; } } catch (Exception e) { ErrorNotification.EmailError(e); } }
public FinderForm(string title, Color color, Loader loader, Filterer filterer, string defaultSearchTerm) { InitializeComponent(); Text = title; BackColor = color; Filterer = filterer; Filterer.ExcludedFileTypes = (Settings.Default.ExcludeResources) ? Settings.Default.ResourceFileTypes.Split(';') : null; Filterer.ItemsFound += new EventHandler <ItemsEventArgs>(Filterer_ItemsFound); Filterer.AnnouncementOfExistingItemsFinished += new EventHandler(Filterer_AnnouncementOfExistingItemsFinished); Loader = loader; Loader.RunWorkerAsync(Filterer); Loader.RunWorkerCompleted += new RunWorkerCompletedEventHandler(Loader_RunWorkerCompleted); Loader.LoadOptions(); SearchTerm = string.Empty; txtSearchBox.Text = defaultSearchTerm ?? ""; Search(); }