diff --git a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/ConfigurableProjectProvider.java b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/ConfigurableProjectProvider.java new file mode 100644 index 000000000000..da5f4409cca3 --- /dev/null +++ b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/ConfigurableProjectProvider.java @@ -0,0 +1,13 @@ +// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package com.intellij.openapi.options.newEditor; + +import com.intellij.openapi.project.Project; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.Nullable; + +@ApiStatus.Internal +@ApiStatus.Experimental +public interface ConfigurableProjectProvider { + + @Nullable Project getProject(); +} diff --git a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsTreeView.java b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsTreeView.java index ee9f41e9b4cb..1e9e968acdf9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsTreeView.java +++ b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsTreeView.java @@ -36,6 +36,7 @@ import com.intellij.util.ui.tree.TreeUtil; import com.intellij.util.ui.tree.WideSelectionTreeUI; import com.intellij.util.ui.update.MergingUpdateQueue; import com.intellij.util.ui.update.Update; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -320,8 +321,9 @@ public class SettingsTreeView extends JComponent implements Accessible, Disposab : null; } - @Nullable - private static Project prepareProject(CachingSimpleNode parent, Configurable configurable) { + @ApiStatus.Internal + public static @Nullable Project prepareProject(@Nullable CachingSimpleNode parent, + @Nullable Configurable configurable) { if (configurable instanceof ConfigurableWrapper) { ConfigurableWrapper wrapper = (ConfigurableWrapper)configurable; return wrapper.getExtensionPoint().getProject(); @@ -341,6 +343,9 @@ public class SettingsTreeView extends JComponent implements Accessible, Disposab return project; } } + if (configurable instanceof ConfigurableProjectProvider) { + return ((ConfigurableProjectProvider)configurable).getProject(); + } return parent == null ? null : parent.getProject(); }