The IntelliJ Platform IDEs may recommend a plugin for installation in one of the following cases:
If a project contains files of types which are unsupported by the running IDE but are supported by a plugin available in the plugin repository.
If a project was created in different IDE installation which had the plugin installed, and includes shared settings (modules, facets, artifacts, or run configurations) configured using the plugin.
IntelliJ Platform IDEs only show plugin suggestions in the appropriate context, so they are meaningful to the user.
The Feature Extractor tool catalogs these types of features for a plugin. It works by statically analyzing the bytecode of a plugin to extract values passed to the IntelliJ Platform APIs that support extending features in the above list.
However, if values are dynamically evaluated in a plugin, the feature extractor may return incomplete results.
If you cannot find your plugin in the list of features, you can either make your code easier for the analysis or ask JetBrains to add manually any missed feature types.
A plugin can support specific File Types. When there is a file with a specific extension, pattern or name open in an IDE, a hint will be shown to users prompting them to install your plugin.
Both variants are supported by the feature extractor:
Extend FileTypeFactory and feed supported file extensions/exact file name matches in
createFileTypes(FileTypeConsumer), values of
com.intellij.fileTypeextension point (available in 2019.2+), all attributes are analyzed.
A suggestion to install plugins which support the
_\*.d_ Extension Type:
Refer to Registering a File Type to provide this feature in a plugin.
Run Configuration Type
When you want IDEs to show that your plugin supports Run Configuration Type, you need to implement ConfigurationType and implement the
getId() method. The feature extractor analyzes the value of
A suggestion to install plugins that support the Run D App Configuration Type:
Refer to Run Configurations to get more information about how to declare this feature in your plugin.
To support a Facet Type feature, you should extend FacetType, and pass
stringId to its constructor. The value of the
stringId parameter will be analyzed by the feature extractor.
A notification to install plugins that support the jangaroo Facet Type:
Refer to Facet for additional information.
If you want IDEs to show a prompt that your plugin can support creating specific Module Types, you should extend ModuleType and pass the
id parameter for your Module Type to its constructor. The feature extractor will evaluate the values of
To support specific Artifact Types, extend ArtifactType, and pass an
id parameter to its constructor. The value of the
id parameter is analyzed by the feature extractor.
An example suggestion to enable a plugin which supports a dm.bundle Artifact Type:
To support a specific dependency you should declare a tag like
in the plugin.xml file.