mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
RUBY-30957 add "Current" hint support for usages when using the new UsageSearcher APIs
(cherry picked from commit 2abfe555f5a3bb666714e97064f139c821ccb85a) IJ-CR-103466 GitOrigin-RevId: 80f7404b46ae1397d802761e97b8ba438e3e4be7
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2362a47eed
commit
8b8490c8cd
@@ -11,6 +11,7 @@ import com.intellij.find.FindSettings;
|
||||
import com.intellij.find.findUsages.*;
|
||||
import com.intellij.find.impl.FindManagerImpl;
|
||||
import com.intellij.find.usages.api.SearchTarget;
|
||||
import com.intellij.find.usages.impl.Psi2UsageInfo2UsageAdapter;
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
@@ -58,6 +59,7 @@ import com.intellij.openapi.wm.IdeFocusManager;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.psi.SmartPsiFileRange;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.LocalSearchScope;
|
||||
import com.intellij.psi.search.SearchScope;
|
||||
@@ -103,6 +105,7 @@ import java.util.stream.Collectors;
|
||||
import static com.intellij.find.actions.ResolverKt.findShowUsages;
|
||||
import static com.intellij.find.actions.ShowUsagesActionHandler.getSecondInvocationHint;
|
||||
import static com.intellij.find.findUsages.FindUsagesHandlerFactory.OperationMode.USAGES_WITH_DEFAULT_OPTIONS;
|
||||
import static com.intellij.util.ObjectUtils.doIfNotNull;
|
||||
import static org.jetbrains.annotations.Nls.Capitalization.Sentence;
|
||||
|
||||
public class ShowUsagesAction extends AnAction implements PopupAction, HintManagerImpl.ActionToIgnore {
|
||||
@@ -634,6 +637,20 @@ public class ShowUsagesAction extends AnAction implements PopupAction, HintManag
|
||||
return usage -> usage instanceof UsageInfo2UsageAdapter &&
|
||||
((UsageInfo2UsageAdapter)usage).getUsageInfo().equals(originUsageInfo);
|
||||
}
|
||||
|
||||
int offset = editor.getCaretModel().getOffset();
|
||||
return usage -> {
|
||||
if (usage instanceof Psi2UsageInfo2UsageAdapter adapter) {
|
||||
for (UsageInfo info : adapter.getMergedInfos()) {
|
||||
final Segment range = doIfNotNull(info.getPsiFileRange(), SmartPsiFileRange::getRange);
|
||||
if (range != null && range.getStartOffset() <= offset && offset <= range.getEndOffset()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
}
|
||||
return __ -> false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user