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); }
        }
Beispiel #2
0
        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();
        }