mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-14 18:05:27 +07:00
[java] IDEA-352641 File - New contains many irrelevant templates for Java source sets
GitOrigin-RevId: bd18866f6d60839fa9474c7071aca2761989986e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
aebc03abd0
commit
b79a859047
@@ -1658,6 +1658,10 @@
|
||||
implementationClass="com.intellij.codeInsight.daemon.impl.quickfix.VariableAccessFromInnerClassJava10Fix"/>
|
||||
<stripTrailingSpacesFilterFactory implementation="com.intellij.codeEditor.JavaStripTrailingSpacesFilterFactory"/>
|
||||
|
||||
<advancedSetting id="java.show.irrelevant.templates.in.source.roots" default="false"
|
||||
groupKey="advanced.settings.group.java" bundle="messages.JavaBundle"/>
|
||||
<newFileActionCategoryHandler implementation="com.intellij.ide.actions.JavaNewFileCategoryHandler"/>
|
||||
|
||||
<inspection.basicVisitor class="com.intellij.psi.JavaElementVisitor"/>
|
||||
|
||||
<localInspection language="JAVA" shortName="MoveFieldAssignmentToInitializer" enabledByDefault="true" level="INFORMATION"
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.ide.actions;
|
||||
|
||||
import com.intellij.ide.IdeView;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.LangDataKeys;
|
||||
import com.intellij.openapi.options.advanced.AdvancedSettings;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ProjectFileIndex;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.psi.PsiDirectory;
|
||||
import com.intellij.util.ThreeState;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
|
||||
|
||||
import static com.intellij.ide.actions.CreateTemplateInPackageAction.JAVA_NEW_FILE_CATEGORY;
|
||||
import static com.intellij.ide.actions.CreateTemplateInPackageAction.isInContentRoot;
|
||||
|
||||
final class JavaNewFileCategoryHandler implements NewFileActionCategoryHandler {
|
||||
@Override
|
||||
public @NotNull ThreeState isVisible(@NotNull DataContext dataContext, @NotNull String category) {
|
||||
if (JAVA_NEW_FILE_CATEGORY.equals(category)) return ThreeState.YES;
|
||||
if (AdvancedSettings.getBoolean("java.show.irrelevant.templates.in.source.roots")) return ThreeState.UNSURE;
|
||||
|
||||
Project project = CommonDataKeys.PROJECT.getData(dataContext);
|
||||
IdeView view = LangDataKeys.IDE_VIEW.getData(dataContext);
|
||||
|
||||
if (project == null || view == null) return ThreeState.UNSURE;
|
||||
|
||||
ProjectFileIndex projectFileIndex = ProjectRootManager.getInstance(project).getFileIndex();
|
||||
for (PsiDirectory dir : view.getDirectories()) {
|
||||
if (isInContentRoot(dir.getVirtualFile(), projectFileIndex)) { // cannot distinguish module root from source root
|
||||
return ThreeState.YES;
|
||||
}
|
||||
if (projectFileIndex.isUnderSourceRootOfType(dir.getVirtualFile(), JavaModuleSourceRootTypes.SOURCES)) {
|
||||
return ThreeState.NO;
|
||||
}
|
||||
}
|
||||
|
||||
return ThreeState.UNSURE;
|
||||
}
|
||||
}
|
||||
@@ -1952,3 +1952,5 @@ intention.family.name.delete.private.method=Delete private method
|
||||
checkbox.check.for.jdk.updates=Check for JDK updates
|
||||
intention.family.name.rename.to.ignored=Rename to ignored
|
||||
tooltip.variable.used=Variable ''{0}'' is used
|
||||
|
||||
advanced.setting.java.show.irrelevant.templates.in.source.roots=Show irrelevant New File templates in Java source roots
|
||||
@@ -482,6 +482,10 @@ c:com.intellij.find.actions.FindUsagesAction
|
||||
- a:getSearchTarget():com.intellij.find.usages.api.SearchTarget
|
||||
*:com.intellij.find.usages.symbol.SymbolSearchTargetFactory
|
||||
- a:searchTarget(com.intellij.openapi.project.Project,com.intellij.model.Symbol):com.intellij.find.usages.api.SearchTarget
|
||||
*:com.intellij.ide.actions.NewFileActionCategoryHandler
|
||||
- a:isVisible(com.intellij.openapi.actionSystem.DataContext,java.lang.String):com.intellij.util.ThreeState
|
||||
*:com.intellij.ide.actions.NewFileActionWithCategory
|
||||
- a:getCategory():java.lang.String
|
||||
*:com.intellij.ide.actions.searcheverywhere.PromoAction
|
||||
- a:getCallToAction():java.lang.String
|
||||
- a:getPromotedProductIcon():javax.swing.Icon
|
||||
|
||||
@@ -8271,6 +8271,8 @@ a:com.intellij.ide.actions.CreateFromTemplateAction
|
||||
- update(com.intellij.openapi.actionSystem.AnActionEvent):V
|
||||
a:com.intellij.ide.actions.CreateTemplateInPackageAction
|
||||
- com.intellij.ide.actions.CreateFromTemplateAction
|
||||
- com.intellij.ide.actions.NewFileActionWithCategory
|
||||
- sf:JAVA_NEW_FILE_CATEGORY:java.lang.String
|
||||
- p:<init>(java.lang.String,java.lang.String,javax.swing.Icon,java.util.Set):V
|
||||
- p:<init>(java.util.function.Supplier,java.util.function.Supplier,java.util.function.Supplier,java.util.Set):V
|
||||
- p:<init>(java.util.function.Supplier,java.util.function.Supplier,javax.swing.Icon,java.util.Set):V
|
||||
@@ -8279,6 +8281,7 @@ a:com.intellij.ide.actions.CreateTemplateInPackageAction
|
||||
- pa:checkPackageExists(com.intellij.psi.PsiDirectory):Z
|
||||
- p:createFile(java.lang.String,java.lang.String,com.intellij.psi.PsiDirectory):com.intellij.psi.PsiElement
|
||||
- pa:doCreate(com.intellij.psi.PsiDirectory,java.lang.String,java.lang.String):com.intellij.psi.PsiElement
|
||||
- getCategory():java.lang.String
|
||||
- pa:getNavigationElement(com.intellij.psi.PsiElement):com.intellij.psi.PsiElement
|
||||
- p:isAvailable(com.intellij.openapi.actionSystem.DataContext):Z
|
||||
- s:isAvailable(com.intellij.openapi.actionSystem.DataContext,java.util.Set,java.util.function.Predicate):Z
|
||||
@@ -11383,30 +11386,6 @@ c:com.intellij.ide.scratch.ScratchFileActions$ChangeLanguageAction
|
||||
- p:getChangeLanguageActionName(java.lang.String):java.lang.String
|
||||
- p:getChangeLanguageTitle():java.lang.String
|
||||
- update(com.intellij.openapi.actionSystem.AnActionEvent):V
|
||||
f:com.intellij.ide.scratch.ScratchFileActions$ExportToScratchAction
|
||||
- com.intellij.openapi.project.DumbAwareAction
|
||||
- <init>():V
|
||||
- actionPerformed(com.intellij.openapi.actionSystem.AnActionEvent):V
|
||||
- getActionUpdateThread():com.intellij.openapi.actionSystem.ActionUpdateThread
|
||||
- update(com.intellij.openapi.actionSystem.AnActionEvent):V
|
||||
f:com.intellij.ide.scratch.ScratchFileActions$NewBufferAction
|
||||
- com.intellij.openapi.project.DumbAwareAction
|
||||
- <init>():V
|
||||
- actionPerformed(com.intellij.openapi.actionSystem.AnActionEvent):V
|
||||
- getActionUpdateThread():com.intellij.openapi.actionSystem.ActionUpdateThread
|
||||
- update(com.intellij.openapi.actionSystem.AnActionEvent):V
|
||||
f:com.intellij.ide.scratch.ScratchFileActions$NewFileAction
|
||||
- com.intellij.openapi.project.DumbAwareAction
|
||||
- <init>():V
|
||||
- actionPerformed(com.intellij.openapi.actionSystem.AnActionEvent):V
|
||||
- getActionUpdateThread():com.intellij.openapi.actionSystem.ActionUpdateThread
|
||||
- update(com.intellij.openapi.actionSystem.AnActionEvent):V
|
||||
f:com.intellij.ide.scratch.ScratchFileActions$ShowFilesPopupAction
|
||||
- com.intellij.openapi.project.DumbAwareAction
|
||||
- <init>():V
|
||||
- actionPerformed(com.intellij.openapi.actionSystem.AnActionEvent):V
|
||||
- getActionUpdateThread():com.intellij.openapi.actionSystem.ActionUpdateThread
|
||||
- update(com.intellij.openapi.actionSystem.AnActionEvent):V
|
||||
a:com.intellij.ide.scratch.ScratchFileCreationHelper
|
||||
- sf:EXTENSION:com.intellij.lang.LanguageExtension
|
||||
- <init>():V
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.intellij.ide.fileTemplates.FileTemplateUtil;
|
||||
import com.intellij.ide.fileTemplates.actions.CreateFromTemplateActionBase;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.internal.statistic.collectors.fus.fileTypes.FileTypeUsageCounterCollector;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.NlsActions;
|
||||
@@ -26,9 +27,6 @@ import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* @author Dmitry Avdeev
|
||||
*/
|
||||
public abstract class CreateFileFromTemplateAction extends CreateFromTemplateAction<PsiFile> {
|
||||
|
||||
protected CreateFileFromTemplateAction() {
|
||||
@@ -114,7 +112,7 @@ public abstract class CreateFileFromTemplateAction extends CreateFromTemplateAct
|
||||
throw e;
|
||||
}
|
||||
catch (Exception e) {
|
||||
LOG.error(e);
|
||||
Logger.getInstance(CreateFileFromTemplateAction.class).error(e);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -31,6 +31,10 @@ import java.util.function.Supplier;
|
||||
|
||||
public abstract class CreateFromTemplateAction<T extends PsiElement> extends AnAction implements WriteActionAware {
|
||||
|
||||
/**
|
||||
* @deprecated Declare your own LOG where needed.
|
||||
*/
|
||||
@Deprecated
|
||||
protected static final Logger LOG = Logger.getInstance(CreateFromTemplateAction.class);
|
||||
|
||||
protected CreateFromTemplateAction() {
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.LangDataKeys;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtilCore;
|
||||
@@ -32,7 +33,13 @@ import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public abstract class CreateTemplateInPackageAction<T extends PsiElement> extends CreateFromTemplateAction<T> {
|
||||
public abstract class CreateTemplateInPackageAction<T extends PsiElement> extends CreateFromTemplateAction<T>
|
||||
implements NewFileActionWithCategory {
|
||||
|
||||
private static final @NotNull Logger LOG = Logger.getInstance(CreateTemplateInPackageAction.class);
|
||||
|
||||
public static final String JAVA_NEW_FILE_CATEGORY = "Java";
|
||||
|
||||
private final @Nullable Set<? extends JpsModuleSourceRootType<?>> mySourceRootTypes;
|
||||
|
||||
protected CreateTemplateInPackageAction(String text, String description, Icon icon,
|
||||
@@ -57,6 +64,11 @@ public abstract class CreateTemplateInPackageAction<T extends PsiElement> extend
|
||||
mySourceRootTypes = rootTypes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getCategory() {
|
||||
return JAVA_NEW_FILE_CATEGORY;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @Nullable T createFile(String name, String templateName, PsiDirectory dir) {
|
||||
return checkOrCreate(name, dir, templateName);
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.ide.actions;
|
||||
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.util.ThreeState;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Hides some of the plugin New File... actions depending on context. For instance, web development templates in Java source sets.
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public interface NewFileActionCategoryHandler {
|
||||
@NotNull ThreeState isVisible(@NotNull DataContext dataContext, @NotNull String category);
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.ide.actions;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Marks actions in New File... popup with a named category.
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public interface NewFileActionWithCategory {
|
||||
@NotNull String getCategory();
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.ide.actions;
|
||||
|
||||
import com.intellij.openapi.actionSystem.DefaultActionGroup;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
final class NewWebDevelopmentGroup extends DefaultActionGroup implements NewFileActionWithCategory {
|
||||
@Override
|
||||
public @NotNull String getCategory() {
|
||||
return "Web";
|
||||
}
|
||||
}
|
||||
@@ -4,18 +4,23 @@ package com.intellij.ide.actions;
|
||||
import com.intellij.idea.ActionsBundle;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.actionSystem.ex.ActionUtil;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.ui.popup.JBPopupFactory;
|
||||
import com.intellij.openapi.ui.popup.ListPopup;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.util.text.TextWithMnemonic;
|
||||
import com.intellij.ui.awt.RelativePoint;
|
||||
import com.intellij.util.ThreeState;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.InputEvent;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@ApiStatus.Internal
|
||||
@@ -52,6 +57,15 @@ public class WeighingNewActionGroup extends WeighingActionGroup implements DumbA
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnAction @NotNull [] getChildren(@Nullable AnActionEvent e) {
|
||||
AnAction[] originalChildren = super.getChildren(e);
|
||||
|
||||
if (e == null) return originalChildren;
|
||||
|
||||
return NewActionCategoryManager.filterVisibleCategories(originalChildren, e.getDataContext());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean shouldBeChosenAnyway(@NotNull AnAction action) {
|
||||
final Class<? extends AnAction> aClass = action.getClass();
|
||||
@@ -80,3 +94,41 @@ public class WeighingNewActionGroup extends WeighingActionGroup implements DumbA
|
||||
return Registry.is("ide.project.view.new.file.popup");
|
||||
}
|
||||
}
|
||||
|
||||
final class NewActionCategoryManager {
|
||||
private static final ExtensionPointName<NewFileActionCategoryHandler> EP_NAME =
|
||||
ExtensionPointName.create("com.intellij.newFileActionCategoryHandler");
|
||||
|
||||
public static AnAction[] filterVisibleCategories(AnAction @NotNull [] actions, @NotNull DataContext context) {
|
||||
List<@NotNull NewFileActionCategoryHandler> handlers = EP_NAME.getExtensionList();
|
||||
if (handlers.isEmpty()) return actions;
|
||||
|
||||
List<String> hiddenCategories = new ArrayList<>();
|
||||
|
||||
List<AnAction> visible = new ArrayList<>(actions.length);
|
||||
for (AnAction action : actions) {
|
||||
if (!(action instanceof NewFileActionWithCategory)) {
|
||||
visible.add(action);
|
||||
continue;
|
||||
}
|
||||
|
||||
String category = ((NewFileActionWithCategory)action).getCategory();
|
||||
if (hiddenCategories.contains(category)) continue;
|
||||
|
||||
boolean isVisible = true;
|
||||
for (NewFileActionCategoryHandler handler : handlers) {
|
||||
if (handler.isVisible(context, category) == ThreeState.NO) {
|
||||
hiddenCategories.add(category);
|
||||
isVisible = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isVisible) {
|
||||
visible.add(action);
|
||||
}
|
||||
}
|
||||
|
||||
return visible.toArray(AnAction.EMPTY_ARRAY);
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package com.intellij.ide.scratch;
|
||||
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.ide.actions.NewActionGroup;
|
||||
import com.intellij.ide.actions.NewFileActionWithCategory;
|
||||
import com.intellij.ide.actions.RecentLocationsAction;
|
||||
import com.intellij.ide.scratch.ScratchImplUtil.LanguageItem;
|
||||
import com.intellij.ide.util.DeleteHandler;
|
||||
@@ -62,8 +63,7 @@ public final class ScratchFileActions {
|
||||
return ourCurrentBuffer;
|
||||
}
|
||||
|
||||
|
||||
public static final class NewFileAction extends DumbAwareAction {
|
||||
static final class NewFileAction extends DumbAwareAction implements NewFileActionWithCategory {
|
||||
private static final String ACTION_ID = "NewScratchFile";
|
||||
|
||||
private final NotNullLazyValue<@Nls String> myActionText = NotNullLazyValue.lazy(() -> {
|
||||
@@ -169,9 +169,14 @@ public final class ScratchFileActions {
|
||||
presentation.setIcon(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getCategory() {
|
||||
return "Scratch";
|
||||
}
|
||||
}
|
||||
|
||||
public static final class NewBufferAction extends DumbAwareAction {
|
||||
static final class NewBufferAction extends DumbAwareAction {
|
||||
|
||||
@Override
|
||||
public @NotNull ActionUpdateThread getActionUpdateThread() {
|
||||
@@ -388,7 +393,7 @@ public final class ScratchFileActions {
|
||||
}
|
||||
}
|
||||
|
||||
public static final class ShowFilesPopupAction extends DumbAwareAction {
|
||||
static final class ShowFilesPopupAction extends DumbAwareAction {
|
||||
@Override
|
||||
public @NotNull ActionUpdateThread getActionUpdateThread() {
|
||||
return ActionUpdateThread.BGT;
|
||||
@@ -447,7 +452,7 @@ public final class ScratchFileActions {
|
||||
}
|
||||
}
|
||||
|
||||
public static final class ExportToScratchAction extends DumbAwareAction {
|
||||
static final class ExportToScratchAction extends DumbAwareAction {
|
||||
{
|
||||
setEnabledInModalContext(true);
|
||||
}
|
||||
|
||||
@@ -706,5 +706,8 @@
|
||||
<extensionPoint qualifiedName="com.intellij.mlCompletionFeaturesCollector" dynamic="true" beanClass="com.intellij.lang.LanguageExtensionPoint">
|
||||
<with attribute="implementationClass" implements="com.intellij.codeInsight.inline.completion.features.InlineCompletionFeaturesCollector"/>
|
||||
</extensionPoint>
|
||||
|
||||
<extensionPoint qualifiedName="com.intellij.newFileActionCategoryHandler" dynamic="true"
|
||||
interface="com.intellij.ide.actions.NewFileActionCategoryHandler"/>
|
||||
</extensionPoints>
|
||||
</idea-plugin>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<add-to-group group-id="NewWebDevelopment" anchor="first"/>
|
||||
</group>
|
||||
|
||||
<group id="NewXmlDescriptor" class="com.intellij.ide.actions.NonTrivialActionGroup" popup="true" icon="AllIcons.FileTypes.Xml">
|
||||
<group id="NewXmlDescriptor" class="com.intellij.xml.actions.CreateXmlDescriptorGroup" popup="true" icon="AllIcons.FileTypes.Xml">
|
||||
<add-to-group group-id="NewGroup" anchor="last"/>
|
||||
</group>
|
||||
|
||||
|
||||
@@ -724,7 +724,7 @@
|
||||
<reference id="NewScratchFile"/>
|
||||
<action id="NewDir" class="com.intellij.ide.actions.CreateDirectoryOrPackageAction"/>
|
||||
<group class="com.intellij.ide.fileTemplates.actions.FileTemplateSeparator" id="FileTemplateSeparatorGroup"/>
|
||||
<group id="NewWebDevelopment"/>
|
||||
<group id="NewWebDevelopment" class="com.intellij.ide.actions.NewWebDevelopmentGroup"/>
|
||||
<group id="NewFromTemplate" class="com.intellij.ide.fileTemplates.actions.CreateFromTemplateGroup"/>
|
||||
</group>
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ package org.editorconfig.configmanagement.create;
|
||||
import com.intellij.application.options.CodeStyle;
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.ide.IdeView;
|
||||
import com.intellij.ide.actions.NewFileActionWithCategory;
|
||||
import com.intellij.ide.actions.OpenFileAction;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.notification.Notification;
|
||||
@@ -34,7 +35,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
public final class CreateEditorConfigAction extends AnAction implements DumbAware {
|
||||
public final class CreateEditorConfigAction extends AnAction implements DumbAware, NewFileActionWithCategory {
|
||||
private final static Logger LOG = Logger.getInstance(CreateEditorConfigAction.class);
|
||||
|
||||
@Override
|
||||
@@ -77,6 +78,11 @@ public final class CreateEditorConfigAction extends AnAction implements DumbAwar
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getCategory() {
|
||||
return "EditorConfig";
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static PsiFile getPsiFile(@NotNull Project project, @NotNull VirtualFile file) {
|
||||
Document document = FileDocumentManager.getInstance().getDocument(file);
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.intellij.icons.AllIcons;
|
||||
import com.intellij.ide.IdeView;
|
||||
import com.intellij.ide.actions.CreateDirectoryOrPackageHandler;
|
||||
import com.intellij.ide.actions.CreateFileFromTemplateDialog;
|
||||
import com.intellij.ide.actions.NewFileActionWithCategory;
|
||||
import com.intellij.ide.fileTemplates.FileTemplate;
|
||||
import com.intellij.ide.fileTemplates.FileTemplateManager;
|
||||
import com.intellij.ide.fileTemplates.FileTemplateUtil;
|
||||
@@ -31,12 +32,12 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public final class CreatePackageAction extends DumbAwareAction {
|
||||
public final class CreatePackageAction extends DumbAwareAction implements NewFileActionWithCategory {
|
||||
private static final Logger LOG = Logger.getInstance(CreatePackageAction.class);
|
||||
|
||||
private static final @NonNls String NAMESPACE_PACKAGE_TYPE = "Namespace Package";
|
||||
private static final @NonNls String ORDINARY_PACKAGE_TYPE = "Package";
|
||||
|
||||
|
||||
@Override
|
||||
public void actionPerformed(@NotNull AnActionEvent e) {
|
||||
final IdeView view = e.getData(LangDataKeys.IDE_VIEW);
|
||||
@@ -94,6 +95,11 @@ public final class CreatePackageAction extends DumbAwareAction {
|
||||
}, EmptyConsumer.getInstance());
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getCategory() {
|
||||
return "Python";
|
||||
}
|
||||
|
||||
private static CreateDirectoryOrPackageHandler getNewOrdinaryPackageHandler(@NotNull Project project,
|
||||
@NotNull PsiDirectory directory,
|
||||
@NotNull SmartPsiElementPointer<PsiDirectory> directoryPointer) {
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.jetbrains.python.actions;
|
||||
|
||||
import com.intellij.ide.actions.CreateFileFromTemplateAction;
|
||||
import com.intellij.ide.actions.CreateFileFromTemplateDialog;
|
||||
import com.intellij.ide.actions.NewFileActionWithCategory;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiDirectory;
|
||||
@@ -11,8 +12,7 @@ import com.jetbrains.python.PythonFileType;
|
||||
import com.jetbrains.python.pyi.PyiFileType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
||||
public class CreatePythonFileAction extends CreateFileFromTemplateAction implements DumbAware {
|
||||
public class CreatePythonFileAction extends CreateFileFromTemplateAction implements DumbAware, NewFileActionWithCategory {
|
||||
public CreatePythonFileAction() {
|
||||
super(PyBundle.messagePointer("action.create.python.file.title"), PyBundle.messagePointer("action.create.python.file.description"), PythonFileType.INSTANCE.getIcon());
|
||||
}
|
||||
@@ -30,4 +30,9 @@ public class CreatePythonFileAction extends CreateFileFromTemplateAction impleme
|
||||
protected String getActionName(PsiDirectory directory, @NotNull String newName, String templateName) {
|
||||
return PyBundle.message("create.python.file.script.action", newName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getCategory() {
|
||||
return "Python";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.xml.actions;
|
||||
|
||||
import com.intellij.ide.actions.NewFileActionWithCategory;
|
||||
import com.intellij.ide.actions.NonTrivialActionGroup;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
final class CreateXmlDescriptorGroup extends NonTrivialActionGroup implements NewFileActionWithCategory {
|
||||
@Override
|
||||
public @NotNull String getCategory() {
|
||||
return "XML";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user