mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-30 18:27:49 +08:00
Merge branch 'master' of https://github.com/LChernigovskaya/intellij-sdk-docs into LChernigovskaya-master
This commit is contained in:
commit
6bb206fd35
@ -225,7 +225,7 @@
|
||||
* Build Your Own IDE
|
||||
* Licensing
|
||||
|
||||
## Part X - Plugin Repository API
|
||||
## Part X - Plugin Repository
|
||||
* [Introduction](plugin_repository/index.md)
|
||||
* [API Reference](plugin_repository/api/api_reference.md)
|
||||
* [Plugin Upload](plugin_repository/api/plugin_upload.md)
|
||||
@ -234,6 +234,7 @@
|
||||
* [Plugin Update Download](plugin_repository/api/plugin_download_update.md)
|
||||
* [Maven Interface](plugin_repository/api/maven_interface.md)
|
||||
* [Plugin Developers List](plugin_repository/api/plugin_developers.md)
|
||||
* [Feature Extractor](plugin_repository/feature_extractor.md)
|
||||
* [Custom Release Channels](plugin_repository/custom_channels.md)
|
||||
|
||||
## Appendix I - Resources
|
||||
|
@ -4,6 +4,9 @@ title: Run Configurations
|
||||
|
||||
*Run Configurations* allow users to run a certain type of external processes from within the IDE, e.g. a script, an application, a server, etc. You can provide UI for the user to specify execution options, as well as an option to create a run configuration based on a specific location in the source code.
|
||||
|
||||
If you want IDEs to show a prompt to users that your plugin supports run configurations, look at the page about
|
||||
[feature extractor](/plugin_repository/feature_extractor.md).
|
||||
|
||||
# Architectural overview
|
||||
|
||||
Classes used to manipulate run configurations can be split into the following groups:
|
||||
@ -14,4 +17,3 @@ Classes used to manipulate run configurations can be split into the following gr
|
||||
This diagram shows the main classes:
|
||||
|
||||

