From c995da7fee18bdae41958cc127421f3a6a53bb36 Mon Sep 17 00:00:00 2001 From: Nikolay Chashnikov Date: Wed, 26 Feb 2025 16:11:09 +0100 Subject: [PATCH] [devkit] don't allow 'loading' attribute in 'module' tag in 'dependencies' tag (IJPL-179126) It was never supposed to be used, but it was shown in completion because DependencyDescriptor reused ModuleDescriptor interface from ContentDescriptor. (cherry picked from commit ea13f263a6a197832c994d7e88e093d48ce2448c) IJ-CR-156218 GitOrigin-RevId: 4db251089fd421e0d4dff7d59ebb9ac2efd4d017 --- .../devkit-core/src/dom/DependencyDescriptor.java | 15 +++++++++++++-- .../src/dom/index/PluginIdDependenciesIndex.java | 2 +- .../anotherModule.secondary-descriptor2.xml | 3 +++ .../mypackage/subpackage2/Dummy.java | 0 .../mainModule/META-INF/plugin.xml | 3 ++- 5 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 plugins/devkit/devkit-java-tests/testData/codeInsight/contentDependencyDescriptor/dependencyDescriptorHighlighting/anotherModule/anotherModule.secondary-descriptor2.xml create mode 100644 plugins/devkit/devkit-java-tests/testData/codeInsight/contentDependencyDescriptor/dependencyDescriptorHighlighting/anotherModule/mypackage/subpackage2/Dummy.java diff --git a/plugins/devkit/devkit-core/src/dom/DependencyDescriptor.java b/plugins/devkit/devkit-core/src/dom/DependencyDescriptor.java index caf2c04de38f..7dfe5c316949 100644 --- a/plugins/devkit/devkit-core/src/dom/DependencyDescriptor.java +++ b/plugins/devkit/devkit-core/src/dom/DependencyDescriptor.java @@ -5,6 +5,7 @@ import com.intellij.ide.presentation.Presentation; import com.intellij.util.xml.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.devkit.dom.impl.IdeaPluginConverter; +import org.jetbrains.idea.devkit.dom.impl.ModuleDescriptorNameConverter; import java.util.List; @@ -14,10 +15,10 @@ public interface DependencyDescriptor extends DomElement { @NotNull @Stubbed @SubTagList("module") - List getModuleEntry(); + List getModuleEntry(); @SubTagList("module") - ContentDescriptor.ModuleDescriptor addModuleEntry(); + ModuleDescriptor addModuleEntry(); @NotNull @Stubbed @@ -37,4 +38,14 @@ public interface DependencyDescriptor extends DomElement { @NameValue(referencable = false) GenericAttributeValue getId(); } + + @Presentation(icon = "AllIcons.Nodes.Module") + interface ModuleDescriptor extends DomElement { + @NotNull + @Required + @Stubbed + @NameValue(referencable = false) + @Convert(ModuleDescriptorNameConverter.class) + GenericAttributeValue getName(); + } } diff --git a/plugins/devkit/devkit-core/src/dom/index/PluginIdDependenciesIndex.java b/plugins/devkit/devkit-core/src/dom/index/PluginIdDependenciesIndex.java index 0e2b628470e0..4bd4635daa17 100644 --- a/plugins/devkit/devkit-core/src/dom/index/PluginIdDependenciesIndex.java +++ b/plugins/devkit/devkit-core/src/dom/index/PluginIdDependenciesIndex.java @@ -77,7 +77,7 @@ public final class PluginIdDependenciesIndex extends PluginXmlIndexBase + + \ No newline at end of file diff --git a/plugins/devkit/devkit-java-tests/testData/codeInsight/contentDependencyDescriptor/dependencyDescriptorHighlighting/anotherModule/mypackage/subpackage2/Dummy.java b/plugins/devkit/devkit-java-tests/testData/codeInsight/contentDependencyDescriptor/dependencyDescriptorHighlighting/anotherModule/mypackage/subpackage2/Dummy.java new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/plugins/devkit/devkit-java-tests/testData/codeInsight/contentDependencyDescriptor/dependencyDescriptorHighlighting/mainModule/META-INF/plugin.xml b/plugins/devkit/devkit-java-tests/testData/codeInsight/contentDependencyDescriptor/dependencyDescriptorHighlighting/mainModule/META-INF/plugin.xml index 66526f7cc1d1..5eaee9ed20c8 100644 --- a/plugins/devkit/devkit-java-tests/testData/codeInsight/contentDependencyDescriptor/dependencyDescriptorHighlighting/mainModule/META-INF/plugin.xml +++ b/plugins/devkit/devkit-java-tests/testData/codeInsight/contentDependencyDescriptor/dependencyDescriptorHighlighting/mainModule/META-INF/plugin.xml @@ -7,8 +7,9 @@ invalid.module"/> + loading="required"/> - + invalid.plugin.id"/>