mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJPL-209471 add global Scratches node toggle
GitOrigin-RevId: df6587da6bd1b9cce0221137feb5395628959826
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ed48cfee13
commit
0ed04bcbaa
@@ -954,5 +954,7 @@ settings.editor.general.appearance=Open settings
|
||||
settings.editor.sticky.lines.disabled.title=Sticky lines disabled
|
||||
settings.editor.sticky.lines.disabled.text=Enable sticky lines in settings
|
||||
|
||||
advanced.setting.project.view.show.scratches.and.consoles=Enable Scratches and Consoles in the Project view
|
||||
|
||||
title.inline.completion=Inline Completion
|
||||
text.go.to.inline.completion.settings=Go to <a>Inline Completion settings page</a> to adjust inline completion (e.g. Full Line Code Completion) settings
|
||||
|
||||
@@ -98,6 +98,7 @@ import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import static com.intellij.application.options.OptionId.PROJECT_VIEW_SHOW_VISIBILITY_ICONS;
|
||||
import static com.intellij.ide.scratch.ScratchTreeStructureProvider.SCRATCHES_NODE_SETTING;
|
||||
import static com.intellij.ui.treeStructure.Tree.AUTO_SCROLL_FROM_SOURCE_BLOCKED;
|
||||
|
||||
@State(name = "ProjectView", storages = @Storage(StoragePathMacros.PRODUCT_WORKSPACE_FILE), getStateRequiresEdt = true)
|
||||
@@ -322,7 +323,8 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo
|
||||
private final Option myShowScratchesAndConsoles = new Option() {
|
||||
@Override
|
||||
public boolean isEnabled(@NotNull AbstractProjectViewPane pane) {
|
||||
return pane.supportsShowScratchesAndConsoles();
|
||||
return AdvancedSettings.getBoolean(SCRATCHES_NODE_SETTING) &&
|
||||
pane.supportsShowScratchesAndConsoles();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -18,6 +18,8 @@ import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.extensions.ExtensionPointListener;
|
||||
import com.intellij.openapi.extensions.PluginDescriptor;
|
||||
import com.intellij.openapi.fileTypes.LanguageFileType;
|
||||
import com.intellij.openapi.options.advanced.AdvancedSettings;
|
||||
import com.intellij.openapi.options.advanced.AdvancedSettingsChangeListener;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -38,6 +40,7 @@ import com.intellij.psi.search.PsiElementProcessor;
|
||||
import com.intellij.util.containers.ConcurrentFactoryMap;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.JBIterable;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.Unmodifiable;
|
||||
@@ -50,6 +53,9 @@ import java.util.concurrent.ConcurrentMap;
|
||||
*/
|
||||
public final class ScratchTreeStructureProvider implements TreeStructureProvider, DumbAware {
|
||||
|
||||
@ApiStatus.Internal
|
||||
public static final String SCRATCHES_NODE_SETTING = "project.view.show.scratches.and.consoles";
|
||||
|
||||
public ScratchTreeStructureProvider(Project project) {
|
||||
registerUpdaters(project, project, new Runnable() {
|
||||
AbstractProjectViewPane updateTarget;
|
||||
@@ -62,6 +68,15 @@ public final class ScratchTreeStructureProvider implements TreeStructureProvider
|
||||
if (updateTarget != null) updateTarget.updateFromRoot(true);
|
||||
}
|
||||
});
|
||||
ApplicationManager.getApplication().getMessageBus()
|
||||
.connect(project).subscribe(AdvancedSettingsChangeListener.TOPIC, new AdvancedSettingsChangeListener() {
|
||||
@Override
|
||||
public void advancedSettingChanged(@NotNull String id, @NotNull Object oldValue, @NotNull Object newValue) {
|
||||
if (SCRATCHES_NODE_SETTING.equals(id)) {
|
||||
ProjectView.getInstance(project).refresh();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void registerUpdaters(@NotNull Project project, @NotNull Disposable disposable, @NotNull Runnable onUpdate) {
|
||||
@@ -174,7 +189,9 @@ public final class ScratchTreeStructureProvider implements TreeStructureProvider
|
||||
}
|
||||
List<AbstractTreeNode<?>> list = new ArrayList<>(children.size() + 1);
|
||||
list.addAll(children);
|
||||
list.add(new MyProjectNode(project, settings));
|
||||
if (AdvancedSettings.getBoolean(SCRATCHES_NODE_SETTING)) {
|
||||
list.add(new MyProjectNode(project, settings));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
@@ -385,6 +385,8 @@
|
||||
<applicationService serviceInterface="com.intellij.ide.scratch.ScratchFileService"
|
||||
serviceImplementation="com.intellij.ide.scratch.ScratchFileServiceImpl"/>
|
||||
<treeStructureProvider implementation="com.intellij.ide.scratch.ScratchTreeStructureProvider" order="last"/>
|
||||
<advancedSetting id="project.view.show.scratches.and.consoles" groupKey="group.advanced.settings.project.view" default="true"/>
|
||||
|
||||
<uiDataRule implementation="com.intellij.ide.scratch.ScratchTreeStructureProvider$DataRule"/>
|
||||
|
||||
<postStartupActivity implementation="com.intellij.ide.scratch.workspace.ScratchWorkspaceStartupActivity"/>
|
||||
|
||||
Reference in New Issue
Block a user