From e21494d9d3f78a81efa9c1bc56ecf90d0dfa1e92 Mon Sep 17 00:00:00 2001 From: makzef Date: Wed, 20 Jul 2022 17:01:09 +0300 Subject: [PATCH 1/2] 1111: Add context dependent action for generation of README.md --- resources/META-INF/plugin.xml | 1 + .../actions/context/md/NewReadmeMdAction.java | 56 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 src/com/magento/idea/magento2plugin/actions/context/md/NewReadmeMdAction.java diff --git a/resources/META-INF/plugin.xml b/resources/META-INF/plugin.xml index a75fbd09a..6334bf93f 100644 --- a/resources/META-INF/plugin.xml +++ b/resources/META-INF/plugin.xml @@ -77,6 +77,7 @@ + diff --git a/src/com/magento/idea/magento2plugin/actions/context/md/NewReadmeMdAction.java b/src/com/magento/idea/magento2plugin/actions/context/md/NewReadmeMdAction.java new file mode 100644 index 000000000..a9b9a9f71 --- /dev/null +++ b/src/com/magento/idea/magento2plugin/actions/context/md/NewReadmeMdAction.java @@ -0,0 +1,56 @@ +/* + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +package com.magento.idea.magento2plugin.actions.context.md; + +import com.intellij.ide.fileTemplates.actions.AttributesDefaults; +import com.intellij.psi.PsiDirectory; +import com.intellij.psi.PsiFile; +import com.magento.idea.magento2plugin.actions.context.AbstractContextAction; +import com.magento.idea.magento2plugin.indexes.ModuleIndex; +import com.magento.idea.magento2plugin.magento.files.ModuleReadmeMdFile; +import com.magento.idea.magento2plugin.magento.packages.ComponentType; +import com.magento.idea.magento2plugin.magento.packages.Package; +import com.magento.idea.magento2plugin.util.magento.GetMagentoModuleUtil; +import org.jetbrains.annotations.NotNull; + +public class NewReadmeMdAction extends AbstractContextAction { + + public static final String ACTION_NAME = "Magento 2 README File"; + public static final String ACTION_DESCRIPTION = "Create a new Magento 2 README file"; + + public NewReadmeMdAction() { + super(ACTION_NAME, ACTION_DESCRIPTION, new ModuleReadmeMdFile()); + } + + @Override + protected boolean isVisible( + final @NotNull GetMagentoModuleUtil.MagentoModuleData moduleData, + final PsiDirectory targetDirectory, + final PsiFile targetFile + ) { + final PsiDirectory moduleDirectory = new ModuleIndex(targetDirectory.getProject()) + .getModuleDirectoryByModuleName(moduleData.getName()); + final String magentoModuleName = moduleData.getName().split(Package.vendorModuleNameSeparator)[1]; + + return targetDirectory.getName().equals(magentoModuleName) + && targetDirectory.equals(moduleDirectory) + && moduleData.getType().equals(ComponentType.module); + } + + @Override + protected AttributesDefaults getProperties( + final @NotNull AttributesDefaults defaults, + final @NotNull GetMagentoModuleUtil.MagentoModuleData moduleData, + final PsiDirectory targetDirectory, + final PsiFile targetFile + ) { + final String[] templateData = moduleData.getName().split(Package.vendorModuleNameSeparator); + defaults.addPredefined("PACKAGE", templateData[0]); + defaults.addPredefined("MODULE_NAME", templateData[1]); + + return defaults; + } +} From 2d25d90d9513eed75a95923b6e00c3a909fbb5fd Mon Sep 17 00:00:00 2001 From: bohdan-harniuk Date: Mon, 8 Aug 2022 13:47:50 +0300 Subject: [PATCH 2/2] 1111: Bugfix, code refactoring --- .../actions/context/md/NewReadmeMdAction.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/actions/context/md/NewReadmeMdAction.java b/src/com/magento/idea/magento2plugin/actions/context/md/NewReadmeMdAction.java index a9b9a9f71..f996596cd 100644 --- a/src/com/magento/idea/magento2plugin/actions/context/md/NewReadmeMdAction.java +++ b/src/com/magento/idea/magento2plugin/actions/context/md/NewReadmeMdAction.java @@ -31,13 +31,17 @@ protected boolean isVisible( final PsiDirectory targetDirectory, final PsiFile targetFile ) { + if (!moduleData.getType().equals(ComponentType.module)) { + return false; + } final PsiDirectory moduleDirectory = new ModuleIndex(targetDirectory.getProject()) .getModuleDirectoryByModuleName(moduleData.getName()); - final String magentoModuleName = moduleData.getName().split(Package.vendorModuleNameSeparator)[1]; + final String magentoModuleName = moduleData + .getName() + .split(Package.vendorModuleNameSeparator)[1]; return targetDirectory.getName().equals(magentoModuleName) - && targetDirectory.equals(moduleDirectory) - && moduleData.getType().equals(ComponentType.module); + && targetDirectory.equals(moduleDirectory); } @Override