mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
migrate to UiDataProvider
Fixes IJPL-182664. GitOrigin-RevId: 5e1a39f8e247a3244efac3801634d3c72b39d4cd
This commit is contained in:
committed by
intellij-monorepo-bot
parent
da934cf572
commit
e846333774
@@ -4,8 +4,8 @@ package com.intellij.usages.impl.rules;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.navigation.NavigationItemFileStatus;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataProvider;
|
||||
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataSink;
|
||||
import com.intellij.openapi.actionSystem.UiDataProvider;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.util.Iconable;
|
||||
import com.intellij.openapi.util.NlsSafe;
|
||||
@@ -22,7 +22,6 @@ import com.intellij.usages.UsageTarget;
|
||||
import com.intellij.usages.UsageView;
|
||||
import com.intellij.usages.rules.PsiElementUsage;
|
||||
import com.intellij.usages.rules.SingleParentUsageGroupingRule;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -88,7 +87,7 @@ class ClassGroupingRule extends SingleParentUsageGroupingRule implements DumbAwa
|
||||
return index < 0? name : name.substring(0, index);
|
||||
}
|
||||
|
||||
private static class ClassUsageGroup implements UsageGroup, DataProvider {
|
||||
private static class ClassUsageGroup implements UsageGroup, UiDataProvider {
|
||||
private final SmartPsiElementPointer<PsiClass> myClassPointer;
|
||||
private final @NlsSafe String myText;
|
||||
private final String myQName;
|
||||
@@ -169,22 +168,14 @@ class ClassGroupingRule extends SingleParentUsageGroupingRule implements DumbAwa
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable Object getData(@NotNull String dataId) {
|
||||
if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) {
|
||||
return (DataProvider)this::getSlowData;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private @Nullable Object getSlowData(@NonNls String dataId) {
|
||||
if (CommonDataKeys.PSI_ELEMENT.is(dataId)) {
|
||||
public void uiDataSnapshot(@NotNull DataSink sink) {
|
||||
sink.lazy(CommonDataKeys.PSI_ELEMENT, () -> {
|
||||
return getPsiClass();
|
||||
}
|
||||
else if (UsageView.USAGE_INFO_KEY.is(dataId)) {
|
||||
});
|
||||
sink.lazy(UsageView.USAGE_INFO_KEY, () -> {
|
||||
PsiClass psiClass = getPsiClass();
|
||||
return psiClass == null ? null : new UsageInfo(psiClass);
|
||||
}
|
||||
return null;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,8 +4,8 @@ package com.intellij.usages.impl.rules;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.navigation.NavigationItemFileStatus;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataProvider;
|
||||
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataSink;
|
||||
import com.intellij.openapi.actionSystem.UiDataProvider;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Iconable;
|
||||
@@ -63,7 +63,7 @@ public class MethodGroupingRule extends SingleParentUsageGroupingRule {
|
||||
return null;
|
||||
}
|
||||
|
||||
private static class MethodUsageGroup implements UsageGroup, DataProvider {
|
||||
private static class MethodUsageGroup implements UsageGroup, UiDataProvider {
|
||||
private final SmartPsiElementPointer<PsiMethod> myMethodPointer;
|
||||
private final @NlsSafe String myName;
|
||||
private final Icon myIcon;
|
||||
@@ -169,22 +169,14 @@ public class MethodGroupingRule extends SingleParentUsageGroupingRule {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable Object getData(@NotNull String dataId) {
|
||||
if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) {
|
||||
return (DataProvider)this::getSlowData;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private @Nullable Object getSlowData(@NotNull String dataId) {
|
||||
if (CommonDataKeys.PSI_ELEMENT.is(dataId)) {
|
||||
public void uiDataSnapshot(@NotNull DataSink sink) {
|
||||
sink.lazy(CommonDataKeys.PSI_ELEMENT, () -> {
|
||||
return getMethod();
|
||||
}
|
||||
else if (UsageView.USAGE_INFO_KEY.is(dataId)) {
|
||||
});
|
||||
sink.lazy(UsageView.USAGE_INFO_KEY, () -> {
|
||||
PsiMethod method = getMethod();
|
||||
return method == null ? null : new UsageInfo(method);
|
||||
}
|
||||
return null;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,8 +2,8 @@
|
||||
package com.intellij.usages.impl.rules;
|
||||
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataProvider;
|
||||
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataSink;
|
||||
import com.intellij.openapi.actionSystem.UiDataProvider;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vcs.FileStatus;
|
||||
import com.intellij.openapi.vcs.FileStatusManager;
|
||||
@@ -14,7 +14,6 @@ import com.intellij.psi.PsiManager;
|
||||
import com.intellij.psi.PsiPackage;
|
||||
import com.intellij.usages.UsageGroup;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@@ -42,7 +41,7 @@ public final class PackageGroupingRule extends DirectoryGroupingRule {
|
||||
return "UsageGrouping.Package";
|
||||
}
|
||||
|
||||
private final class PackageGroup implements UsageGroup, DataProvider {
|
||||
private final class PackageGroup implements UsageGroup, UiDataProvider {
|
||||
private final PsiPackage myPackage;
|
||||
private Icon myIcon;
|
||||
|
||||
@@ -109,18 +108,10 @@ public final class PackageGroupingRule extends DirectoryGroupingRule {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable Object getData(@NotNull String dataId) {
|
||||
if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) {
|
||||
return (DataProvider)slowId -> getSlowData(slowId);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private @Nullable Object getSlowData(@NotNull String dataId) {
|
||||
if (CommonDataKeys.PSI_ELEMENT.is(dataId)) {
|
||||
public void uiDataSnapshot(@NotNull DataSink sink) {
|
||||
sink.lazy(CommonDataKeys.PSI_ELEMENT, () -> {
|
||||
return myPackage;
|
||||
}
|
||||
return null;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7622,13 +7622,12 @@ f:com.intellij.find.impl.FindInProjectUtil
|
||||
- s:setupViewPresentation(Z,com.intellij.find.FindModel):com.intellij.usages.UsageViewPresentation
|
||||
c:com.intellij.find.impl.FindInProjectUtil$StringUsageTarget
|
||||
- com.intellij.navigation.ItemPresentation
|
||||
- com.intellij.openapi.actionSystem.DataProvider
|
||||
- com.intellij.openapi.actionSystem.UiDataProvider
|
||||
- com.intellij.usages.ConfigurableUsageTarget
|
||||
- pf:myFindModel:com.intellij.find.FindModel
|
||||
- pf:myProject:com.intellij.openapi.project.Project
|
||||
- <init>(com.intellij.openapi.project.Project,com.intellij.find.FindModel):V
|
||||
- findUsages():V
|
||||
- getData(java.lang.String):java.lang.Object
|
||||
- getIcon(Z):javax.swing.Icon
|
||||
- getLongDescriptiveName():java.lang.String
|
||||
- getName():java.lang.String
|
||||
@@ -7637,6 +7636,7 @@ c:com.intellij.find.impl.FindInProjectUtil$StringUsageTarget
|
||||
- getShortcut():com.intellij.openapi.actionSystem.KeyboardShortcut
|
||||
- isValid():Z
|
||||
- showSettings():V
|
||||
- uiDataSnapshot(com.intellij.openapi.actionSystem.DataSink):V
|
||||
f:com.intellij.find.impl.FindManagerImpl
|
||||
- com.intellij.find.FindManager
|
||||
- <init>(com.intellij.openapi.project.Project):V
|
||||
|
||||
@@ -480,7 +480,7 @@ public final class FindInProjectUtil {
|
||||
}
|
||||
}
|
||||
|
||||
public static class StringUsageTarget implements ConfigurableUsageTarget, ItemPresentation, DataProvider {
|
||||
public static class StringUsageTarget implements ConfigurableUsageTarget, ItemPresentation, UiDataProvider {
|
||||
protected final @NotNull Project myProject;
|
||||
protected final @NotNull FindModel myFindModel;
|
||||
|
||||
@@ -539,18 +539,10 @@ public final class FindInProjectUtil {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable Object getData(@NotNull String dataId) {
|
||||
if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) {
|
||||
return (DataProvider)slowId -> getSlowData(slowId);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private @Nullable Object getSlowData(@NotNull String dataId) {
|
||||
if (UsageView.USAGE_SCOPE.is(dataId)) {
|
||||
public void uiDataSnapshot(@NotNull DataSink sink) {
|
||||
sink.lazy(UsageView.USAGE_SCOPE, () -> {
|
||||
return getScopeFromModel(myProject, myFindModel);
|
||||
}
|
||||
return null;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ a:com.intellij.find.FindResult
|
||||
c:com.intellij.find.findUsages.PsiElement2UsageTargetAdapter
|
||||
- com.intellij.navigation.ItemPresentation
|
||||
- com.intellij.navigation.PsiElementNavigationItem
|
||||
- com.intellij.openapi.actionSystem.DataProvider
|
||||
- com.intellij.openapi.actionSystem.UiCompatibleDataProvider
|
||||
- com.intellij.usages.ConfigurableUsageTarget
|
||||
- com.intellij.usages.PsiElementUsageTarget
|
||||
- pf:myOptions:com.intellij.find.findUsages.FindUsagesOptions
|
||||
@@ -93,7 +93,6 @@ c:com.intellij.find.findUsages.PsiElement2UsageTargetAdapter
|
||||
- s:convertToPsiElements(com.intellij.find.findUsages.PsiElement2UsageTargetAdapter[]):com.intellij.psi.PsiElement[]
|
||||
- findUsages():V
|
||||
- findUsagesInEditor(com.intellij.openapi.fileEditor.FileEditor):V
|
||||
- getData(java.lang.String):java.lang.Object
|
||||
- getElement():com.intellij.psi.PsiElement
|
||||
- getFiles():com.intellij.openapi.vfs.VirtualFile[]
|
||||
- getIcon(Z):javax.swing.Icon
|
||||
@@ -110,6 +109,7 @@ c:com.intellij.find.findUsages.PsiElement2UsageTargetAdapter
|
||||
- isValid():Z
|
||||
- navigate(Z):V
|
||||
- showSettings():V
|
||||
- uiDataSnapshot(com.intellij.openapi.actionSystem.DataSink):V
|
||||
- update():V
|
||||
f:com.intellij.ide.actions.FqnUtil
|
||||
- <init>():V
|
||||
|
||||
+8
-20
@@ -9,9 +9,9 @@ import com.intellij.lang.findUsages.DescriptiveNameUtil;
|
||||
import com.intellij.navigation.ItemPresentation;
|
||||
import com.intellij.navigation.NavigationItem;
|
||||
import com.intellij.navigation.PsiElementNavigationItem;
|
||||
import com.intellij.openapi.actionSystem.DataProvider;
|
||||
import com.intellij.openapi.actionSystem.DataSink;
|
||||
import com.intellij.openapi.actionSystem.KeyboardShortcut;
|
||||
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys;
|
||||
import com.intellij.openapi.actionSystem.UiCompatibleDataProvider;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -39,7 +39,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import javax.swing.*;
|
||||
|
||||
public class PsiElement2UsageTargetAdapter
|
||||
implements PsiElementUsageTarget, DataProvider, PsiElementNavigationItem, ItemPresentation, ConfigurableUsageTarget {
|
||||
implements PsiElementUsageTarget, UiCompatibleDataProvider, PsiElementNavigationItem, ItemPresentation, ConfigurableUsageTarget {
|
||||
private final SmartPsiElementPointer<?> myPointer;
|
||||
protected final @NotNull FindUsagesOptions myOptions;
|
||||
private String myPresentableText;
|
||||
@@ -187,24 +187,12 @@ public class PsiElement2UsageTargetAdapter
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable Object getData(@NotNull String dataId) {
|
||||
if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) {
|
||||
return (DataProvider)this::getSlowData;
|
||||
}
|
||||
else if (UsageView.USAGE_SCOPE.is(dataId)) {
|
||||
return myOptions.searchScope;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private @Nullable Object getSlowData(@NotNull String dataId) {
|
||||
if (UsageView.USAGE_INFO_KEY.is(dataId)) {
|
||||
public void uiDataSnapshot(@NotNull DataSink sink) {
|
||||
sink.set(UsageView.USAGE_SCOPE, myOptions.searchScope);
|
||||
sink.lazy(UsageView.USAGE_INFO_KEY, () -> {
|
||||
PsiElement element = getElement();
|
||||
if (element != null && element.getTextRange() != null) {
|
||||
return new UsageInfo(element);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
return element != null && element.getTextRange() != null ? new UsageInfo(element) : null;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -174,7 +174,7 @@ c:com.intellij.usages.impl.rules.FileGroupingRule
|
||||
- getRank():I
|
||||
- isGroupingActionInverted():Z
|
||||
c:com.intellij.usages.impl.rules.FileGroupingRule$FileUsageGroup
|
||||
- com.intellij.openapi.actionSystem.DataProvider
|
||||
- com.intellij.openapi.actionSystem.UiDataProvider
|
||||
- com.intellij.usages.NamedPresentably
|
||||
- com.intellij.usages.UsageGroup
|
||||
- <init>(com.intellij.openapi.project.Project,com.intellij.openapi.vfs.VirtualFile):V
|
||||
@@ -182,7 +182,6 @@ c:com.intellij.usages.impl.rules.FileGroupingRule$FileUsageGroup
|
||||
- canNavigateToSource():Z
|
||||
- compareTo(com.intellij.usages.UsageGroup):I
|
||||
- equals(java.lang.Object):Z
|
||||
- getData(java.lang.String):java.lang.Object
|
||||
- getFileStatus():com.intellij.openapi.vcs.FileStatus
|
||||
- getIcon():javax.swing.Icon
|
||||
- getPresentableGroupText():java.lang.String
|
||||
@@ -190,6 +189,7 @@ c:com.intellij.usages.impl.rules.FileGroupingRule$FileUsageGroup
|
||||
- hashCode():I
|
||||
- isValid():Z
|
||||
- navigate(Z):V
|
||||
- uiDataSnapshot(com.intellij.openapi.actionSystem.DataSink):V
|
||||
- update():V
|
||||
a:com.intellij.usages.impl.rules.UsageGroupBase
|
||||
- com.intellij.usages.UsageGroup
|
||||
|
||||
@@ -5,8 +5,10 @@ import com.intellij.find.SearchInBackgroundOption;
|
||||
import com.intellij.injected.editor.VirtualFileWindow;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.notebook.editor.BackedVirtualFile;
|
||||
import com.intellij.openapi.actionSystem.CustomizedDataContext;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.DataProvider;
|
||||
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataSink;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
@@ -42,6 +44,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
@@ -214,17 +217,12 @@ public class UsageViewManagerImpl extends UsageViewManager {
|
||||
|
||||
@NotNull Supplier<SearchScope> getMaxSearchScopeToWarnOfFallingOutOf(UsageTarget @NotNull [] searchFor) {
|
||||
UsageTarget target = searchFor.length > 0 ? searchFor[0] : null;
|
||||
DataProvider dataProvider = target instanceof DataProvider o ? o : null;
|
||||
SearchScope scope = dataProvider != null ? UsageView.USAGE_SCOPE.getData(dataProvider) : null;
|
||||
if (scope != null) {
|
||||
return () -> scope;
|
||||
}
|
||||
DataProvider bgtProvider = dataProvider != null ? PlatformCoreDataKeys.BGT_DATA_PROVIDER.getData(dataProvider) : null;
|
||||
return () -> {
|
||||
SearchScope scope2 = bgtProvider != null ? UsageView.USAGE_SCOPE.getData(bgtProvider) : null;
|
||||
if (scope2 != null) return scope2;
|
||||
return GlobalSearchScope.everythingScope(project); // by default do not warn of falling out of scope
|
||||
};
|
||||
DataContext dataContext = CustomizedDataContext.withSnapshot(DataContext.EMPTY_CONTEXT, sink ->
|
||||
DataSink.uiDataSnapshot(sink, target));
|
||||
return () -> Objects.requireNonNullElseGet(
|
||||
dataContext.getData(UsageView.USAGE_SCOPE),
|
||||
// by default, do not warn of falling out of scope
|
||||
() -> GlobalSearchScope.everythingScope(project));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+7
-17
@@ -3,8 +3,8 @@ package com.intellij.usages.impl.rules;
|
||||
|
||||
import com.intellij.injected.editor.VirtualFileWindow;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataProvider;
|
||||
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataSink;
|
||||
import com.intellij.openapi.actionSystem.UiDataProvider;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectUtil;
|
||||
@@ -90,7 +90,7 @@ public class DirectoryGroupingRule extends SingleParentUsageGroupingRule impleme
|
||||
return "UsageGrouping.Directory";
|
||||
}
|
||||
|
||||
protected class DirectoryGroup implements UsageGroup, DataProvider {
|
||||
protected class DirectoryGroup implements UsageGroup, UiDataProvider {
|
||||
protected final VirtualFile myDir;
|
||||
private Icon myIcon;
|
||||
private final @NlsSafe String relativePathText;
|
||||
@@ -188,21 +188,11 @@ public class DirectoryGroupingRule extends SingleParentUsageGroupingRule impleme
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable Object getData(@NotNull String dataId) {
|
||||
if (CommonDataKeys.VIRTUAL_FILE.is(dataId)) {
|
||||
return myDir;
|
||||
}
|
||||
if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) {
|
||||
return (DataProvider)slowId -> getSlowData(slowId);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private @Nullable Object getSlowData(@NotNull String dataId) {
|
||||
if (CommonDataKeys.PSI_ELEMENT.is(dataId)) {
|
||||
public void uiDataSnapshot(@NotNull DataSink sink) {
|
||||
sink.set(CommonDataKeys.VIRTUAL_FILE, myDir);
|
||||
sink.lazy(CommonDataKeys.PSI_ELEMENT, () -> {
|
||||
return getDirectory();
|
||||
}
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,8 +3,8 @@ package com.intellij.usages.impl.rules;
|
||||
|
||||
import com.intellij.injected.editor.VirtualFileWindow;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataProvider;
|
||||
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataSink;
|
||||
import com.intellij.openapi.actionSystem.UiDataProvider;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -60,7 +60,7 @@ public class FileGroupingRule extends SingleParentUsageGroupingRule implements D
|
||||
return true;
|
||||
}
|
||||
|
||||
public static class FileUsageGroup implements UsageGroup, DataProvider, NamedPresentably {
|
||||
public static class FileUsageGroup implements UsageGroup, UiDataProvider, NamedPresentably {
|
||||
private final Project myProject;
|
||||
private final VirtualFile myFile;
|
||||
private @NlsSafe String myPresentableName;
|
||||
@@ -144,21 +144,11 @@ public class FileGroupingRule extends SingleParentUsageGroupingRule implements D
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable Object getData(@NotNull String dataId) {
|
||||
if (CommonDataKeys.VIRTUAL_FILE.is(dataId)) {
|
||||
return myFile;
|
||||
}
|
||||
if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) {
|
||||
return (DataProvider)slowId -> getSlowData(slowId);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private @Nullable Object getSlowData(@NotNull String dataId) {
|
||||
if (CommonDataKeys.PSI_ELEMENT.is(dataId)) {
|
||||
public void uiDataSnapshot(@NotNull DataSink sink) {
|
||||
sink.set(CommonDataKeys.VIRTUAL_FILE, myFile);
|
||||
sink.lazy(CommonDataKeys.PSI_ELEMENT, () -> {
|
||||
return getPsiFile();
|
||||
}
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
|
||||
Reference in New Issue
Block a user