protected override bool ExecuteItem(JetPopupMenuItem item, ISignal <bool> closeBeforeExecute)
        {
            if (item.Key is GeneratorOccurrence occurance)
            {
                return(_executionHost.TryExecute(occurance.Generator));
            }

            return(false);
        }
Example #2
0
        protected override bool UpdateItems(
            string filterString, Func <IEnumerable <JetPopupMenuItem>, AddItemsBehavior, bool> itemsConsumer)
        {
            var currentFile = myCurrentFile;

            if (currentFile != null)
            {
                if (filterString.Length > 0)
                {
                    var occurences = new List <LocalOccurrence>();
                    SearchInCurrentFile(filterString, currentFile, occurences);
                    var xs = new List <JetPopupMenuItem>();

                    var presentationService = Shell.Instance.GetComponent <PsiSourceFilePresentationService>();
                    var sourceFileIcon      = presentationService.GetIconId(currentFile);
                    var displayName         = currentFile.Name;

                    foreach (var occurence in occurences)
                    {
                        var descriptor = new Foo1(occurence, displayName, sourceFileIcon);
                        var item       = new JetPopupMenuItem(occurence, descriptor);
                        xs.Add(item);
                    }

                    itemsConsumer(xs, AddItemsBehavior.Replace);

                    if (myTextControl != null)
                    {
                        UpdateLocalHighlightings(myTextControl.Document, occurences);
                    }

                    myLocal = occurences;
                }
                else
                {
                    DropHighlightings();
                }
            }


            //itemsConsumer(new JetPopupMenuItem[]
            //{
            //  new JetPopupMenuItem("aa", new SimpleMenuItem(filterString, null, () => { }))
            //
            //}, AddItemsBehavior.Replace);



            //itemsConsumer(null, AddItemsBehavior.Append);

            return(false);
        }
        protected override bool ExecuteItem(JetPopupMenuItem item, ISignal<bool> closeBeforeExecute)
        {
            closeBeforeExecute.Fire(true);
            var occurence = item.Key as ProjectItemOccurence;
            if (occurence == null || occurence.ProjectItem == null)
            {
                return false;
            }

            using (CommitCookie.Commit(Solution))
            {
                var solutionExplorer = Solution.GetComponent<ISolutionExplorer>();
                return solutionExplorer.ShowInSolutionExplorer(occurence.ProjectItem, activate: true);
            }
        }
        protected override bool UpdateItems(
            string filterString, Func <IEnumerable <JetPopupMenuItem>, AddItemsBehavior, bool> itemsConsumer)
        {
            // todo: drop highlightings when empty filter
            // todo: fill recent searches when empty
            // todo: what thread is it?

            var currentFile = myCurrentFile;

            if (currentFile != null)
            {
                if (filterString.Length > 0)
                {
                    var lazyOccurences      = SearchInCurrentFile(filterString, currentFile);
                    var presentationService = Shell.Instance.GetComponent <PsiSourceFilePresentationService>();
                    var sourceFileIcon      = presentationService.GetIconId(currentFile);
                    var displayName         = currentFile.Name;

                    IEnumerable <LocalOccurrence> tailConcurrences;
                    var occurences = lazyOccurences.TakeFirstAndTail(40, out tailConcurrences);

                    var menuItems = new List <JetPopupMenuItem>();
                    foreach (var localOccurrence in occurences)
                    {
                        var descriptor = new Foo1(localOccurrence, displayName, sourceFileIcon);
                        var item       = new JetPopupMenuItem(localOccurrence, descriptor);
                        menuItems.Add(item);
                    }

                    itemsConsumer(menuItems, AddItemsBehavior.Replace);

                    if (myHighlighter != null)
                    {
                        myHighlighter.UpdateOccurrences(occurences, tailConcurrences);
                    }
                }
                else
                {
                    // todo: do not do it? revert viewport?
                    if (myHighlighter != null)
                    {
                        myHighlighter.UpdateOccurrences(EmptyList <LocalOccurrence> .InstanceList);
                    }
                }
            }

            return(false);
        }
        protected override bool ExecuteItem(JetPopupMenuItem item)
        {
            var occurence = item.Key as IOccurence;
            using (CommitCookie.Commit(Solution))
            {
                var elementOccurence = occurence as DeclaredElementOccurence;
                if (elementOccurence != null)
                {
                    var validDeclaredElement = elementOccurence.DisplayElement.GetValidDeclaredElement();
                    if (validDeclaredElement != null)
                    {
                        var action = new FindUsagesOfElementAction(validDeclaredElement);
                        threading.ExecuteOrQueue("FindUsagesOfSymbolController",
                            () => Lifetimes.Using(lifetime => action.Execute(dataContexts.CreateOnActiveControl(lifetime), () => { })));
                        return true;
                    }
                }

                return false;
            }
        }
        protected override bool ExecuteItem(JetPopupMenuItem item)
        {
            var occurence = item.Key as IOccurence;

            using (CommitCookie.Commit(Solution))
            {
                var elementOccurence = occurence as DeclaredElementOccurence;
                if (elementOccurence != null)
                {
                    var validDeclaredElement = elementOccurence.DisplayElement.GetValidDeclaredElement();
                    if (validDeclaredElement != null)
                    {
                        var action = new FindUsagesOfElementAction(validDeclaredElement);
                        threading.ExecuteOrQueue("FindUsagesOfSymbolController",
                                                 () => Lifetimes.Using(lifetime => action.Execute(dataContexts.CreateOnActiveControl(lifetime), () => { })));
                        return(true);
                    }
                }

                return(false);
            }
        }
 protected override bool ExecuteItem(JetPopupMenuItem item, ISignal <bool> closeBeforeExecute)
 {
     return(true);
 }