protected override bool ExecuteItem(JetPopupMenuItem item, ISignal <bool> closeBeforeExecute) { if (item.Key is GeneratorOccurrence occurance) { return(_executionHost.TryExecute(occurance.Generator)); } return(false); }
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); }