Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0).

## 3.2.0

## 3.1.3

### Changed

- Require restart on plugin update due to using native libraries

### Fixed

- Class completion doesn't display interfaces
- Fixed invalid check 'setup_version' in the etc/module.xml

## 3.1.2

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion resources/META-INF/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* See COPYING.txt for license details.
*/
-->
<idea-plugin>
<idea-plugin require-restart="true">
<id>com.magento.idea.magento2plugin</id>
<name>Magento PhpStorm</name>
<version>3.2.0</version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ public static void open(
}

private void createUIComponents() {
final List<String> allModulesList = ModuleIndex.getInstance(project)
final List<String> allModulesList = new ModuleIndex(project)
.getEditableModuleNames();

this.pluginModule = new FilteredComboBox(allModulesList);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ public String getObserverModule() {
}

private void createUIComponents() { //NOPMD
final List<String> allModulesList = ModuleIndex.getInstance(project)
final List<String> allModulesList = new ModuleIndex(project)
.getEditableModuleNames();

this.observerModule = new FilteredComboBox(allModulesList);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ public NewModuleDialog(
this.project = project;
this.initialBaseDir = initialBaseDir;
this.camelCaseToHyphen = CamelCaseToHyphen.getInstance();
this.moduleIndex = ModuleIndex.getInstance(project);
this.moduleIndex = new ModuleIndex(project);
detectPackageName(initialBaseDir);
setContentPane(contentPane);
setModal(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ public static void open(final @NotNull Project project, final PhpClass targetCla
}

private void createUIComponents() {
final List<String> allModulesList = ModuleIndex.getInstance(project)
final List<String> allModulesList = new ModuleIndex(project)
.getEditableModuleNames();

this.preferenceModule = new FilteredComboBox(allModulesList);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ public static void open(final @NotNull Project project, final PsiFile psiFile) {
}

private void fillThemeOptions() {
final List<String> themeNames = ModuleIndex.getInstance(project).getEditableThemeNames();
final List<String> themeNames = new ModuleIndex(project).getEditableThemeNames();
for (final String themeName: themeNames) {
theme.addItem(themeName);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public CLICommandClassGenerator(
this.phpClassData = phpClassData;

this.dirGenerator = DirectoryGenerator.getInstance();
this.fileGenerator = FileFromTemplateGenerator.getInstance(project);
this.fileGenerator = new FileFromTemplateGenerator(project);
this.validatorBundle = new ValidatorBundle();
this.commonBundle = new CommonBundle();
}
Expand Down Expand Up @@ -83,7 +83,7 @@ private PhpFile createCLICommandClass(final String actionName) {
private PsiDirectory getParentDirectory() {
final String moduleName = this.phpClassData.getModuleName();
final String[] subDirectories = this.phpClassData.getParentDirectory().split("/");
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
PsiDirectory parentDirectory = new ModuleIndex(project)
.getModuleDirectoryByModuleName(moduleName);
for (final String subDirectory : subDirectories) {
parentDirectory = dirGenerator.findOrCreateSubdirectory(parentDirectory, subDirectory);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

package com.magento.idea.magento2plugin.actions.generation.generator;

import com.intellij.openapi.project.Project;
Expand All @@ -14,87 +15,98 @@
import com.magento.idea.magento2plugin.bundles.ValidatorBundle;
import com.magento.idea.magento2plugin.indexes.ModuleIndex;
import com.magento.idea.magento2plugin.magento.files.CronjobTemplate;
import org.jetbrains.annotations.NotNull;
import java.util.Properties;
import org.jetbrains.annotations.NotNull;

public class CronjobClassGenerator extends FileGenerator {
private CronjobClassData cronjobClassData;
private Project project;
private ValidatorBundle validatorBundle;
private final CronjobClassData cronjobClassData;
private final Project project;
private final ValidatorBundle validatorBundle;
private final DirectoryGenerator directoryGenerator;
private final FileFromTemplateGenerator fileFromTemplateGenerator;

/**
* @param project
* @param cronjobClassData
* Construct generator.
*
* @param project Project
* @param cronjobClassData CronjobClassData
*/
public CronjobClassGenerator(Project project, @NotNull CronjobClassData cronjobClassData) {
public CronjobClassGenerator(
final Project project,
final @NotNull CronjobClassData cronjobClassData
) {
super(project);
this.project = project;
this.cronjobClassData = cronjobClassData;

this.directoryGenerator = DirectoryGenerator.getInstance();
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
this.validatorBundle = new ValidatorBundle();
}

/**
* Generate file from code template.
*
* @param actionName
* @param actionName String
*
* @return void
*/
public PsiFile generate(String actionName) {
PhpFile cronjobFile = createCronjobClass(actionName);
@Override
public PsiFile generate(final String actionName) {
final PhpFile cronjobFile = createCronjobClass(actionName);

if (cronjobFile == null) {
String errorMessage = validatorBundle.message(
"validator.file.cantBeCreated",
"Cronjob Class"
final String errorMessage = validatorBundle.message(
"validator.file.cantBeCreated",
"Cronjob Class"
);

throw new RuntimeException(errorMessage);
throw new RuntimeException(errorMessage);//NOPMD
}

return cronjobFile;
}

/**
* Fill template attributes.
*
* @param attributes
* @param attributes Properties
*/
protected void fillAttributes(Properties attributes) {
String cronjobClassName = this.cronjobClassData.getClassName();
String cronjobNamespace = this.cronjobClassData.getNamespace();
@Override
protected void fillAttributes(final Properties attributes) {
final String cronjobClassName = this.cronjobClassData.getClassName();
final String cronjobNamespace = this.cronjobClassData.getNamespace();

attributes.setProperty("NAME", cronjobClassName);
attributes.setProperty("NAMESPACE", cronjobNamespace);
}

/**
* Generate Cronjob Class according to data model
* Generate Cronjob Class according to data model.
*
* @param actionName
* @param actionName String
*
* @return PhpFile
*/
private PhpFile createCronjobClass(String actionName) {
String cronjobClassName = this.cronjobClassData.getClassName();
String moduleName = this.cronjobClassData.getModuleName();
String[] cronjobSubDirectories = this.cronjobClassData.getDirectory().split("/");
PsiDirectory parentDirectory = ModuleIndex.getInstance(project).getModuleDirectoryByModuleName(moduleName);

for (String cronjobSubDirectory: cronjobSubDirectories) {
parentDirectory = directoryGenerator.findOrCreateSubdirectory(parentDirectory, cronjobSubDirectory);
private PhpFile createCronjobClass(final String actionName) {
final String cronjobClassName = this.cronjobClassData.getClassName();
final String moduleName = this.cronjobClassData.getModuleName();
final String[] cronjobSubDirectories = this.cronjobClassData.getDirectory().split("/");
PsiDirectory parentDirectory = new ModuleIndex(project)
.getModuleDirectoryByModuleName(moduleName);

for (final String cronjobSubDirectory: cronjobSubDirectories) {
parentDirectory = directoryGenerator
.findOrCreateSubdirectory(parentDirectory, cronjobSubDirectory);
}

Properties attributes = getAttributes();
final Properties attributes = getAttributes();

PsiFile blockFile = fileFromTemplateGenerator.generate(
new CronjobTemplate(cronjobClassName),
attributes,
parentDirectory,
actionName
final PsiFile blockFile = fileFromTemplateGenerator.generate(
new CronjobTemplate(cronjobClassName),
attributes,
parentDirectory,
actionName
);

if (blockFile == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public DataModelGenerator(final Project project, final DataModelData modelData)
this.project = project;
this.modelData = modelData;
this.directoryGenerator = DirectoryGenerator.getInstance();
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
this.getFirstClassOfFile = GetFirstClassOfFile.getInstance();
this.validatorBundle = new ValidatorBundle();
this.commonBundle = new CommonBundle();
Expand Down Expand Up @@ -122,7 +122,7 @@ private List<String> getUses() {
}

private PhpClass createModel(final String actionName) {
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
PsiDirectory parentDirectory = new ModuleIndex(project)
.getModuleDirectoryByModuleName(modelData.getModuleName());
final PsiFile interfaceFile;
final Properties attributes = getAttributes();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public DataModelInterfaceGenerator(
this.project = project;
this.interfaceData = interfaceData;
this.directoryGenerator = DirectoryGenerator.getInstance();
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
this.getFirstClassOfFile = GetFirstClassOfFile.getInstance();
this.validatorBundle = new ValidatorBundle();
this.commonBundle = new CommonBundle();
Expand Down Expand Up @@ -101,7 +101,7 @@ protected void fillAttributes(final Properties attributes) {
}

private PhpClass createInterface(final String actionName) {
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
PsiDirectory parentDirectory = new ModuleIndex(project)
.getModuleDirectoryByModuleName(interfaceData.getModuleName());
final PsiFile interfaceFile;
final Properties attributes = getAttributes();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public MessageQueueClassGenerator(

this.messageQueueClassDataName = messageQueueClassData;
this.directoryGenerator = DirectoryGenerator.getInstance();
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
this.validatorBundle = new ValidatorBundle();
this.commonBundle = new CommonBundle();
this.getFirstClassOfFile = GetFirstClassOfFile.getInstance();
Expand Down Expand Up @@ -112,7 +112,7 @@ protected void fillAttributes(final Properties attributes) {
}

private PhpClass createHandlerClass(final String actionName) {
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
PsiDirectory parentDirectory = new ModuleIndex(project)
.getModuleDirectoryByModuleName(this.moduleName);
final PsiFile handlerFile;
final String[] handlerDirectories = messageQueueClassDataName.getPath().split(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public ModuleBlockClassGenerator(
) {
super(project);
this.directoryGenerator = DirectoryGenerator.getInstance();
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
this.blockFileData = blockFileData;
this.project = project;
this.validatorBundle = new ValidatorBundle();
Expand Down Expand Up @@ -104,7 +104,7 @@ private String getBlockFqn() {
}

private PhpFile createBlockClass(final String actionName) {
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
PsiDirectory parentDirectory = new ModuleIndex(project)
.getModuleDirectoryByModuleName(getBlockModule());
final String[] blockDirectories = blockFileData.getBlockDirectory().split(File.separator);
for (final String blockDirectory: blockDirectories) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public ModuleCollectionGenerator(
this.project = project;
this.collectionData = collectionData;
this.directoryGenerator = DirectoryGenerator.getInstance();
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
this.getFirstClassOfFile = GetFirstClassOfFile.getInstance();
this.validatorBundle = new ValidatorBundle();
this.commonBundle = new CommonBundle();
Expand Down Expand Up @@ -123,7 +123,7 @@ private String getCollectionModelFqn() {
}

private PhpClass createClass(final String actionName) {
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
PsiDirectory parentDirectory = new ModuleIndex(project)
.getModuleDirectoryByModuleName(getModuleName());
final PsiFile modelFile;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ public ModuleComposerJsonGenerator(
) {
super(project);
this.moduleComposerJsonData = moduleComposerJsonData;
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
this.directoryGenerator = DirectoryGenerator.getInstance();
this.camelCaseToHyphen = CamelCaseToHyphen.getInstance();
this.moduleIndex = ModuleIndex.getInstance(project);
this.moduleIndex = new ModuleIndex(project);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public ModuleControllerClassGenerator(
this.project = project;
this.controllerFileData = controllerFileData;
this.directoryGenerator = DirectoryGenerator.getInstance();
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
this.getFirstClassOfFile = GetFirstClassOfFile.getInstance();
this.validatorBundle = new ValidatorBundle();
this.commonBundle = new CommonBundle();
Expand Down Expand Up @@ -144,7 +144,7 @@ private String getControllerFqn() {
}

private PhpClass createControllerClass(final String actionName) {
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
PsiDirectory parentDirectory = new ModuleIndex(project)
.getModuleDirectoryByModuleName(getControllerModule());
final PsiFile controllerFile;
final String[] controllerDirectories = controllerFileData.getActionDirectory().split(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ public ModuleEmailTemplateHtmlGenerator(

this.emailTemplateData = emailTemplateData;
this.project = project;
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
this.directoryGenerator = DirectoryGenerator.getInstance();
this.moduleIndex = ModuleIndex.getInstance(project);
this.moduleIndex = new ModuleIndex(project);
}

/**
Expand Down
Loading