|
||||
|
||||
|
73
plugin_repository/feature_extractor.md
Normal file
73
plugin_repository/feature_extractor.md
Normal file
@ -0,0 +1,73 @@
|
||||
---
|
||||
title: Feature Extractor
|
||||
---
|
||||
|
||||
The IntelliJ Platform IDEs will recommend a plugin for installation if the plugin provides additional features from this list:
|
||||
* Configuration Type
|
||||
* Facet Type
|
||||
* File Extensions Type
|
||||
* Module Type
|
||||
* Artifact Type
|
||||
|
||||
IntelliJ Platform IDEs only show plugin suggestions in the appropriate context so they are meaningful to the user.
|
||||
|
||||
The [`feature extractor`](https://github.com/JetBrains/intellij-plugin-verifier/tree/master/intellij-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](https://plugins.jetbrains.com/feature/), you can either make your code
|
||||
easier for the analysis, or ask JetBrains to manually add any missed feature types.
|
||||
|
||||
## Configuration Type
|
||||
|
||||
When you want IDEs to show that your plugin supports Run Configuration Type, you need to implement
|
||||
[ConfigurationType](https://github.com/JetBrains/intellij-community/blob/master/platform/lang-api/src/com/intellij/execution/configurations/ConfigurationType.java)
|
||||
and implement the `getId()` method. The `feature extractor` analyzes the value of `getId()`.
|
||||
|
||||
An suggestion to install plugins that support the *Run D App* Configuration Type:
|
||||
|
||||

|
||||
|
||||
Refer to [Run Configurations](/basics/run_configurations.md) 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](https://github.com/JetBrains/intellij-community/blob/master/platform/lang-api/src/com/intellij/facet/FacetType.java),
|
||||
and pass `stringId` to its constructor. The value of the `stringId` parameter will be analyzed by the `feature extractor`.
|
||||
|
||||
An notification to install plugins that support the *jangaroo* Facet Type:
|
||||
|
||||

|
||||
|
||||
Refer to [Facet](/reference_guide/project_model/facet.md) for additional information.
|
||||
|
||||
## File Extensions Type
|
||||
|
||||
A plugin can support specific types of 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](https://github.com/JetBrains/intellij-community/blob/master/platform/platform-api/src/com/intellij/openapi/fileTypes/FileTypeFactory.java)
|
||||
and feed supported file extensions in `createFileTypes(FileTypeConsumer)`. Values of `FileTypeConsumer` are analyzed by the `feature extractor`.
|
||||
|
||||
An suggestion to install plugins which support the _\*.d_ Extension Type:
|
||||
|
||||

|
||||
|
||||
Refer to [Registering a File Type](/reference_guide/custom_language_support/registering_file_type.md) to provide this feature in a plugin.
|
||||
|
||||
## Module Type
|
||||
|
||||
If you want IDEs to show a prompt that your plugin can support creating specific Module Types, you should extend
|
||||
[ModuleType](https://github.com/JetBrains/intellij-community/blob/master/platform/lang-api/src/com/intellij/openapi/module/ModuleType.java)
|
||||
and pass the `id` parameter for your Module Type to its constructor. The `feature extractor` will evaluate the values of `id`.
|
||||
|
||||
See [Module](/reference_guide/project_model/module.md) and [Supporting Module Types](/tutorials/project_wizard/module_types.md)
|
||||
for more information about supporting Module Types.
|
||||
|
||||
|
||||
## Artifact Type
|
||||
|
||||
To support specific Artifact Types, extend [ArtifactType](https://github.com/JetBrains/intellij-community/blob/master/java/compiler/openapi/src/com/intellij/packaging/artifacts/ArtifactType.java),
|
||||
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:
|
||||
|
||||

|
BIN
plugin_repository/img/feature_extractor_artifacts.png
Normal file
BIN
plugin_repository/img/feature_extractor_artifacts.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
BIN
plugin_repository/img/feature_extractor_configuration.png
Normal file
BIN
plugin_repository/img/feature_extractor_configuration.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.8 KiB |
BIN
plugin_repository/img/feature_extractor_extensions.png
Normal file
BIN
plugin_repository/img/feature_extractor_extensions.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.2 KiB |
BIN
plugin_repository/img/feature_extractor_facet.png
Normal file
BIN
plugin_repository/img/feature_extractor_facet.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
@ -2,19 +2,23 @@
|
||||
title: Plugin Repository (plugins.jetbrains.com)
|
||||
---
|
||||
|
||||
Plugins are extensions to JetBrains products core functionality. They provide various integrations (e.g. with a VCS or application servers), add support for various development technologies, frameworks and programming languages, and so on.
|
||||
Plugins extend the core functionality of JetBrains products. They provide various integrations (e.g. with a VCS or application servers),
|
||||
add support for various development technologies, frameworks and programming languages, and so on.
|
||||
|
||||
Plugin Repository is a service responsible for:
|
||||
The Plugin Repository is a service responsible for:
|
||||
|
||||
* Providing a product (e.g. IntelliJ IDEA) with a list of compatible plugins and their updates;
|
||||
|
||||
* Facilitating the download of the compatible plugin update;
|
||||
* Facilitating the download of compatible plugin updates;
|
||||
|
||||
* Storage, uploading, and management of the plugins and their updates developed and published by third-party vendors or JetBrains.
|
||||
|
||||
JetBrains provides an official plugins repository [plugins.jetbrains.com](https://plugins.jetbrains.com) service for all IntelliJ Platform-based IDEs, as well as TeamCity (limited functionality).
|
||||
JetBrains provides an official plugins repository [plugins.jetbrains.com](https://plugins.jetbrains.com) for all IntelliJ Platform-based IDEs,
|
||||
as well as TeamCity (limited functionality).
|
||||
|
||||
You can set up your own, enterprise plugin repositories for IntelliJ Platform based IDEs (also known as custom plugin repositories), for example, to store plugins that you want to reserve for your company's internal use only. [Read more](https://www.jetbrains.com/help/idea/managing-enterprise-plugin-repositories.html) about IntelliJ Platform-based IDEs enterprise repositories support.
|
||||
You can set up your own enterprise plugin repositories for IntelliJ Platform based IDEs (also known as custom plugin repositories).
|
||||
For example, to store plugins that you want to reserve for your company's internal use only.
|
||||
[Read more](https://www.jetbrains.com/help/idea/managing-enterprise-plugin-repositories.html) about IntelliJ Platform-based IDEs enterprise repositories support.
|
||||
|
||||
This documentation section includes articles, FAQs, and tutorials on [JetBrains plugin repository](https://plugins.jetbrains.com) operations.
|
||||
|
||||
@ -27,6 +31,7 @@ In this section:
|
||||
* [Plugin Update Download](/plugin_repository/api/plugin_download_update.md)
|
||||
* [Maven Interface](/plugin_repository/api/maven_interface.md)
|
||||
* [Plugin Developers List](/plugin_repository/api/plugin_developers.md)
|
||||
* [Feature Extractor](/plugin_repository/feature_extractor.md)
|
||||
* [Custom Release Channels](/plugin_repository/custom_channels.md)
|
||||
|
||||
You can always reach out to the plugin repository team via email [plugins-admin@jetbrains.com](plugins-admin@jetbrains.com).
|
||||
|
@ -2,7 +2,7 @@
|
||||
title: Registering a File Type
|
||||
---
|
||||
|
||||
The first step in developing a custom language plugin is registering a file type the language will be associated with.
|
||||
The first step in developing a custom language plugin is registering a file type associated with the language.
|
||||
The IDE normally determines the type of a file by looking at its file name.
|
||||
|
||||
A custom language file type is a class derived from
|
||||
@ -22,3 +22,7 @@ subclass in
|
||||
To verify that the file type is registered correctly, you can implement the
|
||||
[LanguageFileType.getIcon()](upsource:///platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java)
|
||||
method and verify that the correct icon is displayed for files which have the extension(s) associated with your file type.
|
||||
|
||||
If you want IDEs to show a hint prompting users that your plugin supports some extensions as in the example below, look at the information about [the feature extractor](/plugin_repository/feature_extractor.md).
|
||||
|
||||

|
||||
|
@ -10,3 +10,8 @@ For more information about facets see [Adding Support for Frameworks and Technol
|
||||
|
||||
To access the list of facets for a module, use the [FacetManager](upsource:///platform/lang-api/src/com/intellij/facet/FacetManager.java)
|
||||
and [Facet](upsource:///platform/lang-api/src/com/intellij/facet/Facet.java) classes.
|
||||
|
||||
|
||||
If you want IDEs to notify users that your plugin supports a facet as in the example below, look at the information about [the feature extractor](/plugin_repository/feature_extractor.md).
|
||||
|
||||

|
||||
|
@ -5,6 +5,7 @@ title: Supporting Module Types
|
||||
*IntelliJ Platform* provides a set of standard module types which can be chosen, however, you might need to create a module of a type that isn't supported yet.
|
||||
This tutorial shows how to register a new module type and link it to the project creation procedure and the UI.
|
||||
|
||||
If you want IDEs to suggest to users that your plugin supports a module type, look at the page about [feature extractor](/plugin_repository/feature_extractor.md).
|
||||
## Pre-requirements
|
||||
|
||||
Create an empty plugin project,
|
||||
|
@ -13,6 +13,7 @@ Welcome to the _IntelliJ Platform_ SDK. This is the primary source of documentat
|
||||
* [**Key Topics**](intro/key_topics.md)
|
||||
* [**Getting Help**](intro/getting_help.md)
|
||||
* [**Getting Started**](/basics/getting_started.md)
|
||||
* [**Plugin Features**](/plugin_repository/feature_extractor.md)
|
||||
* [**Resources**](resources.md)
|
||||
|
||||
## Open Source
|
||||
|
Loading…
x
Reference in New Issue
Block a user