mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-28 01:07:49 +08:00
update to 2021.3 release
This commit is contained in:
parent
a7aac0e482
commit
3c1678a289
@ -27,8 +27,8 @@
|
||||
<noindex-content-in-eap>false</noindex-content-in-eap>
|
||||
<noindex-content-in-release>false</noindex-content-in-release>
|
||||
|
||||
<upsource-commit-hash>8f0275fd7faaeafdb8900147eab3d256fe4221cb</upsource-commit-hash>
|
||||
<upsource-tag>212.5457.46</upsource-tag>
|
||||
<upsource-commit-hash>2020312d547dd0b755241d10a1a3eec025f8efe7</upsource-commit-hash>
|
||||
<upsource-tag>213.5744.223</upsource-tag>
|
||||
<upsource-repo-name>idea-ce</upsource-repo-name>
|
||||
<upsource-server-address>upsource.jetbrains.com</upsource-server-address>
|
||||
<product-web-url>https://plugins.jetbrains.com/docs/intellij/</product-web-url>
|
||||
|
@ -127,7 +127,7 @@ Override text presentation for actions depending on menu context
|
||||
: Set the [`<override-text>`](basic_action_system.md#setting-the-override-text-element) element within the `<action>` declaration in <path>plugin.xml</path>.
|
||||
|
||||
Changes in Project Open/Import
|
||||
: **Import from Existing Sources** has been removed from the Welcome Screen, leaving only **Open or Import**, which calls a different extension than the one previously used to contribute a wizard step to **Import from Existing Sources** (which is still available in the **File** menu). To support **Open or Import**, a plugin must provide [`ProjectOpenProcessor`](upsource:///platform/platform-api/src/com/intellij/projectImport/ProjectOpenProcessor.java).
|
||||
: **Import from Existing Sources** has been removed from the Welcome Screen, leaving only **Open or Import**, which calls a different extension than the one previously used to contribute a wizard step to **Import from Existing Sources** (which is still available in the **File** menu). To support **Open or Import**, a plugin must provide [`ProjectOpenProcessor`](upsource:///platform/ide-core/src/com/intellij/projectImport/ProjectOpenProcessor.java).
|
||||
`ProjectOpenProcessor.canOpenProject()` should return `true` for the folder selected by the user only if it guarantees `doOpenProject()` can handle it. If there are several matching processors, a simple choice dialog is shown. If additional manual configuration is necessary, a modal dialog can be shown in `doOpenProject()` - however, it is highly recommended performing all setup automatically (like Maven and Gradle plugins do).
|
||||
|
||||
### IntelliJ IDEA 2020.1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -108,7 +108,7 @@ Every action and action group has a unique identifier.
|
||||
Basing the identifier for a custom action on the FQN of the implementation is the best practice, assuming the package incorporates the `<id>` of the plugin.
|
||||
An action must have a unique identifier for each place.
|
||||
It is used in the IDE UI, even though the FQN of the implementation is the same.
|
||||
Definitions of identifiers for the standard IntelliJ Platform actions are in [`IdeActions`](upsource:///platform/platform-api/src/com/intellij/openapi/actionSystem/IdeActions.java).
|
||||
Definitions of identifiers for the standard IntelliJ Platform actions are in [`IdeActions`](upsource:///platform/ide-core/src/com/intellij/openapi/actionSystem/IdeActions.java).
|
||||
|
||||
### Grouping Actions
|
||||
Groups organize actions into logical UI structures, which in turn can contain other groups.
|
||||
@ -240,7 +240,7 @@ If `<override-text>` is used for a group `id`, the key includes the `<place>` at
|
||||
|
||||
|
||||
#### Action Declaration Reference
|
||||
The places where actions can appear are defined by constants in [`ActionPlaces`](upsource:///platform/platform-api/src/com/intellij/openapi/actionSystem/ActionPlaces.java).
|
||||
The places where actions can appear are defined by constants in [`ActionPlaces`](upsource:///platform/ide-core/src/com/intellij/openapi/actionSystem/ActionPlaces.java).
|
||||
Group IDs for the IntelliJ Platform are defined in [`PlatformActions.xml`](upsource:///platform/platform-resources/src/idea/PlatformActions.xml).
|
||||
|
||||
This, and additional information can also be found by using the [Code Completion](https://www.jetbrains.com/help/idea/auto-completing-code.html#invoke-basic-completion), [Quick Definition](https://www.jetbrains.com/help/idea/viewing-reference-information.html#view-definition-symbols) and [Quick Documentation](https://www.jetbrains.com/help/idea/viewing-reference-information.html#inline-quick-documentation) features.
|
||||
|
@ -25,7 +25,7 @@ Unlike [Developing Custom Language Plugins](custom_language_support.md), it talk
|
||||
|
||||
### How can I cause the PSI for a virtual file to be rebuilt?
|
||||
|
||||
[`FileContentUtil.reparseFiles()`](upsource:///platform/lang-api/src/com/intellij/util/FileContentUtil.java)
|
||||
[`FileContentUtil.reparseFiles()`](upsource:///platform/analysis-api/src/com/intellij/util/FileContentUtil.java)
|
||||
|
||||
## Java Specific
|
||||
|
||||
|
@ -6,21 +6,21 @@ The standard execution of a run action goes through the following steps:
|
||||
|
||||
* The user selects a *run configuration* (for example, by choosing one from the run configurations combobox) and an *executor* (for example, by pressing a toolbar button created by the executor).
|
||||
* The *program runner* that will actually execute the process is selected by polling all registered program runners and asking whether they can run the specified run profile with the specified executor ID.
|
||||
* The [`ExecutionEnvironment`](upsource:///platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java) object is created.
|
||||
This object aggregates all the settings required to execute the process and the selected [`ProgramRunner`](upsource:///platform/lang-api/src/com/intellij/execution/runners/ProgramRunner.java).
|
||||
* The [`ExecutionEnvironment`](upsource:///platform/execution/src/com/intellij/execution/runners/ExecutionEnvironment.java) object is created.
|
||||
This object aggregates all the settings required to execute the process and the selected [`ProgramRunner`](upsource:///platform/execution/src/com/intellij/execution/runners/ProgramRunner.java).
|
||||
* `ProgramRunner.execute()` is called, receiving the executor and the execution environment.
|
||||
|
||||
Implementations of `ProgramRunner.execute()` go through the following steps to execute the process:
|
||||
|
||||
* `RunProfile.getState()` method is called to create a [`RunProfileState`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/RunProfileState.java) object, describing a process about to be started.
|
||||
* `RunProfile.getState()` method is called to create a [`RunProfileState`](upsource:///platform/execution/src/com/intellij/execution/configurations/RunProfileState.java) object, describing a process about to be started.
|
||||
At this stage, the command line parameters, environment variables, and other information required to start the process are initialized.
|
||||
* `RunProfileState.execute()` is called.
|
||||
It starts the process, attaches a `ProcessHandler` to its input and output streams, creates a console to display the process output, and returns an [`ExecutionResult`](upsource:///platform/lang-api/src/com/intellij/execution/ExecutionResult.java) object aggregating the console and the process handler.
|
||||
It starts the process, attaches a `ProcessHandler` to its input and output streams, creates a console to display the process output, and returns an [`ExecutionResult`](upsource:///platform/execution/src/com/intellij/execution/ExecutionResult.java) object aggregating the console and the process handler.
|
||||
* The `RunContentBuilder` object is created and invoked to display the execution console in a tab of the Run or Debug tool window.
|
||||
|
||||
## Executor
|
||||
|
||||
The [`Executor`](upsource:///platform/lang-api/src/com/intellij/execution/Executor.java) interface describes a specific way of executing any possible run configuration.
|
||||
The [`Executor`](upsource:///platform/execution/src/com/intellij/execution/Executor.java) interface describes a specific way of executing any possible run configuration.
|
||||
|
||||
The three default executors provided by the IntelliJ Platform by default are _Run_, _Debug_, and _Run with Coverage_. Each executor gets its own toolbar button, which starts the selected run configuration using this executor, and its own context menu item for starting a configuration using this executor.
|
||||
|
||||
@ -32,8 +32,8 @@ However, it can be useful, for example, if you're implementing a profiler integr
|
||||
The `RunProfileState` interface comes up in every run configuration implementation as the return value `RunProfile.getState()`.
|
||||
It describes a process that is ready to be started and holds information like the command line, current working directory, and environment variables for the process to be started. (The existence of `RunProfileState` as a separate step in the execution flow allows run configuration extensions and other components to patch the configuration and modify the parameters before it gets executed.)
|
||||
|
||||
The standard base class used as implementation of `RunProfileState` is [`CommandLineState`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/CommandLineState.java).
|
||||
It contains the logic for putting together a running process and a console into an [`ExecutionResult`](upsource:///platform/lang-api/src/com/intellij/execution/ExecutionResult.java), but doesn't know anything how the process is actually started.
|
||||
The standard base class used as implementation of `RunProfileState` is [`CommandLineState`](upsource:///platform/execution/src/com/intellij/execution/configurations/CommandLineState.java).
|
||||
It contains the logic for putting together a running process and a console into an [`ExecutionResult`](upsource:///platform/execution/src/com/intellij/execution/ExecutionResult.java), but doesn't know anything how the process is actually started.
|
||||
For starting the process, it's best to use the [`GeneralCommandLine`](upsource:///platform/platform-util-io/src/com/intellij/execution/configurations/GeneralCommandLine.java) class, which takes care of setting up the command line parameters and executing the process.
|
||||
|
||||
Alternatively, if the process you need to run is a JVM-based one, you can use the [`JavaCommandLineState`](upsource:///java/execution/impl/src/com/intellij/execution/configurations/JavaCommandLineState.java) base class.
|
||||
@ -41,19 +41,19 @@ It knows about the JVM command line parameters and can take care of details like
|
||||
|
||||
To monitor the execution of a process and capture its output, the [`OSProcessHandler`](upsource:///platform/platform-util-io/src/com/intellij/execution/process/OSProcessHandler.java) class is usually used.
|
||||
Once you've created an instance of `OSProcessHandler` from either a command line or a Process object, you need to call the `startNotify()` method to capture its output.
|
||||
You may also want to attach a [`ProcessTerminatedListener`](upsource:///platform/platform-api/src/com/intellij/execution/process/ProcessTerminatedListener.java) to the `OSProcessHandler` so that the exit status of the process will be displayed in the console.
|
||||
You may also want to attach a [`ProcessTerminatedListener`](upsource:///platform/ide-core/src/com/intellij/execution/process/ProcessTerminatedListener.java) to the `OSProcessHandler` so that the exit status of the process will be displayed in the console.
|
||||
|
||||
## Displaying Process Output
|
||||
|
||||
If you're using `CommandLineState`, a console view will be automatically created and attached to the process's output.
|
||||
Alternatively, you can arrange this yourself:
|
||||
|
||||
* `TextConsoleBuilderFactory.createBuilder(project).getConsole()` creates a [`ConsoleView`](upsource:///platform/lang-api/src/com/intellij/execution/ui/ConsoleView.java) instance
|
||||
* `TextConsoleBuilderFactory.createBuilder(project).getConsole()` creates a [`ConsoleView`](upsource:///platform/execution/src/com/intellij/execution/ui/ConsoleView.java) instance
|
||||
* `ConsoleView.attachToProcess()` attaches it to the output of a process.
|
||||
|
||||
If the running process uses ANSI escape codes to color its output, the [`ColoredProcessHandler`](upsource:///platform/platform-impl/src/com/intellij/execution/process/ColoredProcessHandler.java) class will parse it and display the colors in the IntelliJ console.
|
||||
If the running process uses ANSI escape codes to color its output, the [`ColoredProcessHandler`](upsource:///platform/platform-util-io/src/com/intellij/execution/process/ColoredProcessHandler.java) class will parse it and display the colors in the IntelliJ console.
|
||||
|
||||
Console [filters](upsource:///platform/lang-api/src/com/intellij/execution/filters/Filter.java) allow you to convert certain strings found in the process output to clickable hyperlinks.
|
||||
Console [`Filter`](upsource:///platform/execution/src/com/intellij/execution/filters/Filter.java) allows you to convert certain strings found in the process output to clickable hyperlinks.
|
||||
To attach a filter to the console, use `CommandLineState.addConsoleFilters()` or, if you're creating a console manually, `TextConsoleBuilder.addFilter()`.
|
||||
|
||||
Two common filter implementations you may want to reuse are [`RegexpFilter`](upsource:///platform/lang-api/src/com/intellij/execution/filters/RegexpFilter.java) and [`UrlFilter`](upsource:///platform/execution-impl/src/com/intellij/execution/filters/UrlFilter.java).
|
||||
@ -61,6 +61,6 @@ Two common filter implementations you may want to reuse are [`RegexpFilter`](ups
|
||||
## Starting a Run Configuration from Code
|
||||
|
||||
If you have an existing run configuration that you need to execute, the easiest way to do so is to use [`ProgramRunnerUtil.executeConfiguration()`](upsource:///platform/execution-impl/src/com/intellij/execution/ProgramRunnerUtil.java).
|
||||
The method takes a [`Project`](upsource:///platform/core-api/src/com/intellij/openapi/project/Project.java), a [`RunnerAndConfigurationSettings`](upsource:///platform/lang-api/src/com/intellij/execution/RunnerAndConfigurationSettings.java), as well as an [`Executor`](upsource:///platform/lang-api/src/com/intellij/execution/Executor.java).
|
||||
The method takes a [`Project`](upsource:///platform/core-api/src/com/intellij/openapi/project/Project.java), a [`RunnerAndConfigurationSettings`](upsource:///platform/execution/src/com/intellij/execution/RunnerAndConfigurationSettings.java), as well as an [`Executor`](upsource:///platform/execution/src/com/intellij/execution/Executor.java).
|
||||
To get the `RunnerAndConfigurationSettings` for an existing configuration, you can use, for example, `RunManager.getConfigurationSettings(ConfigurationType)`.
|
||||
As the last parameter, you normally pass either `DefaultRunExecutor.getRunExecutorInstance()` or `DefaultDebugExecutor.getDebugExecutorInstance()`.
|
@ -6,39 +6,39 @@ This document describes the primary classes to work with run configurations and
|
||||
|
||||
## Configuration Type
|
||||
|
||||
The starting point for implementing any run configuration type is the [`ConfigurationType`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ConfigurationType.java) interface.
|
||||
The starting point for implementing any run configuration type is the [`ConfigurationType`](upsource:///platform/execution/src/com/intellij/execution/configurations/ConfigurationType.java) interface.
|
||||
The list of available configuration types is shown when a user opens the _'Edit run configurations'_ dialog and executes _'Add'_ action:
|
||||
|
||||

|
||||
|
||||
Every type there is represented as an instance of [`ConfigurationType`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ConfigurationType.java) and registered like below:
|
||||
Every type there is represented as an instance of [`ConfigurationType`](upsource:///platform/execution/src/com/intellij/execution/configurations/ConfigurationType.java) and registered like below:
|
||||
|
||||
```xml
|
||||
<configurationType implementation="org.jetbrains.plugins.gradle.service.execution.GradleExternalTaskConfigurationType" />
|
||||
```
|
||||
|
||||
The easiest way to implement this interface is to use the [`ConfigurationTypeBase`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/runConfigurationType.kt) base class.
|
||||
The easiest way to implement this interface is to use the [`ConfigurationTypeBase`](upsource:///platform/execution/src/com/intellij/execution/configurations/runConfigurationType.kt) base class.
|
||||
To use it, you need to inherit from it and to provide the configuration type parameters (ID, name, description, and icon) as constructor parameters.
|
||||
In addition to that, you need to call the [`addFactory()`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/runConfigurationType.kt) method to add a configuration factory.
|
||||
In addition to that, you need to call the [`addFactory()`](upsource:///platform/execution/src/com/intellij/execution/configurations/runConfigurationType.kt) method to add a configuration factory.
|
||||
|
||||
## Configuration Factory
|
||||
|
||||
All run configurations are created by the [`ConfigurationFactory`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ConfigurationFactory.java) registered for a particular `ConfigurationType`.
|
||||
It's possible that one `ConfigurationType` [has more than one](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ConfigurationType.java) `ConfigurationFactory`:
|
||||
All run configurations are created by the [`ConfigurationFactory`](upsource:///platform/execution/src/com/intellij/execution/configurations/ConfigurationFactory.java) registered for a particular `ConfigurationType`.
|
||||
It's possible that one `ConfigurationType` has more than one `ConfigurationFactory`:
|
||||
|
||||

|
||||
|
||||
The key API of [`ConfigurationFactory`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ConfigurationFactory.java), and the only method that you're required to implement, is the [`createTemplateConfiguration`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ConfigurationFactory.java) method.
|
||||
The key API of `ConfigurationFactory`, and the only method that you're required to implement, is the [`createTemplateConfiguration`](upsource:///platform/execution/src/com/intellij/execution/configurations/ConfigurationFactory.java) method.
|
||||
This method is called once per project to create the template run configuration.
|
||||
|
||||
All real run configurations (loaded from the workspace or created by the user) are called by cloning the template through the [`createConfiguration`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ConfigurationFactory.java) method.
|
||||
All real run configurations (loaded from the workspace or created by the user) are called by cloning the template through the [`createConfiguration`](upsource:///platform/execution/src/com/intellij/execution/configurations/ConfigurationFactory.java) method.
|
||||
|
||||
You can customize additional aspects of your configuration factory by overriding the [`getIcon`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ConfigurationFactory.java), [`getAddIcon`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ConfigurationFactory.java)<!--#L55-->, [`getName`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ConfigurationFactory.java)<!--#L51--> and the default settings methods.
|
||||
You can customize additional aspects of your configuration factory by overriding the [`getIcon`](upsource:///platform/execution/src/com/intellij/execution/configurations/ConfigurationFactory.java), [`getAddIcon`](upsource:///platform/execution/src/com/intellij/execution/configurations/ConfigurationFactory.java), [`getName`](upsource:///platform/execution/src/com/intellij/execution/configurations/ConfigurationFactory.java) and the default settings methods.
|
||||
These additional overrides are optional.
|
||||
|
||||
## Run Configuration
|
||||
|
||||
The run configuration itself is represented by the [`RunConfiguration`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/RunConfiguration.java) interface.
|
||||
The run configuration itself is represented by the [`RunConfiguration`](upsource:///platform/execution/src/com/intellij/execution/configurations/RunConfiguration.java) interface.
|
||||
A _'run configuration'_ here is some named profile which can be executed, e.g., the application started via `main()` class, test, remote debug to particular machine/port, etc.
|
||||
|
||||
Here is an example of a Java run configuration defined for a particular project:
|
||||
@ -47,28 +47,28 @@ Here is an example of a Java run configuration defined for a particular project:
|
||||
|
||||
When implementing a run configuration, you may want to use one of the common base classes:
|
||||
|
||||
* [`RunConfigurationBase`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/RunConfigurationBase.java) is a general-purpose superclass that contains the most basic implementation of a run configuration.
|
||||
* [`LocatableConfigurationBase`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/LocatableConfigurationBase.java) is a common base class that should be used for configurations that can be created from context by a `RunConfigurationProducer`.
|
||||
* [`RunConfigurationBase`](upsource:///platform/execution/src/com/intellij/execution/configurations/RunConfigurationBase.java) is a general-purpose superclass that contains the most basic implementation of a run configuration.
|
||||
* [`LocatableConfigurationBase`](upsource:///platform/execution/src/com/intellij/execution/configurations/LocatableConfigurationBase.java) is a common base class that should be used for configurations that can be created from context by a `RunConfigurationProducer`.
|
||||
It supports automatically generating a name for a configuration from its settings and keeping track of whether the name was changed by the user.
|
||||
* [`ModuleBasedConfiguration`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ModuleBasedConfiguration.java) is a base class for a configuration that is associated with a specific module (for example, Java run configurations use the selected module to determine the run classpath).
|
||||
* [`ModuleBasedConfiguration`](upsource:///platform/execution/src/com/intellij/execution/configurations/ModuleBasedConfiguration.java) is a base class for a configuration that is associated with a specific module (for example, Java run configurations use the selected module to determine the run classpath).
|
||||
|
||||
## Settings Editor
|
||||
|
||||
That common run configuration settings might be modified via:
|
||||
|
||||
[`RunConfiguration`-specific UI](upsource:///platform/lang-api/src/com/intellij/execution/configurations/RunConfiguration.java).
|
||||
That is handled by [`SettingsEditor`](upsource:///platform/platform-api/src/com/intellij/openapi/options/SettingsEditor.java)<!--#L97-->:
|
||||
[`RunConfiguration`-specific UI](upsource:///platform/execution/src/com/intellij/execution/configurations/RunConfiguration.java)
|
||||
That is handled by [`SettingsEditor`](upsource:///platform/ide-core/src/com/intellij/openapi/options/SettingsEditor.java):
|
||||
|
||||
* [`getComponent()`](upsource:///platform/platform-api/src/com/intellij/openapi/options/SettingsEditor.java) method is called by the IDE and shows run configuration specific UI.
|
||||
* [`resetFrom()`](upsource:///platform/platform-api/src/com/intellij/openapi/options/SettingsEditor.java) is called to discard all non-confirmed user changes made via that UI.
|
||||
* [`applyTo()`](upsource:///platform/platform-api/src/com/intellij/openapi/options/SettingsEditor.java) is called to confirm the changes, i.e. copy current UI state into the target settings object.
|
||||
* `getComponent()` method is called by the IDE and shows run configuration specific UI.
|
||||
* `resetFrom()` is called to discard all non-confirmed user changes made via that UI.
|
||||
* `applyTo()` is called to confirm the changes, i.e. copy current UI state into the target settings object.
|
||||
|
||||
## Persistence
|
||||
|
||||
That run configuration settings are persistent, i.e., they are stored at the file system and loaded back on the IDE startup.
|
||||
That is performed via [`writeExternal()`](upsource:///platform/util/src/com/intellij/openapi/util/JDOMExternalizable.java) and [`readExternal()`](upsource:///platform/util/src/com/intellij/openapi/util/JDOMExternalizable.java)<!--#L26--> methods of [`RunConfiguration`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/RunConfiguration.java) class correspondingly.
|
||||
That is performed via [`writeExternal()`](upsource:///platform/util/src/com/intellij/openapi/util/JDOMExternalizable.java) and [`readExternal()`](upsource:///platform/util/src/com/intellij/openapi/util/JDOMExternalizable.java) methods of [`RunConfiguration`](upsource:///platform/execution/src/com/intellij/execution/configurations/RunConfiguration.java) class correspondingly.
|
||||
|
||||
The actual configurations stored by the IntelliJ Platform are represented by instances of the [`RunnerAndConfigurationSettings`](upsource:///platform/lang-api/src/com/intellij/execution/RunnerAndConfigurationSettings.java) class, which combines a run configuration with runner-specific settings, as well as keeping track of certain run configuration flags such as "temporary" or "singleton".
|
||||
The actual configurations stored by the IntelliJ Platform are represented by instances of the [`RunnerAndConfigurationSettings`](upsource:///platform/execution/src/com/intellij/execution/RunnerAndConfigurationSettings.java) class, which combines a run configuration with runner-specific settings, as well as keeping track of certain run configuration flags such as "temporary" or "singleton".
|
||||
|
||||
Dealing with instances of this class becomes necessary when you need to create run configurations from code.
|
||||
This is accomplished with the following two steps:
|
||||
@ -80,7 +80,7 @@ This is accomplished with the following two steps:
|
||||
|
||||
Most run configurations contain references to classes, files, or directories in their settings, and these settings usually need to be updated when the corresponding element is renamed or moved.
|
||||
|
||||
To support that, your run configuration needs to implement the [`RefactoringListenerProvider`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/RefactoringListenerProvider.java) interface.
|
||||
To support that, your run configuration needs to implement the [`RefactoringListenerProvider`](upsource:///platform/execution/src/com/intellij/execution/configurations/RefactoringListenerProvider.java) interface.
|
||||
|
||||
In your implementation of `getRefactoringElementListener()`, you need to check whether the refactored element is the one that your run configuration refers to.
|
||||
If it is, you return a [`RefactoringElementListener`](upsource:///platform/analysis-api/src/com/intellij/refactoring/listeners/RefactoringElementListener.java) that updates your configuration according to the new name and location of the element.
|
||||
@ -99,7 +99,7 @@ The two main methods that you need to implement are:
|
||||
* `isConfigurationFromContext()` checks if your type's specified configuration was created from the specified context.
|
||||
Implementing this method allows you to reuse an existing run configuration, which applies to the current context instead of creating a new one and possibly ignoring the user's customizations in the existing one.
|
||||
|
||||
Note that, to support the automatic naming of configurations created from context, your configuration should use [`LocatableConfigurationBase`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/LocatableConfigurationBase.java) as the base class.
|
||||
Note that, to support the automatic naming of configurations created from context, your configuration should use [`LocatableConfigurationBase`](upsource:///platform/execution/src/com/intellij/execution/configurations/LocatableConfigurationBase.java) as the base class.
|
||||
|
||||
## Running from the Gutter
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<!-- Copyright 2000-2021 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
|
||||
|
||||
24 Extension Points (EP) and 4 Listeners for AppCode
|
||||
25 Extension Points (EP) and 4 Listeners for AppCode
|
||||
|
||||
See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
|
||||
@ -42,6 +42,7 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
| [appcode.attachDebuggerProvider](https://jb.gg/ipe?extensions=appcode.attachDebuggerProvider) ![Non-Dynamic][non-dynamic] | `AppCodeAttachDebuggerExtension` |
|
||||
| [appcode.runConfigurationExtension](https://jb.gg/ipe?extensions=appcode.runConfigurationExtension) ![Non-Dynamic][non-dynamic] | `AppCodeRunConfigurationExtension` |
|
||||
| [appcode.xcodeExternalBuildProvider](https://jb.gg/ipe?extensions=appcode.xcodeExternalBuildProvider) ![Non-Dynamic][non-dynamic] | `XcodeExternalBuildProvider` |
|
||||
| [appcode.xcodeTemplatePathsProvider](https://jb.gg/ipe?extensions=appcode.xcodeTemplatePathsProvider) ![Non-Dynamic][non-dynamic] | `XcodeTemplatePathsProvider` |
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<!-- Copyright 2000-2021 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
|
||||
|
||||
91 Extension Points (EP) and 27 Listeners for CLion
|
||||
95 Extension Points (EP) and 27 Listeners for CLion
|
||||
|
||||
See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
|
||||
@ -120,17 +120,19 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
| [cidr.lang.libraryFileConfigurationProvider](https://jb.gg/ipe?extensions=cidr.lang.libraryFileConfigurationProvider) ![Non-Dynamic][non-dynamic] | `OCLibraryFileResolveConfigurationProvider` |
|
||||
| [cidr.lang.moduleMapManagerRequestor](https://jb.gg/ipe?extensions=cidr.lang.moduleMapManagerRequestor) ![Non-Dynamic][non-dynamic] | `ModuleMapManagerRequestor` |
|
||||
| [cidr.lang.moduleMapPlatformTypeProvider](https://jb.gg/ipe?extensions=cidr.lang.moduleMapPlatformTypeProvider) ![Non-Dynamic][non-dynamic] | `ModuleMapPlatformTypeProvider` |
|
||||
| [cidr.lang.moduleMapRootSerializer](https://jb.gg/ipe?extensions=cidr.lang.moduleMapRootSerializer) ![Non-Dynamic][non-dynamic] | `ModuleMapRootSerializer` |
|
||||
| [cidr.lang.moduleMapSearchRootProvider](https://jb.gg/ipe?extensions=cidr.lang.moduleMapSearchRootProvider) ![Non-Dynamic][non-dynamic] | `ModuleMapSearchRootProvider` |
|
||||
| [cidr.lang.moduleResolver](https://jb.gg/ipe?extensions=cidr.lang.moduleResolver) ![Non-Dynamic][non-dynamic] | `OCModuleResolver` |
|
||||
| [cidr.lang.ocAdditionalFileSymbolTableBuilder](https://jb.gg/ipe?extensions=cidr.lang.ocAdditionalFileSymbolTableBuilder) ![Non-Dynamic][non-dynamic] | `OCAdditionalFileSymbolTableBuilder` |
|
||||
| [cidr.lang.ocDirectInheritorsSearch](https://jb.gg/ipe?extensions=cidr.lang.ocDirectInheritorsSearch) ![Non-Dynamic][non-dynamic] | [`QueryExecutor`](upsource:///platform/core-api/src/com/intellij/util/QueryExecutor.java) |
|
||||
| [cidr.lang.ocResolveRootAndConfigurationProvider](https://jb.gg/ipe?extensions=cidr.lang.ocResolveRootAndConfigurationProvider) ![Non-Dynamic][non-dynamic] | `OCResolveRootAndConfigurationProvider` |
|
||||
| [cidr.lang.renameHandlerExtension](https://jb.gg/ipe?extensions=cidr.lang.renameHandlerExtension) ![Non-Dynamic][non-dynamic] | `OCRenameHandlerExtension` |
|
||||
| [cidr.lang.renameProcessorExtension](https://jb.gg/ipe?extensions=cidr.lang.renameProcessorExtension) ![Non-Dynamic][non-dynamic] | `OCRenameProcessorExtension` |
|
||||
| [cidr.lang.resourceCompletionProviders](https://jb.gg/ipe?extensions=cidr.lang.resourceCompletionProviders) ![Non-Dynamic][non-dynamic] | `OCResourceCompletionProviders` |
|
||||
| [cidr.lang.resourceFilesProvider](https://jb.gg/ipe?extensions=cidr.lang.resourceFilesProvider) ![Non-Dynamic][non-dynamic] | `OCResourceFilesProvider` |
|
||||
| [cidr.lang.searchHelper](https://jb.gg/ipe?extensions=cidr.lang.searchHelper) ![Non-Dynamic][non-dynamic] | `OCSearchHelper` |
|
||||
| [cidr.lang.serializerProvider](https://jb.gg/ipe?extensions=cidr.lang.serializerProvider) ![Non-Dynamic][non-dynamic] | `SerializerProvider` |
|
||||
| [cidr.lang.symbolTableProvider](https://jb.gg/ipe?extensions=cidr.lang.symbolTableProvider) ![Non-Dynamic][non-dynamic] | `SymbolTableProvider` |
|
||||
| [cidr.lang.symbolTableProvider](https://jb.gg/ipe?extensions=cidr.lang.symbolTableProvider) ![Non-Dynamic][non-dynamic] | `FileSymbolTableProvider` |
|
||||
| [cidr.lang.testFramework](https://jb.gg/ipe?extensions=cidr.lang.testFramework) ![Non-Dynamic][non-dynamic] | `OCTestFramework` |
|
||||
| [cidr.lang.typeStructureProvider](https://jb.gg/ipe?extensions=cidr.lang.typeStructureProvider) ![Non-Dynamic][non-dynamic] | `PolyglotTypeStructureProvider` |
|
||||
| [cidr.projectModel.unloadedResolveContextsManager](https://jb.gg/ipe?extensions=cidr.projectModel.unloadedResolveContextsManager) | `OCUnloadedResolveContextsManager` |
|
||||
@ -213,6 +215,8 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
| [clangd.clangTidyAnnotationApplier](https://jb.gg/ipe?extensions=clangd.clangTidyAnnotationApplier) | `ClangTidyAnnotationApplier` |
|
||||
| [clangd.clangTidyResolveInfoProvider](https://jb.gg/ipe?extensions=clangd.clangTidyResolveInfoProvider) | `ClangTidyResolveInfoProvider` |
|
||||
| [clangd.clangdBridge](https://jb.gg/ipe?extensions=clangd.clangdBridge) | `ClangdBridgeInterface` |
|
||||
| [com.intellij.cidrCommandLineParser](https://jb.gg/ipe?extensions=com.intellij.cidrCommandLineParser) ![Project-Level][project-level] | `CidrCommandLineParser` |
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<!-- Copyright 2000-2021 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
|
||||
|
||||
47 Extension Points (EP) and 5 Listeners for Spring API
|
||||
48 Extension Points (EP) and 5 Listeners for Spring API
|
||||
|
||||
<include src="extension_point_list.md" include-id="ep_list_legend"></include>
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
### Spring - Listeners
|
||||
|
||||
| Topic | Listener |
|
||||
|-------|----------|
|
||||
|----------------------------------------|-------------------------|
|
||||
| `SpringBootEndpointsTabSettings#TOPIC` | `Listener` |
|
||||
| `SpringRepositoriesViewSettings#TOPIC` | `Listener` |
|
||||
| `SpringFileSetService#TOPIC` | `SpringFileSetListener` |
|
||||
@ -21,7 +21,7 @@
|
||||
### com.intellij.spring
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
|
||||
| [com.intellij.spring.beanPointerPanelContent](https://jb.gg/ipe?extensions=com.intellij.spring.beanPointerPanelContent) | `SpringBeanPointerPanelContent` |
|
||||
| [com.intellij.spring.componentScanExtender](https://jb.gg/ipe?extensions=com.intellij.spring.componentScanExtender) | `ComponentScanExtender` |
|
||||
| [com.intellij.spring.conditionalEvaluatorProvider](https://jb.gg/ipe?extensions=com.intellij.spring.conditionalEvaluatorProvider) | `ConditionalEvaluatorProvider` |
|
||||
@ -41,6 +41,7 @@
|
||||
| [com.intellij.spring.localAnnotationModelDependentModelsProvider](https://jb.gg/ipe?extensions=com.intellij.spring.localAnnotationModelDependentModelsProvider) | `LocalAnnotationModelDependentModelsProvider` |
|
||||
| [com.intellij.spring.localModelProducer](https://jb.gg/ipe?extensions=com.intellij.spring.localModelProducer) | `SpringLocalModelProducer` |
|
||||
| [com.intellij.spring.modelProvider](https://jb.gg/ipe?extensions=com.intellij.spring.modelProvider) | `SpringModelProvider` |
|
||||
| [com.intellij.spring.placeholderReferenceResolver](https://jb.gg/ipe?extensions=com.intellij.spring.placeholderReferenceResolver) | `SpringPlaceholderReferenceResolver` |
|
||||
| [com.intellij.spring.resourceTypeProvider](https://jb.gg/ipe?extensions=com.intellij.spring.resourceTypeProvider) | `SpringResourceTypeProvider` |
|
||||
| [com.intellij.spring.scriptBeanPsiClassDiscoverer](https://jb.gg/ipe?extensions=com.intellij.spring.scriptBeanPsiClassDiscoverer) | `ScriptBeanPsiClassDiscoverer` |
|
||||
| [com.intellij.spring.testingAnnotationsProvider](https://jb.gg/ipe?extensions=com.intellij.spring.testingAnnotationsProvider) | `SpringTestingAnnotationsProvider` |
|
||||
@ -51,7 +52,7 @@
|
||||
### com.intellij.spring.boot
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------|
|
||||
| [com.intellij.spring.boot.customHintReferenceProvider](https://jb.gg/ipe?extensions=com.intellij.spring.boot.customHintReferenceProvider) | `SpringBootCustomHintReferenceProvider` |
|
||||
| [com.intellij.spring.boot.modelConditionalContributor](https://jb.gg/ipe?extensions=com.intellij.spring.boot.modelConditionalContributor) | `ConditionalContributor` |
|
||||
| [com.intellij.spring.boot.modelConfigFileContributor](https://jb.gg/ipe?extensions=com.intellij.spring.boot.modelConfigFileContributor) | `SpringBootModelConfigFileContributor` |
|
||||
@ -63,13 +64,13 @@
|
||||
### com.intellij.spring.messaging
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|---------------------------------------------------------------------------------------------------------------------|------------------------------|
|
||||
| [com.intellij.spring.messaging.urlProvider](https://jb.gg/ipe?extensions=com.intellij.spring.messaging.urlProvider) | `SpringMessagingUrlProvider` |
|
||||
|
||||
### com.intellij.spring.mvc
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------|
|
||||
| [com.intellij.spring.mvc.applicationPortProvider](https://jb.gg/ipe?extensions=com.intellij.spring.mvc.applicationPortProvider) | `SpringApplicationPortProvider` |
|
||||
| [com.intellij.spring.mvc.mergingMvcRequestMappingLineMarkerProvider](https://jb.gg/ipe?extensions=com.intellij.spring.mvc.mergingMvcRequestMappingLineMarkerProvider) | `SpringMergingMvcRequestMappingLineMarkerProvider` |
|
||||
| [com.intellij.spring.mvc.viewResolverFactory](https://jb.gg/ipe?extensions=com.intellij.spring.mvc.viewResolverFactory) | `ViewResolverFactory` |
|
||||
@ -77,42 +78,42 @@
|
||||
### com.intellij.spring.security
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-----------------------------------------------------------------------------------------------------------------------|-------------------------------|
|
||||
| [com.intellij.spring.security.rolesProvider](https://jb.gg/ipe?extensions=com.intellij.spring.security.rolesProvider) | `SpringSecurityRolesProvider` |
|
||||
|
||||
### intellij.spring.boot.core.mvc.xml
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
|
||||
| [com.intellij.spring.boot.mvc.templateAvailabilityProvider](https://jb.gg/ipe?extensions=com.intellij.spring.boot.mvc.templateAvailabilityProvider) | `TemplateAvailabilityProvider` |
|
||||
|
||||
### intellij.spring.boot.initializr.xml
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|
|
||||
| [com.intellij.spring.boot.initializr.sharedIndexesProvider](https://jb.gg/ipe?extensions=com.intellij.spring.boot.initializr.sharedIndexesProvider) | `SpringSharedIndexesProvider` |
|
||||
|
||||
### intellij.spring.boot.run.xml
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
|
||||
| [com.intellij.spring.boot.run.applicationUpdatePolicy](https://jb.gg/ipe?extensions=com.intellij.spring.boot.run.applicationUpdatePolicy) | `SpringBootApplicationUpdatePolicy` |
|
||||
| [com.intellij.spring.boot.run.applicationUrlPathProviderFactory](https://jb.gg/ipe?extensions=com.intellij.spring.boot.run.applicationUrlPathProviderFactory) | `SpringBootApplicationUrlPathProviderFactory` |
|
||||
| [com.intellij.spring.boot.run.endpoint](https://jb.gg/ipe?extensions=com.intellij.spring.boot.run.endpoint) ![Experimental API][experimental] | `Endpoint` |
|
||||
| [com.intellij.spring.boot.run.endpointTabConfigurable](https://jb.gg/ipe?extensions=com.intellij.spring.boot.run.endpointTabConfigurable) ![Project-Level][project-level] | `EndpointTabConfigurable` |
|
||||
| [com.intellij.spring.boot.run.liveBeansPanelContent](https://jb.gg/ipe?extensions=com.intellij.spring.boot.run.liveBeansPanelContent) | `LiveBeansPanelContent` |
|
||||
|
||||
### intellij.spring.core.el.xml
|
||||
### intellij.spring.el.xml
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-------------------------------------------------------------------------------------------------------------------|-----------------------------|
|
||||
| [com.intellij.spring.el.contexts](https://jb.gg/ipe?extensions=com.intellij.spring.el.contexts) | `SpringElContextsExtension` |
|
||||
| [com.intellij.spring.el.injection.context](https://jb.gg/ipe?extensions=com.intellij.spring.el.injection.context) | `SpringElInjectionContext` |
|
||||
|
||||
### spring-diagram-integration.xml
|
||||
### intellij.spring.graph.xml
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|---------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|
|
||||
| [com.intellij.spring.gutterDiagramActionProvider](https://jb.gg/ipe?extensions=com.intellij.spring.gutterDiagramActionProvider) | `SpringGutterDiagramActionProvider` |
|
||||
|
||||
[experimental]: https://img.shields.io/badge/-Experimental_API-red?style=flat-square
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<!-- Copyright 2000-2021 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
|
||||
|
||||
52 Extension Points (EP) and 7 Listeners for PHP
|
||||
54 Extension Points (EP) and 7 Listeners for PHP
|
||||
|
||||
See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
|
||||
@ -13,7 +13,7 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
### PhpStorm - Listeners
|
||||
|
||||
| Topic | Listener |
|
||||
|-------|----------|
|
||||
|-----------------------------------------------------|--------------------------------------------|
|
||||
| `StateChangedListener#TOPIC` | `StateChangedListener` |
|
||||
| `StateChangedListener#LANGUAGE_LEVEL_CHANGED_TOPIC` | `StateChangedListener` |
|
||||
| `PhpProjectWorkspaceConfiguration#TOPIC` | `PhpProjectWorkspaceConfigurationListener` |
|
||||
@ -25,26 +25,26 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
### com.intellij.phing
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------|
|
||||
| [com.intellij.phing.phpFileDescriptionProvider](https://jb.gg/ipe?extensions=com.intellij.phing.phpFileDescriptionProvider) ![Non-Dynamic][non-dynamic] | `PhingPhpFileDescriptionProvider` |
|
||||
| [com.intellij.phing.propertyFilesManager](https://jb.gg/ipe?extensions=com.intellij.phing.propertyFilesManager) ![Non-Dynamic][non-dynamic] | `PropertyFilesManager` |
|
||||
|
||||
### com.intellij.php.psalm
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|
|
||||
| [com.jetbrains.php.tools.quality.Psalm.PsalmConfigurationProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.tools.quality.Psalm.PsalmConfigurationProvider) ![Non-Dynamic][non-dynamic] | `PsalmConfigurationProvider` |
|
||||
|
||||
### com.intellij.php.tools.quality.phpstan
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
|
||||
| [com.jetbrains.php.tools.quality.PhpStan.PhpStanConfigurationProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.tools.quality.PhpStan.PhpStanConfigurationProvider) ![Non-Dynamic][non-dynamic] | `PhpStanConfigurationProvider` |
|
||||
|
||||
### com.jetbrains.php
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
|
||||
| [com.intellij.php.debug.template.configurable](https://jb.gg/ipe?extensions=com.intellij.php.debug.template.configurable) ![Project-Level][project-level] | `PhpTemplateDebugConfigurable` |
|
||||
| [com.intellij.php.debug.templateLanguage](https://jb.gg/ipe?extensions=com.intellij.php.debug.templateLanguage) | `PhpTemplateLanguagePathMapper` |
|
||||
| [com.intellij.php.typeProvider2](https://jb.gg/ipe?extensions=com.intellij.php.typeProvider2) ![Deprecated][deprecated] | `PhpTypeProvider2` |
|
||||
@ -57,6 +57,8 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
| [com.jetbrains.php.config.interpreterFormProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.config.interpreterFormProvider) | `PhpInterpreterFormProvider` |
|
||||
| [com.jetbrains.php.config.interpreters.PhpInterpretersStateListener](https://jb.gg/ipe?extensions=com.jetbrains.php.config.interpreters.PhpInterpretersStateListener) | `PhpInterpretersStateListener` |
|
||||
| [com.jetbrains.php.coreMethodProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.coreMethodProvider) | `PhpCoreHandler` |
|
||||
| [com.jetbrains.php.customFunctionIndex](https://jb.gg/ipe?extensions=com.jetbrains.php.customFunctionIndex) | `PhpCustomFunctionIndex` |
|
||||
| [com.jetbrains.php.customFunctionPredicate](https://jb.gg/ipe?extensions=com.jetbrains.php.customFunctionPredicate) ![Internal API][internal] | `PhpCustomFunctionPredicateIndex` |
|
||||
| [com.jetbrains.php.debug.mapping.localPathFixer](https://jb.gg/ipe?extensions=com.jetbrains.php.debug.mapping.localPathFixer) | `PhpLocalPathFixer` |
|
||||
| [com.jetbrains.php.deprecationFixesProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.deprecationFixesProvider) | `PhpDeprecationQuickFixesProvider` |
|
||||
| [com.jetbrains.php.deprecationProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.deprecationProvider) | `PhpDeprecationProvider` |
|
||||
@ -68,10 +70,10 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
| [com.jetbrains.php.frameworkUsageProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.frameworkUsageProvider) | `PhpFrameworkUsageProvider` |
|
||||
| [com.jetbrains.php.injectionExternalFragmentSubstProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.injectionExternalFragmentSubstProvider) ![Project-Level][project-level] | `PhpInjectionExternalFragmentSubstProvider` |
|
||||
| [com.jetbrains.php.keyTypeProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.keyTypeProvider) ![Experimental API][experimental] | `PhpKeyTypeProvider` |
|
||||
| [com.jetbrains.php.libraryRoot](https://jb.gg/ipe?extensions=com.jetbrains.php.libraryRoot) ![Experimental API][experimental] | `PhpLibraryRootProvider` |
|
||||
| [com.jetbrains.php.libraryRoot](https://jb.gg/ipe?extensions=com.jetbrains.php.libraryRoot) ![Internal API][internal] | `PhpLibraryRootProvider` |
|
||||
| [com.jetbrains.php.magicMethodProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.magicMethodProvider) | `PhpMagicHandler` |
|
||||
| [com.jetbrains.php.metaSignatureResolver](https://jb.gg/ipe?extensions=com.jetbrains.php.metaSignatureResolver) ![Internal API][internal] | `PhpMetaSignatureResolver` |
|
||||
| [com.jetbrains.php.metaTableProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.metaTableProvider) ![Experimental API][experimental] | `PhpMetaTableProvider` |
|
||||
| [com.jetbrains.php.metaTableProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.metaTableProvider) ![Internal API][internal] | `PhpMetaTableProvider` |
|
||||
| [com.jetbrains.php.noReturnProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.noReturnProvider) ![Experimental API][experimental] | `PhpNoReturnProvider` |
|
||||
| [com.jetbrains.php.openSettingsProvider](https://jb.gg/ipe?extensions=com.jetbrains.php.openSettingsProvider) | `Settings` |
|
||||
| [com.jetbrains.php.phpunit.phpUnitSettingsLoader](https://jb.gg/ipe?extensions=com.jetbrains.php.phpunit.phpUnitSettingsLoader) | `PhpUnitSettingsLoader` |
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<!-- Copyright 2000-2021 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
|
||||
|
||||
59 Extension Points (EP) and 10 Listeners for RubyMine
|
||||
66 Extension Points (EP) and 10 Listeners for RubyMine
|
||||
|
||||
See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
|
||||
@ -13,7 +13,7 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
### RubyMine - Listeners
|
||||
|
||||
| Topic | Listener |
|
||||
|-------|----------|
|
||||
|----------------------------------------------------------------------------|---------------------------------|
|
||||
| `ChefTopics#COOKBOOK` | `CookbooksListener` |
|
||||
| `GemManager#GEMSET_CHANGED_TOPIC` | `GemSetListener` |
|
||||
| `GemManager#MODULE_GEMS_CHANGED_TOPIC` ![Project-Level][project-level] | `ModuleGemsListener` |
|
||||
@ -28,13 +28,13 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
### intellij.ruby.coverage.xml
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------|---------------------------------------|
|
||||
| [org.jetbrains.plugins.ruby.coverage.deserializer](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.coverage.deserializer) | `RubyCoverageDeserializationProvider` |
|
||||
|
||||
### ruby-core.xml
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
|
||||
| [org.jetbrains.plugins.ruby.associationFactory](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.associationFactory) | `AssociationFactory` |
|
||||
| [org.jetbrains.plugins.ruby.attributeProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.attributeProvider) | `AttributeProvider` |
|
||||
| [org.jetbrains.plugins.ruby.autoImportProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.autoImportProvider) | `RubyAutoImportProvider` |
|
||||
@ -52,8 +52,13 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
| [org.jetbrains.plugins.ruby.overriddenMethodGenerator](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.overriddenMethodGenerator) | `OverriddenMethodGenerator` |
|
||||
| [org.jetbrains.plugins.ruby.paramDefProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.paramDefProvider) | `ParamDefProvider` |
|
||||
| [org.jetbrains.plugins.ruby.renameHelper](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.renameHelper) | `RubyRenameHelper` |
|
||||
| [org.jetbrains.plugins.ruby.ruby.coercibleExpressionTypeProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.ruby.coercibleExpressionTypeProvider) | `RubyCoercibleExpressionTypeProvider` |
|
||||
| [org.jetbrains.plugins.ruby.ruby.expectedArgumentTypeProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.ruby.expectedArgumentTypeProvider) | `RubyExpectedArgumentTypeProvider` |
|
||||
| [org.jetbrains.plugins.ruby.ruby.expectedConstantTypeProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.ruby.expectedConstantTypeProvider) | `RubyExpectedConstantTypeProvider` |
|
||||
| [org.jetbrains.plugins.ruby.ruby.expectedGlobalVariableTypeProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.ruby.expectedGlobalVariableTypeProvider) | `RubyExpectedGlobalVariableTypeProvider` |
|
||||
| [org.jetbrains.plugins.ruby.ruby.expectedParameterTypeProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.ruby.expectedParameterTypeProvider) | `RubyExpectedParameterTypeProvider` |
|
||||
| [org.jetbrains.plugins.ruby.ruby.expectedReturnTypeProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.ruby.expectedReturnTypeProvider) | `RubyExpectedReturnTypeProvider` |
|
||||
| [org.jetbrains.plugins.ruby.ruby.expectedVariableTypeProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.ruby.expectedVariableTypeProvider) | `RubyExpectedVariableTypeProvider` |
|
||||
| [org.jetbrains.plugins.ruby.ruby.run.runEnvironmentProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.ruby.run.runEnvironmentProvider) | `RunEnvironmentProvider` |
|
||||
| [org.jetbrains.plugins.ruby.ruby.run.testFrameworkConfigurator](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.ruby.run.testFrameworkConfigurator) | `TestFrameworkConfigurator` |
|
||||
| [org.jetbrains.plugins.ruby.rubyElementNameAndDescriptionProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.rubyElementNameAndDescriptionProvider) | `RubyElementNameAndDescriptionProvider` |
|
||||
@ -78,7 +83,7 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
### ruby-plugin.xml
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------|
|
||||
| [com.intellij.ruby.projectStructure.sourceRootEditHandler](https://jb.gg/ipe?extensions=com.intellij.ruby.projectStructure.sourceRootEditHandler) | `RubyModuleSourceRootEditProvider` |
|
||||
| [org.jetbrains.plugins.ruby.debug.infoProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.debug.infoProvider) | `ContextInfoProvider` |
|
||||
| [org.jetbrains.plugins.ruby.gem.detector](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.gem.detector) | `GemDetector` |
|
||||
@ -94,7 +99,9 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
| [org.jetbrains.plugins.ruby.rake.rakeRunCommandLineModifierProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.rake.rakeRunCommandLineModifierProvider) | `RakeRunCommandLineModifierProvider` |
|
||||
| [org.jetbrains.plugins.ruby.rake.runConfigurationSettingsFactory](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.rake.runConfigurationSettingsFactory) | `RakeRunConfigurationSettingsFactory` |
|
||||
| [org.jetbrains.plugins.ruby.rerunFailedTestsActionProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.rerunFailedTestsActionProvider) | `RubyRerunFailedTestsProvider` |
|
||||
| [org.jetbrains.plugins.ruby.ruby.associatedDeclarationProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.ruby.associatedDeclarationProvider) | `RubyAssociatedDeclarationProvider` |
|
||||
| [org.jetbrains.plugins.ruby.ruby.run.configuration.debugger.rubyDebugHelperFactory](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.ruby.run.configuration.debugger.rubyDebugHelperFactory) | `RubyDebugHelperFactory` |
|
||||
| [org.jetbrains.plugins.ruby.ruby.typeSignatureProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.ruby.typeSignatureProvider) | `RubyTypeSignatureProvider` |
|
||||
| [org.jetbrains.plugins.ruby.rubyFileStructureProvider](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.rubyFileStructureProvider) | `RubyFileStructureViewProvider` |
|
||||
| [org.jetbrains.plugins.ruby.rubyTestFinder](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.rubyTestFinder) | `AbstractRubyTestFinder` |
|
||||
| [org.jetbrains.plugins.ruby.runConfigurationExtension](https://jb.gg/ipe?extensions=org.jetbrains.plugins.ruby.runConfigurationExtension) | `RubyRunConfigurationExtension` |
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<!-- Copyright 2000-2021 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
|
||||
|
||||
66 Extension Points (EP) and 3 Listeners for WebStorm
|
||||
70 Extension Points (EP) and 4 Listeners for WebStorm
|
||||
|
||||
See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
|
||||
@ -13,15 +13,15 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
### WebStorm - Listeners
|
||||
|
||||
| Topic | Listener |
|
||||
|-------|----------|
|
||||
| `JestConsoleProperties#COVERAGE_CONFIG_TOPIC` ![Project-Level][project-level]| `JestCoverageConfigListener` |
|
||||
| `PackageJsonFileManager#TOPIC` ![Project-Level][project-level]| `PackageJsonChangeListener` |
|
||||
| `JSLibraryManager#TOPIC` ![Project-Level][project-level]| `JSLibraryManagerChangeListener` |
|
||||
|-------------------------------------------------------------------------------|----------------------------------|
|
||||
| `JestConsoleProperties#COVERAGE_CONFIG_TOPIC` ![Project-Level][project-level] | `JestCoverageConfigListener` |
|
||||
| `PackageJsonFileManager#TOPIC` ![Project-Level][project-level] | `PackageJsonChangeListener` |
|
||||
| `JSLibraryManager#TOPIC` ![Project-Level][project-level] | `JSLibraryManagerChangeListener` |
|
||||
|
||||
### com.intellij.css
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-------------------------------------------------------------------------------------------------------------------------------|------------------------------------|
|
||||
| [com.intellij.css.classOrIdUsagesProvider](https://jb.gg/ipe?extensions=com.intellij.css.classOrIdUsagesProvider) | `CssClassOrIdUsagesProvider` |
|
||||
| [com.intellij.css.cssInspectionFilter](https://jb.gg/ipe?extensions=com.intellij.css.cssInspectionFilter) | `CssInspectionFilter` |
|
||||
| [com.intellij.css.cssIntentionFilter](https://jb.gg/ipe?extensions=com.intellij.css.cssIntentionFilter) | `CssIntentionFilter` |
|
||||
@ -35,25 +35,28 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
### intellij.javascript.impl.diagrams.xml
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-----------------------------------------------------------------------------------------------------------------|------------------------------|
|
||||
| [com.intellij.javascript.module.provider](https://jb.gg/ipe?extensions=com.intellij.javascript.module.provider) | `JSModuleConnectionProvider` |
|
||||
|
||||
### intellij.javascript.web.xml
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
|
||||
| [com.intellij.javascript.web.additionalContextProvider](https://jb.gg/ipe?extensions=com.intellij.javascript.web.additionalContextProvider) ![Experimental API][experimental] | `WebSymbolsAdditionalContextProvider` |
|
||||
| [com.intellij.javascript.web.codeCompletionItemCustomizer](https://jb.gg/ipe?extensions=com.intellij.javascript.web.codeCompletionItemCustomizer) ![Experimental API][experimental] | `WebSymbolCodeCompletionItemCustomizer` |
|
||||
| [com.intellij.javascript.web.context](https://jb.gg/ipe?extensions=com.intellij.javascript.web.context) ![Experimental API][experimental] | `WebFrameworkContext` |
|
||||
| [com.intellij.javascript.web.declarationProvider](https://jb.gg/ipe?extensions=com.intellij.javascript.web.declarationProvider) | `WebSymbolDeclarationProvider` |
|
||||
| [com.intellij.javascript.web.documentationCustomizer](https://jb.gg/ipe?extensions=com.intellij.javascript.web.documentationCustomizer) ![Experimental API][experimental] | `WebSymbolDocumentationCustomizer` |
|
||||
| [com.intellij.javascript.web.filter](https://jb.gg/ipe?extensions=com.intellij.javascript.web.filter) ![Experimental API][experimental] | `WebSymbolsFilter` |
|
||||
| [com.intellij.javascript.web.framework](https://jb.gg/ipe?extensions=com.intellij.javascript.web.framework) | `WebFramework` |
|
||||
| [com.intellij.javascript.web.symbolCodeCompletionItemCustomizer](https://jb.gg/ipe?extensions=com.intellij.javascript.web.symbolCodeCompletionItemCustomizer) ![Experimental API][experimental] | `WebSymbolCodeCompletionItemCustomizer` |
|
||||
| [com.intellij.javascript.web.symbolDocumentationCustomizer](https://jb.gg/ipe?extensions=com.intellij.javascript.web.symbolDocumentationCustomizer) ![Experimental API][experimental] | `WebSymbolDocumentationCustomizer` |
|
||||
| [com.intellij.javascript.web.symbolsFilter](https://jb.gg/ipe?extensions=com.intellij.javascript.web.symbolsFilter) ![Experimental API][experimental] | `WebSymbolsFilter` |
|
||||
| [com.intellij.javascript.web.psiSourcedSymbolProvider](https://jb.gg/ipe?extensions=com.intellij.javascript.web.psiSourcedSymbolProvider) | `PsiSourcedWebSymbolProvider` |
|
||||
| [com.intellij.javascript.web.scopeProvider](https://jb.gg/ipe?extensions=com.intellij.javascript.web.scopeProvider) | `WebSymbolsScopeProvider` |
|
||||
| [com.intellij.javascript.webTypes](https://jb.gg/ipe?extensions=com.intellij.javascript.webTypes) ![Experimental API][experimental] | `n/a` |
|
||||
|
||||
### JavaScript
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
|
||||
| [JavaScript.FlowJSAnnotatorCheckerProvider](https://jb.gg/ipe?extensions=JavaScript.FlowJSAnnotatorCheckerProvider) | `FlowJSAnnotatorCheckerProvider` |
|
||||
| [JavaScript.JSImplicitElementsIndexFileTypeProvider](https://jb.gg/ipe?extensions=JavaScript.JSImplicitElementsIndexFileTypeProvider) | `JSImplicitElementsIndexFileTypeProvider` |
|
||||
| [JavaScript.TypeScriptAnnotatorCheckerProvider](https://jb.gg/ipe?extensions=JavaScript.TypeScriptAnnotatorCheckerProvider) ![Project-Level][project-level] | `TypeScriptAnnotatorCheckerProvider` |
|
||||
@ -68,14 +71,15 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
| [JavaScript.handlersFactory](https://jb.gg/ipe?extensions=JavaScript.handlersFactory) | `JSHandlersFactory` |
|
||||
| [JavaScript.iconProvider](https://jb.gg/ipe?extensions=JavaScript.iconProvider) | `JSIconProvider` |
|
||||
| [JavaScript.importCandidatesFactory](https://jb.gg/ipe?extensions=JavaScript.importCandidatesFactory) | `CandidatesFactory` |
|
||||
| [JavaScript.importModulePathStrategy](https://jb.gg/ipe?extensions=JavaScript.importModulePathStrategy) | `JSImportModulePathStrategy` |
|
||||
| [JavaScript.indexedFileTypeProvider](https://jb.gg/ipe?extensions=JavaScript.indexedFileTypeProvider) | `IndexedFileTypeProvider` |
|
||||
| [JavaScript.indexedFilesFilter](https://jb.gg/ipe?extensions=JavaScript.indexedFilesFilter) | `JSIndexedFilesFilterProvider` |
|
||||
| [JavaScript.indexedFilesFilter](https://jb.gg/ipe?extensions=JavaScript.indexedFilesFilter) ![Experimental API][experimental] ![Internal API][internal] | `JSIndexedFilesFilterProvider` |
|
||||
| [JavaScript.inheritedLanguagesConfigurableProvider](https://jb.gg/ipe?extensions=JavaScript.inheritedLanguagesConfigurableProvider) | `JSInheritedLanguagesConfigurableProvider` |
|
||||
| [JavaScript.intentionAndInspectionFilter](https://jb.gg/ipe?extensions=JavaScript.intentionAndInspectionFilter) | `IntentionAndInspectionFilter` |
|
||||
| [JavaScript.jestPackageProvider](https://jb.gg/ipe?extensions=JavaScript.jestPackageProvider) | `JestPackageProvider` |
|
||||
| [JavaScript.lang.templates](https://jb.gg/ipe?extensions=JavaScript.lang.templates) ![Project-Level][project-level] | [`Configurable`](upsource:///platform/platform-api/src/com/intellij/openapi/options/Configurable.java) |
|
||||
| [JavaScript.languageServiceProcessStarter](https://jb.gg/ipe?extensions=JavaScript.languageServiceProcessStarter) | `JSLanguageServiceProcessStarter` |
|
||||
| [JavaScript.languageServiceProvider](https://jb.gg/ipe?extensions=JavaScript.languageServiceProvider) ![Experimental API][experimental] ![Project-Level][project-level] | `JSLanguageServiceProvider` |
|
||||
| [JavaScript.lang.templates](https://jb.gg/ipe?extensions=JavaScript.lang.templates) ![Project-Level][project-level] | [`Configurable`](upsource:///platform/ide-core/src/com/intellij/openapi/options/Configurable.java) |
|
||||
| [JavaScript.languageServiceProvider](https://jb.gg/ipe?extensions=JavaScript.languageServiceProvider) ![Project-Level][project-level] | `JSLanguageServiceProvider` |
|
||||
| [JavaScript.languageServiceRemoteHelperFactory](https://jb.gg/ipe?extensions=JavaScript.languageServiceRemoteHelperFactory) | `Factory` |
|
||||
| [JavaScript.moduleReferenceContributor](https://jb.gg/ipe?extensions=JavaScript.moduleReferenceContributor) | `JSModuleReferenceContributor` |
|
||||
| [JavaScript.nodeModulesIndexableFileNamesProvider](https://jb.gg/ipe?extensions=JavaScript.nodeModulesIndexableFileNamesProvider) | `NodeModulesIndexableFileNamesProvider` |
|
||||
| [JavaScript.predefinedLibraryProvider](https://jb.gg/ipe?extensions=JavaScript.predefinedLibraryProvider) | `JSPredefinedLibraryProvider` |
|
||||
@ -104,19 +108,19 @@ See [Extension Point List](extension_point_list.md) for IntelliJ Platform EPs.
|
||||
### NodeJS
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|---------------------------------------------------------------------------------------------------|-----------------------------------|
|
||||
| [NodeJS.runConfigurationExtension](https://jb.gg/ipe?extensions=NodeJS.runConfigurationExtension) | `NodeJSRunConfigurationExtension` |
|
||||
|
||||
### org.jetbrains.plugins.node-remote-interpreter
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
|
||||
| [org.jetbrains.plugins.node-remote-interpreter.nodeRemoteInterpreterTargetEnvironmentFactory](https://jb.gg/ipe?extensions=org.jetbrains.plugins.node-remote-interpreter.nodeRemoteInterpreterTargetEnvironmentFactory) | `NodeRemoteInterpreterTargetEnvironmentFactory` |
|
||||
|
||||
### org.jetbrains.plugins.sass
|
||||
|
||||
| Extension Point | Implementation |
|
||||
|-----------------|----------------|
|
||||
|-----------------------------------------------------------------------------------------|-----------------|
|
||||
| [com.intellij.sass.extension](https://jb.gg/ipe?extensions=com.intellij.sass.extension) | `SassExtension` |
|
||||
|
||||
[experimental]: https://img.shields.io/badge/-Experimental_API-red?style=flat-square
|
||||
|
@ -80,7 +80,7 @@ Please see [`Rearranger`](upsource:///platform/code-style-api/src/com/intellij/p
|
||||
|
||||
_2021.3_
|
||||
|
||||
Register `com.intellij.formatting.service.AsyncDocumentFormattingService` implementation in extension point `com.intellij.formattingService` to invoke external formatter instead of IDE's builtin formatter.
|
||||
Register [`AsyncDocumentFormattingService`](upsource:///platform/code-style-api/src/com/intellij/formatting/service/AsyncDocumentFormattingService.java) implementation in extension point [`com.intellij.formattingService`](https://jb.gg/ipe?extensions=com.intellij.formattingService) to invoke external formatter instead of IDE's builtin formatter.
|
||||
|
||||
**Example**:
|
||||
`com.intellij.sh.formatter.ShExternalFormatter` from _Shell Script_ plugin
|
||||
[`ShExternalFormatter`](upsource:///plugins/sh/src/com/intellij/sh/formatter/ShExternalFormatter.java) from _Shell Script_ plugin
|
||||
|
@ -29,7 +29,7 @@ To associate the file type in the IDE, specify one or more associations as liste
|
||||
|
||||
<tab title="Pre-2019.2">
|
||||
|
||||
To register a file type, the plugin developer provides a subclass of [`FileTypeFactory`](upsource:///platform/platform-api/src/com/intellij/openapi/fileTypes/FileTypeFactory.java), which is registered via the `com.intellij.fileTypeFactory` extension point.
|
||||
To register a file type, the plugin developer provides a subclass of [`FileTypeFactory`](upsource:///platform/ide-core/src/com/intellij/openapi/fileTypes/FileTypeFactory.java), which is registered via the `com.intellij.fileTypeFactory` extension point.
|
||||
|
||||
</tab>
|
||||
</tabs>
|
||||
|
@ -58,7 +58,7 @@ Use lexer information instead of parsed trees if possible.
|
||||
If impossible, use light AST which doesn't create memory-hungry AST nodes inside, so traversing it might be faster.
|
||||
Make sure to traverse only the nodes you need to.
|
||||
|
||||
For indexing XML, also consider using [`NanoXmlUtil`](upsource:///platform/indexing-api/src/com/intellij/util/xml/NanoXmlUtil.java).
|
||||
For indexing XML, also consider using [`NanoXmlUtil`](upsource:///platform/indexing-impl/src/com/intellij/util/xml/NanoXmlUtil.java).
|
||||
|
||||
For stub index, implement [`LightStubBuilder`](upsource:///platform/core-impl/src/com/intellij/psi/stubs/LightStubBuilder.java).
|
||||
For other indexes, you can obtain the light AST manually via `((PsiDependentFileContent) fileContent).getLighterAST()`.
|
||||
@ -85,7 +85,7 @@ Meanwhile, you can try to speed up what you can in your plugin, it'll be benefic
|
||||
Don't do anything expensive in event listeners.
|
||||
Ideally, you should only clear some caches.
|
||||
You can also schedule background processing of events, but be prepared that some new events might be delivered before your background processing starts, and thus the world might have changed by that moment or even in the middle of background processing.
|
||||
Consider using [`MergingUpdateQueue`](upsource:///platform/platform-api/src/com/intellij/util/ui/update/MergingUpdateQueue.java) and `ReadAction.nonBlocking()` to mitigate these issues.
|
||||
Consider using [`MergingUpdateQueue`](upsource:///platform/ide-core/src/com/intellij/util/ui/update/MergingUpdateQueue.java) and `ReadAction.nonBlocking()` to mitigate these issues.
|
||||
|
||||
Massive batches of VFS events can be pre-processed in background, see [`AsyncFileListener`](upsource:///platform/core-api/src/com/intellij/openapi/vfs/AsyncFileListener.java) (2019.2 or later).
|
||||
|
||||
|
@ -14,7 +14,7 @@ Please see [Facet Basics](https://github.com/JetBrains/intellij-sdk-code-samples
|
||||
## Working with Facets
|
||||
|
||||
### Managing Facets
|
||||
To create, search and access the list of facets for a module use [`FacetManager`](upsource:///platform/lang-api/src/com/intellij/facet/FacetManager.java).
|
||||
To create, search and access the list of facets for a module use [`FacetManager`](upsource:///platform/lang-core/src/com/intellij/facet/FacetManager.java).
|
||||
|
||||
### Facet-Based Tool Window
|
||||
A [tool window](tool_windows.md) dependent on the existence of given facet(s) can be registered via `com.intellij.facet.toolWindow` extension point.
|
||||
|
@ -50,7 +50,7 @@ See the [project_model](https://github.com/JetBrains/intellij-sdk-code-samples/t
|
||||
|
||||
## Working with a Custom SDK
|
||||
|
||||
To create a custom SDK, provide a class extending [`SdkType`](upsource:///platform/lang-api/src/com/intellij/openapi/projectRoots/SdkType.java), leave `saveAdditionalData()` blank, and register it in the `com.intellij.sdkType` extension point.
|
||||
To create a custom SDK, provide a class extending [`SdkType`](upsource:///platform/lang-core/src/com/intellij/openapi/projectRoots/SdkType.java), leave `saveAdditionalData()` blank, and register it in the `com.intellij.sdkType` extension point.
|
||||
|
||||
To make SDK settings persistent, override `setupSdkPaths()` and save settings by `modificator.commitChanges()`:
|
||||
|
||||
|
@ -9,7 +9,7 @@ Working with the project wizard can be illustrated with the [RedLine SmallTalk p
|
||||
## Implementing New Module Type
|
||||
|
||||
Additional support for specific tools and technologies is usually done via implementing some certain module type which is attached to the project.
|
||||
New module type should be derived from the class [`ModuleType`](upsource:///platform/lang-api/src/com/intellij/openapi/module/ModuleType.java).
|
||||
New module type should be derived from the class [`ModuleType`](upsource:///platform/lang-core/src/com/intellij/openapi/module/ModuleType.java).
|
||||
|
||||
## Custom Project Wizard
|
||||
|
||||
@ -31,12 +31,12 @@ To create a new module type and an extension
|
||||
```
|
||||
|
||||
to the [`plugin.xml`](https://github.com/bulenkov/RedlineSmalltalk/blob/master/resources/META-INF/plugin.xml).
|
||||
A custom module type should extend the [`ModuleType`](upsource:///platform/lang-api/src/com/intellij/openapi/module/ModuleType.java) generic from [`ModuleBuilder`](upsource:///platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java).
|
||||
A custom module type should extend the [`ModuleType`](upsource:///platform/lang-core/src/com/intellij/openapi/module/ModuleType.java) generic from [`ModuleBuilder`](upsource:///platform/lang-core/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java).
|
||||
The following [module type implementation](https://github.com/bulenkov/RedlineSmalltalk/blob/master/src/st/redline/smalltalk/module/RsModuleType.java) of a custom module type show how this instance can be registered and implemented.
|
||||
|
||||
### Implementing Module Builder
|
||||
|
||||
To set up a new module environment [`ModuleBuilder`](upsource:///platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java) class should be extended and registered as an extension point like the following snippet shows:
|
||||
To set up a new module environment [`ModuleBuilder`](upsource:///platform/lang-core/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java) class should be extended and registered as an extension point like the following snippet shows:
|
||||
|
||||
```xml
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
@ -64,7 +64,7 @@ Refer to [SmallTalk module type](https://github.com/bulenkov/RedlineSmalltalk/bl
|
||||
### Implementing Module Builder Listener
|
||||
|
||||
Module builder listener reacts on a new module creation, which could be done either as a part of the project creation process, or as adding a new module to the already existing project.
|
||||
To provide a certain behavior right after a module has been created, module builder should implement [`ModuleBuilderListener`](upsource:///platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleBuilderListener.java)
|
||||
To provide a certain behavior right after a module has been created, module builder should implement [`ModuleBuilderListener`](upsource:///platform/lang-core/src/com/intellij/ide/util/projectWizard/ModuleBuilderListener.java)
|
||||
Method
|
||||
|
||||
```java
|
||||
@ -85,7 +85,7 @@ public ModuleWizardStep[] createWizardSteps(WizardContext wizardContext, Modules
|
||||
method in a custom [module builder](https://github.com/bulenkov/RedlineSmalltalk/blob/master/src/st/redline/smalltalk/module/RsModuleBuilder.java).
|
||||
If this method returns a non-empty array of ModuleWizardStep objects, new steps will be shown in their indexing order while creating a new module.
|
||||
The following [implementation](https://github.com/bulenkov/RedlineSmalltalk/blob/master/src/st/redline/smalltalk/module/RsModuleWizardStep.java) for the SmallTalk project type illustrates how a custom wizard step can be created.
|
||||
The [`RsModuleWizardStep`](https://github.com/bulenkov/RedlineSmalltalk/blob/master/src/st/redline/smalltalk/module/RsModuleWizardStep.java) class is derived from [`ModuleWizardStep`](upsource:///platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleWizardStep.java), which has two methods to be overridden:
|
||||
The [`RsModuleWizardStep`](https://github.com/bulenkov/RedlineSmalltalk/blob/master/src/st/redline/smalltalk/module/RsModuleWizardStep.java) class is derived from [`ModuleWizardStep`](upsource:///platform/lang-core/src/com/intellij/ide/util/projectWizard/ModuleWizardStep.java), which has two methods to be overridden:
|
||||
|
||||
* ```java
|
||||
public JComponent getComponent();
|
||||
|
@ -85,7 +85,7 @@ For the child of a parent, the `id` attribute becomes compound:
|
||||
{type="tip"}
|
||||
|
||||
## Implementations for Parent-Child Settings
|
||||
Implementations can be based on [`Configurable`](upsource:///platform/platform-api/src/com/intellij/openapi/options/Configurable.java), [`ConfigurableProvider`](upsource:///platform/platform-api/src/com/intellij/openapi/options/ConfigurableProvider.java) or one of their subtypes.
|
||||
Implementations can be based on [`Configurable`](upsource:///platform/ide-core/src/com/intellij/openapi/options/Configurable.java), [`ConfigurableProvider`](upsource:///platform/ide-core/src/com/intellij/openapi/options/ConfigurableProvider.java) or one of their subtypes.
|
||||
For more information about creating Settings implementations, see [Implementations for Settings Extension Points](settings_guide.md#implementations-for-settings-extension-points).
|
||||
|
||||
### Configurable Marker Interfaces
|
||||
|
@ -15,7 +15,7 @@ This document describes adding custom Settings at the Project and Application (o
|
||||
Custom Settings implementations are declared in a plugin's configuration (`plugin.xml`) file using one of two Extension Points (EPs), depending on the level of the Settings.
|
||||
Many [attributes](#settings-declaration-attributes) are shared between the EP declarations.
|
||||
|
||||
Application and Project Settings typically provide an implementation based on the [`Configurable`](upsource:///platform/platform-api/src/com/intellij/openapi/options/Configurable.java) interface because they do not have runtime dependencies.
|
||||
Application and Project Settings typically provide an implementation based on the [`Configurable`](upsource:///platform/ide-core/src/com/intellij/openapi/options/Configurable.java) interface because they do not have runtime dependencies.
|
||||
See [Implementations for Settings Extension Points](#implementations-for-settings-extension-points) for more information.
|
||||
|
||||
> For performance reasons, the recommended approach is to declare as much information as possible about a Settings' implementation using attributes in the Extension Point.
|
||||
@ -51,7 +51,7 @@ See [Settings Declaration Attributes](#settings-declaration-attributes) for deta
|
||||
```
|
||||
|
||||
### Settings Declaration Attributes
|
||||
Readers are encouraged to review the Javadoc comments for [`Configurable`](upsource:///platform/platform-api/src/com/intellij/openapi/options/Configurable.java) because the attribute information applies to `ConfigurableProvider` as well as `Configurable`, as noted.
|
||||
Readers are encouraged to review the Javadoc comments for [`Configurable`](upsource:///platform/ide-core/src/com/intellij/openapi/options/Configurable.java) because the attribute information applies to `ConfigurableProvider` as well as `Configurable`, as noted.
|
||||
This section provides some additional clarification of those comments.
|
||||
|
||||
#### Table of Attributes
|
||||
@ -94,12 +94,12 @@ See the [previous section](#table-of-attributes) for all supported attributes.
|
||||
|
||||
## Implementations for Settings Extension Points
|
||||
Implementations for `com.intellij.projectConfigurable` and `com.intellij.applicationConfigurable` EPs can have one of two bases:
|
||||
* The [`Configurable`](upsource:///platform/platform-api/src/com/intellij/openapi/options/Configurable.java) interface, which provides a named configurable component with a Swing form.
|
||||
* The [`Configurable`](upsource:///platform/ide-core/src/com/intellij/openapi/options/Configurable.java) interface, which provides a named configurable component with a Swing form.
|
||||
Most Settings providers are based on the `Configurable` interface or one of its sub- or supertypes.
|
||||
* The [`ConfigurableProvider`](upsource:///platform/platform-api/src/com/intellij/openapi/options/ConfigurableProvider.java) class, which can hide a configurable component from the Settings dialog based on runtime conditions.
|
||||
* The [`ConfigurableProvider`](upsource:///platform/ide-core/src/com/intellij/openapi/options/ConfigurableProvider.java) class, which can hide a configurable component from the Settings dialog based on runtime conditions.
|
||||
|
||||
### The Configurable Interface
|
||||
Many Settings in the `intellij-community` code base implement `Configurable` or one of its subtypes, such as [`SearchableConfigurable`](upsource:///platform/platform-api/src/com/intellij/openapi/options/SearchableConfigurable.java).
|
||||
Many Settings in the `intellij-community` code base implement `Configurable` or one of its subtypes, such as [`SearchableConfigurable`](upsource:///platform/ide-core/src/com/intellij/openapi/options/SearchableConfigurable.java).
|
||||
Readers are encouraged to review the Javadoc comments for `Configurable`.
|
||||
|
||||
#### Constructors
|
||||
@ -143,7 +143,7 @@ These subtypes are based on `com.intellij.openapi.options.ConfigurableEP`.
|
||||
For example, <menupath>Settings/Preferences | Editor | General | Appearance</menupath> allows adding Settings via [`EditorSmartKeysConfigurableEP`](upsource:///platform/lang-impl/src/com/intellij/application/options/editor/EditorSmartKeysConfigurableEP.java) and `com.intellij.editorSmartKeysConfigurable` EP.
|
||||
|
||||
### The ConfigurableProvider Class
|
||||
The [`ConfigurableProvider`](upsource:///platform/platform-api/src/com/intellij/openapi/options/ConfigurableProvider.java) class only provides a `Configurable` implementation if its runtime conditions are met.
|
||||
The [`ConfigurableProvider`](upsource:///platform/ide-core/src/com/intellij/openapi/options/ConfigurableProvider.java) class only provides a `Configurable` implementation if its runtime conditions are met.
|
||||
The IntelliJ Platform first calls the `ConfigurableProvider.canCreateConfigurable()`, which evaluates runtime conditions to determine if Settings changes make sense in the current context.
|
||||
If the Settings make sense to display, `canCreateConfigurable()` returns `true`.
|
||||
In that case the IntelliJ Platform calls `ConfigurableProvider.createConfigurable()`, which returns the `Configurable` object for its Settings implementation.
|
||||
|
@ -10,11 +10,11 @@ Reference: [OSS plugins providing VCS](https://jb.gg/ipe?extensions=com.intellij
|
||||
|
||||
### FilePath
|
||||
|
||||
A [`FilePath`](upsource:///platform/platform-api/src/com/intellij/openapi/vcs/FilePath.java) represents a path to a file or directory on disk or in the VCS repository.
|
||||
A [`FilePath`](upsource:///platform/ide-core/src/com/intellij/openapi/vcs/FilePath.java) represents a path to a file or directory on disk or in the VCS repository.
|
||||
Unlike a [`VirtualFile`](upsource:///platform/core-api/src/com/intellij/openapi/vfs/VirtualFile.java), a `FilePath` can represent a path to a file which doesn't exist on disk.
|
||||
The main difference between a `FilePath` and a [`java.io.File`](https://docs.oracle.com/javase/8/docs/api/java/io/File.html) is that a `FilePath` caches the [`VirtualFile`](upsource:///platform/core-api/src/com/intellij/openapi/vfs/VirtualFile.java) corresponding to the path, so it can be retrieved without doing a VFS search.
|
||||
The main difference between a `FilePath` and a [`java.io.File`](https://docs.oracle.com/javase/8/docs/api/java/io/File.html) is that a `FilePath` caches the `VirtualFile` corresponding to the path, so it can be retrieved without doing a VFS search.
|
||||
|
||||
To create instances of [`FilePath`](upsource:///platform/platform-api/src/com/intellij/openapi/vcs/FilePath.java), the [`VcsContextFactory`](upsource:///platform/vcs-api/src/com/intellij/openapi/vcs/actions/VcsContextFactory.java) API is used.
|
||||
To create instances of `FilePath`, the [`VcsContextFactory`](upsource:///platform/vcs-api/src/com/intellij/openapi/vcs/actions/VcsContextFactory.java) API is used.
|
||||
It can be accessed as`PeerFactory.getInstance().getVcsContextFactory()`
|
||||
|
||||
`FilePath` representing paths in a VCS repository, rather than local paths, are created using `VcsContextFactory.createFilePathOnNonLocal()`.
|
||||
|
@ -64,7 +64,7 @@ Instead, the file type is registered via the `com.intellij.fileType` extension p
|
||||
<tab title="Pre-2019.2">
|
||||
|
||||
### Define a FileType Factory
|
||||
First, define `SimpleFileTypeFactory` as a subclass of [`FileTypeFactory`](upsource:///platform/platform-api/src/com/intellij/openapi/fileTypes/FileTypeFactory.java).
|
||||
First, define `SimpleFileTypeFactory` as a subclass of [`FileTypeFactory`](upsource:///platform/ide-core/src/com/intellij/openapi/fileTypes/FileTypeFactory.java).
|
||||
|
||||
```java
|
||||
```
|
||||
|
@ -67,7 +67,7 @@ When the `EditorHandlerIllustration.actionPerformed()` method clones the caret,
|
||||
An instance of [`EditorActionManager`](upsource:///platform/platform-api/src/com/intellij/openapi/editor/actionSystem/EditorActionManager.java) is required to obtain the correct `EditorActionHandler`.
|
||||
The `EditorActionManager` class provides a static method to do this.
|
||||
|
||||
To request the correct `EditorActionHandler` from `EditorActionManager`, consult the [`IdeActions`](upsource:///platform/platform-api/src/com/intellij/openapi/actionSystem/IdeActions.java) interface for the correct constant to pass into the `EditorActionManager.getActionHandler()` method.
|
||||
To request the correct `EditorActionHandler` from `EditorActionManager`, consult the [`IdeActions`](upsource:///platform/ide-core/src/com/intellij/openapi/actionSystem/IdeActions.java) interface for the correct constant to pass into the `EditorActionManager.getActionHandler()` method.
|
||||
For cloning a caret below the primary caret, the constant is `ACTION_EDITOR_CLONE_CARET_BELOW`.
|
||||
Based on that constant, the `EditorActionManager` returns an instance of [`CloneCaretActionHandler`](upsource:///platform/platform-impl/src/com/intellij/openapi/editor/actions/CloneCaretActionHandler.java), a subclass of `EditorActionHandler`.
|
||||
|
||||
|
@ -57,7 +57,7 @@ public class DemoFramework extends FrameworkTypeEx {
|
||||
## Creating Provider for Enabling Framework Support
|
||||
To make the framework set up available while executing the steps to create a project, the
|
||||
`DemoFramework.createProvider()` method must be implemented to return an object of type [`FrameworkSupportInModuleConfigurable`](upsource:///java/idea-ui/src/com/intellij/framework/addSupport/FrameworkSupportInModuleConfigurable.java), which adds the framework to a module.
|
||||
In this example the framework is added to any [`ModuleType`](upsource:///platform/lang-api/src/com/intellij/openapi/module/ModuleType.java) without checking, which is usually not the case.
|
||||
In this example the framework is added to any [`ModuleType`](upsource:///platform/lang-core/src/com/intellij/openapi/module/ModuleType.java) without checking, which is usually not the case.
|
||||
|
||||
```java
|
||||
@NotNull
|
||||
|
@ -23,7 +23,7 @@ Register a new `com.intellij.moduleBuilder` extension point in the `plugin.xml`
|
||||
|
||||
## Create a Custom Module Builder
|
||||
|
||||
Extend [`ModuleBuilder`](upsource:///platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java) class to provide custom configuration.
|
||||
Extend [`ModuleBuilder`](upsource:///platform/lang-core/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java) class to provide custom configuration.
|
||||
|
||||
```java
|
||||
public class DemoModuleWizardStep extends ModuleBuilder {
|
||||
|
@ -26,7 +26,7 @@ Add a new `com.intellij.moduleType` implementation with the IntelliJ Platform in
|
||||
```
|
||||
|
||||
## Implement ModuleType Interface
|
||||
Create the `DemoModuleType` implementation based on [`ModuleType`](upsource:///platform/lang-api/src/com/intellij/openapi/module/ModuleType.java).
|
||||
Create the `DemoModuleType` implementation based on [`ModuleType`](upsource:///platform/lang-core/src/com/intellij/openapi/module/ModuleType.java).
|
||||
|
||||
`getNodeIcon()` should return module type specific icon.
|
||||
|
||||
@ -35,7 +35,7 @@ Create the `DemoModuleType` implementation based on [`ModuleType`](upsource:///p
|
||||
{src="module/src/main/java/org/intellij/sdk/module/DemoModuleType.java"}
|
||||
|
||||
## Implement Custom Module Builder
|
||||
Create `DemoModuleBuilder` based on [`ModuleBuilder`](upsource:///platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java).
|
||||
Create `DemoModuleBuilder` based on [`ModuleBuilder`](upsource:///platform/lang-core/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java).
|
||||
|
||||
```java
|
||||
```
|
||||
@ -43,7 +43,7 @@ Create `DemoModuleBuilder` based on [`ModuleBuilder`](upsource:///platform/lang-
|
||||
|
||||
## Provide Custom Wizard Steps
|
||||
Provide a straightforward implementation of UI components for the project creating stage.
|
||||
Create a generic `DemoModuleWizardStep` based on [ModuleWizardStep](upsource:///platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleWizardStep.java)
|
||||
Create a generic `DemoModuleWizardStep` based on [`ModuleWizardStep`](upsource:///platform/lang-core/src/com/intellij/ide/util/projectWizard/ModuleWizardStep.java)
|
||||
|
||||
```java
|
||||
```
|
||||
|
@ -25,7 +25,7 @@ Add new `com.intellij.configurationType` extension to the [plugin.xml](https://g
|
||||
|
||||
## Implement ConfigurationType
|
||||
|
||||
Implement [`ConfigurationType`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ConfigurationType.java) interface registered in the Step 1.
|
||||
Implement [`ConfigurationType`](upsource:///platform/execution/src/com/intellij/execution/configurations/ConfigurationType.java) interface registered in the Step 1.
|
||||
|
||||
```java
|
||||
```
|
||||
@ -33,13 +33,13 @@ Implement [`ConfigurationType`](upsource:///platform/lang-api/src/com/intellij/e
|
||||
|
||||
## Implement a ConfigurationFactory
|
||||
|
||||
Implement a new [`ConfigurationFactory`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/ConfigurationFactory.java) through which custom run configurations will be created.
|
||||
Implement a new [`ConfigurationFactory`](upsource:///platform/execution/src/com/intellij/execution/configurations/ConfigurationFactory.java) through which custom run configurations will be created.
|
||||
|
||||
```java
|
||||
```
|
||||
{src="run_configuration/src/main/java/org/jetbrains/sdk/runConfiguration/DemoConfigurationFactory.java"}
|
||||
|
||||
Implement corresponding configuration options class extending [`RunConfigurationOptions`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/RunConfigurationOptions.kt) to store settings.
|
||||
Implement corresponding configuration options class extending [`RunConfigurationOptions`](upsource:///platform/execution/src/com/intellij/execution/configurations/RunConfigurationOptions.kt) to store settings.
|
||||
|
||||
```java
|
||||
```
|
||||
@ -49,8 +49,8 @@ Implement corresponding configuration options class extending [`RunConfiguration
|
||||
|
||||
To make your changes visible from the UI, implement a new Run Configuration.
|
||||
|
||||
**Note:** In most of the cases you can derive a custom Run Configuration class from the [`RunConfigurationBase`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/RunConfigurationBase.java).
|
||||
If you need to implement specific settings externalization rules and I/O behaviour, use [`RunConfiguration`](upsource:///platform/lang-api/src/com/intellij/execution/configurations/RunConfiguration.java) interface.
|
||||
**Note:** In most of the cases you can derive a custom Run Configuration class from the [`RunConfigurationBase`](upsource:///platform/execution/src/com/intellij/execution/configurations/RunConfigurationBase.java).
|
||||
If you need to implement specific settings externalization rules and I/O behaviour, use [`RunConfiguration`](upsource:///platform/execution/src/com/intellij/execution/configurations/RunConfiguration.java) interface.
|
||||
|
||||
```java
|
||||
```
|
||||
|
@ -90,7 +90,7 @@ An explanation of this declaration can be found in [Declaring Application Settin
|
||||
```
|
||||
|
||||
### Creating the AppSettingsConfigurable Implementation
|
||||
The `AppSettingsConfigurable` class implements [`Configurable`](upsource:///platform/platform-api/src/com/intellij/openapi/options/Configurable.java) interface.
|
||||
The `AppSettingsConfigurable` class implements [`Configurable`](upsource:///platform/ide-core/src/com/intellij/openapi/options/Configurable.java) interface.
|
||||
The class has one field to hold a reference to the `AppSettingsComponent`.
|
||||
|
||||
```java
|
||||
|
@ -58,7 +58,7 @@ Please see also [Validation errors](https://jetbrains.design/intellij/principles
|
||||
To validate the data entered into the dialog, override the `doValidate()` method.
|
||||
The method will be called automatically by timer.
|
||||
If the currently entered data is valid, return `null`.
|
||||
Otherwise, return a [`ValidationInfo`](upsource:///platform/platform-api/src/com/intellij/openapi/ui/ValidationInfo.java) object which encapsulates an error message, and an optional component associated with the invalid data.
|
||||
Otherwise, return a [`ValidationInfo`](upsource:///platform/ide-core/src/com/intellij/openapi/ui/ValidationInfo.java) object which encapsulates an error message, and an optional component associated with the invalid data.
|
||||
When specifying a component, an error icon will be displayed next to it, and it will be focused when the user tries to invoke the <control>OK</control> action.
|
||||
|
||||
## Example
|
||||
|
@ -10,8 +10,8 @@ This method has multiple overloads.
|
||||
The best method to use is the one which returns void and takes a callback receiving the list of selected files as a parameter.
|
||||
This is the only overload which will display a native file open dialog on macOS.
|
||||
|
||||
The [`FileChooserDescriptor`](upsource:///platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java) class allows you to control which files can be selected.
|
||||
The constructor parameters specify whether files and/or directories can be selected, and whether multiple selection is allowed (see [FileChooserDescriptorFactory](upsource:///platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptorFactory.java) for common variants).
|
||||
The [`FileChooserDescriptor`](upsource:///platform/ide-core/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java) class allows you to control which files can be selected.
|
||||
The constructor parameters specify whether files and/or directories can be selected, and whether multiple selection is allowed (see [`FileChooserDescriptorFactory`](upsource:///platform/ide-core/src/com/intellij/openapi/fileChooser/FileChooserDescriptorFactory.java) for common variants).
|
||||
|
||||
For more fine-grained control over the allowed selection, you can overload the `isFileSelectable()` method.
|
||||
You can also customize the presentation of files by overriding `getIcon()`, `getName()` and `getComment()` methods.
|
||||
|
@ -271,7 +271,7 @@ return panel {
|
||||
|
||||
**Reference**: [Settings Guide](settings_guide.md)
|
||||
|
||||
If you're using the UI DSL to implement a [`Configurable`](upsource:///platform/platform-api/src/com/intellij/openapi/options/Configurable.java), use [`BoundConfigurable`](upsource:///platform/platform-api/src/com/intellij/openapi/options/BoundConfigurable.kt) as the base class.
|
||||
If you're using the UI DSL to implement a [`Configurable`](upsource:///platform/ide-core/src/com/intellij/openapi/options/Configurable.java), use [`BoundConfigurable`](upsource:///platform/platform-api/src/com/intellij/openapi/options/BoundConfigurable.kt) as the base class.
|
||||
In this case, the `Configurable` methods will be automatically delegated to the panel.
|
||||
|
||||
## Enabling and Disabling Controls
|
||||
|
@ -32,7 +32,7 @@ Use to highlight important new/changed features via [`GotItMessage`](upsource://
|
||||
|
||||
### Top-Level Notifications (Balloons)
|
||||
|
||||
The most general way to display non-modal notifications is to use the [`Notifications`](upsource:///platform/platform-api/src/com/intellij/notification/Notifications.java) class.
|
||||
The most general way to display non-modal notifications is to use the [`Notifications`](upsource:///platform/ide-core/src/com/intellij/notification/Notifications.java) class.
|
||||
|
||||
It has two main advantages:
|
||||
|
||||
@ -41,15 +41,15 @@ It has two main advantages:
|
||||
|
||||
For UI reference, see [Balloon](https://jetbrains.design/intellij/controls/balloon/) in the IntelliJ Platform UI Guidelines.
|
||||
|
||||
The specific method used to display a notification is [`Notifications.Bus.notify()`](upsource:///platform/platform-api/src/com/intellij/notification/Notifications.java). If the current Project is known, please use overload with `Project` parameter, so the notification is shown in its associated frame.
|
||||
The specific method used to display a notification is [`Notifications.Bus.notify()`](upsource:///platform/ide-core/src/com/intellij/notification/Notifications.java). If the current Project is known, please use overload with `Project` parameter, so the notification is shown in its associated frame.
|
||||
|
||||
The text of the notification can include HTML tags.
|
||||
|
||||
Use `Notification.addAction(AnAction)` to add links below the content, use [`NotificationAction`](upsource:///platform/platform-api/src/com/intellij/notification/NotificationAction.java) for convenience.
|
||||
Use `Notification.addAction(AnAction)` to add links below the content, use [`NotificationAction`](upsource:///platform/ide-core/src/com/intellij/notification/NotificationAction.java) for convenience.
|
||||
|
||||
The `groupId` parameter of the [`Notification`](upsource:///platform/platform-api/src/com/intellij/notification/Notification.java) constructor specifies a notification type. The user can choose the display type corresponding to each notification type under <menupath>Settings/Preferences | Appearance & Behavior | Notifications</menupath>.
|
||||
The `groupId` parameter of the [`Notification`](upsource:///platform/ide-core/src/com/intellij/notification/Notification.java) constructor specifies a notification type. The user can choose the display type corresponding to each notification type under <menupath>Settings/Preferences | Appearance & Behavior | Notifications</menupath>.
|
||||
|
||||
To specify the preferred display type, you need to use [`NotificationGroup`](upsource:///platform/platform-api/src/com/intellij/notification/NotificationGroup.kt) to create notifications.
|
||||
To specify the preferred display type, you need to use [`NotificationGroup`](upsource:///platform/ide-core/src/com/intellij/notification/NotificationGroup.kt) to create notifications.
|
||||
|
||||
Please see the following steps for setup, depending on the target platform version.
|
||||
|
||||
|
@ -28,7 +28,7 @@ for popups with a variable and potentially large number of items, speed search t
|
||||
|
||||
### List Popups
|
||||
|
||||
If you need to create a list-like popup which is more flexible than a simple [`JList`](https://docs.oracle.com/javase/8/docs/api/javax/swing/JList.html) but don't want to represent the possible choices as actions in an action group, you can work directly with the [`ListPopupStep`](upsource:///platform/platform-api/src/com/intellij/openapi/ui/popup/ListPopupStep.java) interface and the [`JBPopupFactory.createListPopup()`](upsource:///platform/platform-api/src/com/intellij/openapi/ui/popup/JBPopupFactory.java) method.
|
||||
If you need to create a list-like popup which is more flexible than a simple [`JList`](https://docs.oracle.com/javase/8/docs/api/javax/swing/JList.html) but don't want to represent the possible choices as actions in an action group, you can work directly with the [`ListPopupStep`](upsource:///platform/ide-core/src/com/intellij/openapi/ui/popup/ListPopupStep.java) interface and the [`JBPopupFactory.createListPopup()`](upsource:///platform/platform-api/src/com/intellij/openapi/ui/popup/JBPopupFactory.java) method.
|
||||
Normally you don't need to implement the entire interface; instead, you can derive from the [`BaseListPopupStep`](upsource:///platform/platform-api/src/com/intellij/openapi/ui/popup/util/BaseListPopupStep.java) class.
|
||||
The key methods to override are `getTextFor()` (returning the text to display for an item) and `onChosen()` (called when an item is selected).
|
||||
By returning a new popup step from the `onChosen()` method, you can implement hierarchical (nested) popups.
|
||||
|
@ -69,13 +69,13 @@ Displaying the contents of many tool windows requires access to [indexes](indexi
|
||||
Because of that, tool windows are normally disabled while building indexes unless the `ToolWindowFactory` implements [`DumbAware`](upsource:///platform/core-api/src/com/intellij/openapi/project/DumbAware.java). For programmatic setup, parameter `canWorkInDumbMode` must be set to `true` in calls to `registerToolWindow()`.
|
||||
|
||||
As mentioned previously, tool windows can contain multiple tabs, or contents.
|
||||
To manage the contents of a tool window, call [`ToolWindow.getContentManager()`](upsource:///platform/platform-api/src/com/intellij/openapi/wm/ToolWindow.java).
|
||||
To add a tab (content), first create it by calling [`ContentManager.getFactory().createContent()`](upsource:///platform/platform-api/src/com/intellij/ui/content/ContentManager.java), and then to add it to the tool window using [`ContentManager.addContent()`](upsource:///platform/platform-api/src/com/intellij/ui/content/ContentManager.java).
|
||||
To manage the contents of a tool window, call [`ToolWindow.getContentManager()`](upsource:///platform/ide-core/src/com/intellij/openapi/wm/ToolWindow.java).
|
||||
To add a tab (content), first create it by calling [`ContentManager.getFactory().createContent()`](upsource:///platform/ide-core/src/com/intellij/ui/content/ContentManager.java), and then to add it to the tool window using [`ContentManager.addContent()`](upsource:///platform/ide-core/src/com/intellij/ui/content/ContentManager.java).
|
||||
|
||||
A plugin can control whether the user is allowed to close tabs either globally or on a per-tab basis.
|
||||
The former is done by passing the `canCloseContents` parameter to the `registerToolWindow()` function, or by specifying `canCloseContents="true"` in <path>plugin.xml</path>.
|
||||
The default value is `false`; calling `setClosable(true)` on `ContentManager` content will be ignored unless `canCloseContents` is explicitly set.
|
||||
If closing tabs is enabled in general, a plugin can disable closing of specific tabs by calling [`Content.setCloseable(false)`](upsource:///platform/platform-api/src/com/intellij/ui/content/Content.java).
|
||||
If closing tabs is enabled in general, a plugin can disable closing of specific tabs by calling [`Content.setCloseable(false)`](upsource:///platform/ide-core/src/com/intellij/ui/content/Content.java).
|
||||
|
||||
## Sample Plugin
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user