This is a tool used by JetBrains Marketplace to determine a set of supported plugin's features.
The features are specified using IntelliJ API. In most cases the features are specified as string constants. The tool extracts the constant values from class files using bytecode analysis. There are tricky cases which are hard to analyse without running the plugin's code. In such cases the feature extractor may return incomplete results. The list of extracted plugin features can be seen on this page.
A plugin author implements interface com.intellij.execution.configurations.ConfigurationType
and specifies the id
of the configuration type as return value of getId()
A plugin author implements abstract class com.intellij.facet.FacetType
as passes the facet type id
as a second parameter to one of FacetType
's constructor.
A plugin author implements abstract class com.intellij.openapi.fileTypes.FileTypeFactory
and feeds the com.intellij.openapi.fileTypes.FileTypeConsumer
to the only abstract method with supported file extensions.
A plugin author implements abstract class com.intellij.packaging.artifacts.ArtifactType
and passes the artifact id
as first parameter to ArtifactType
's constructor.
A plugin author implements abstract class com.intellij.openapi.module.ModuleType
and passes the module id
to super class constructor.
A plugin author declares a tag like <dependencySupport kind="java" coordinate="org.junit:org.junit" displayName="Junit"/>
in the plugin.xml