4.3 KiB
title |
---|
Plugin Recommendations |
The IntelliJ Platform IDEs will 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 an 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 manually add any missed feature types.
File Type
A plugin can support specific file types (file extensions). When there is a file with a specific extension open in an IDE, a hint will be shown to users prompting them to install your plugin.
You should extend FileTypeFactory
and feed supported file extensions in createFileTypes(FileTypeConsumer)
. Values of FileTypeConsumer
are analyzed by the feature extractor
.
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 getId()
.
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.
Facet Type
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.
Module Type
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 id
.
See Module and Supporting Module Types for more information about supporting Module Types.
Artifact Type
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: