Skip to content

Latest commit

 

History

History
 
 

intellij-feature-extractor

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

IntelliJ Feature Extractor

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.

Configuration types

A plugin author implements interface com.intellij.execution.configurations.ConfigurationType and specifies the id of the configuration type as return value of getId()

Facet types

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.

File extensions

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.

Artifact types

A plugin author implements abstract class com.intellij.packaging.artifacts.ArtifactType and passes the artifact id as first parameter to ArtifactType's constructor.

Module type

A plugin author implements abstract class com.intellij.openapi.module.ModuleType and passes the module id to super class constructor.

Dependency support

A plugin author declares a tag like <dependencySupport kind="java" coordinate="org.junit:org.junit" displayName="Junit"/> in the plugin.xml