diff --git a/resources/META-INF/plugin.xml b/resources/META-INF/plugin.xml
index b71c925b5..a3f9dffd1 100644
--- a/resources/META-INF/plugin.xml
+++ b/resources/META-INF/plugin.xml
@@ -63,6 +63,7 @@
+
@@ -566,6 +567,7 @@
+
diff --git a/resources/fileTemplates/internal/Magento Config XML.xml.ft b/resources/fileTemplates/internal/Magento Config XML.xml.ft
new file mode 100644
index 000000000..0a6d873f7
--- /dev/null
+++ b/resources/fileTemplates/internal/Magento Config XML.xml.ft
@@ -0,0 +1,5 @@
+
+#parse("XML File Header.xml")
+
+
diff --git a/resources/fileTemplates/internal/Magento Config XML.xml.html b/resources/fileTemplates/internal/Magento Config XML.xml.html
new file mode 100644
index 000000000..8b8a0fee2
--- /dev/null
+++ b/resources/fileTemplates/internal/Magento Config XML.xml.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+ The config.xml file is used to set default values for system configuration
+ (in Admin under Stores > Settings > Configuration), set in module_folder/etc/adminhtml/system.xml.
+
+ |
+
+
+
+
diff --git a/src/com/magento/idea/magento2plugin/actions/context/xml/NewConfigXmlAction.java b/src/com/magento/idea/magento2plugin/actions/context/xml/NewConfigXmlAction.java
new file mode 100644
index 000000000..76cdd1060
--- /dev/null
+++ b/src/com/magento/idea/magento2plugin/actions/context/xml/NewConfigXmlAction.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+package com.magento.idea.magento2plugin.actions.context.xml;
+
+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.magento.files.ModuleConfigXmlFile;
+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 NewConfigXmlAction extends AbstractContextAction {
+
+ public static final String ACTION_NAME = "Magento 2 Config File";
+ public static final String ACTION_DESCRIPTION = "Create a new Magento 2 config.xml file";
+
+ /**
+ * New config.xml file generation action constructor.
+ */
+ public NewConfigXmlAction() {
+ super(ACTION_NAME, ACTION_DESCRIPTION, new ModuleConfigXmlFile());
+ }
+
+ @Override
+ protected boolean isVisible(
+ final @NotNull GetMagentoModuleUtil.MagentoModuleData moduleData,
+ final @NotNull PsiDirectory targetDirectory,
+ final PsiFile targetFile
+ ) {
+ return targetDirectory.getName().equals(Package.moduleBaseAreaDir)
+ && moduleData.getType().equals(ComponentType.module);
+ }
+
+ @Override
+ protected AttributesDefaults getProperties(
+ final @NotNull AttributesDefaults defaults,
+ final @NotNull GetMagentoModuleUtil.MagentoModuleData moduleData,
+ final PsiDirectory targetDirectory,
+ final PsiFile targetFile
+ ) {
+ return defaults;
+ }
+}
diff --git a/src/com/magento/idea/magento2plugin/magento/files/ModuleConfigXmlFile.java b/src/com/magento/idea/magento2plugin/magento/files/ModuleConfigXmlFile.java
new file mode 100644
index 000000000..2726ead9c
--- /dev/null
+++ b/src/com/magento/idea/magento2plugin/magento/files/ModuleConfigXmlFile.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+package com.magento.idea.magento2plugin.magento.files;
+
+import com.intellij.lang.Language;
+import com.intellij.lang.xml.XMLLanguage;
+
+public final class ModuleConfigXmlFile implements ModuleFileInterface {
+
+ public static final String FILE_NAME = "config.xml";
+ public static final String TEMPLATE = "Magento Config XML";
+
+ @Override
+ public String getFileName() {
+ return FILE_NAME;
+ }
+
+ @Override
+ public String getTemplate() {
+ return TEMPLATE;
+ }
+
+ @Override
+ public Language getLanguage() {
+ return XMLLanguage.INSTANCE;
+ }
+}