escape $PATH$ notation

This commit is contained in:
Yann Cébron 2024-06-11 18:04:04 +02:00
parent 2ec0c9f755
commit b8830c37f1
27 changed files with 87 additions and 86 deletions

View File

@ -178,7 +178,7 @@ See the [](bundling_plugin_openapi_sources.md) section for details.
### The Plugin Verifier download directory is set to [...], but downloaded IDEs were also found in [...]
With the `1.10.0` release, the [`runPluginVerifier`](tools_gradle_intellij_plugin.md#tasks-runpluginverifier) task uses the `XDG_CACHE_HOME` environment variable (see [XDG Base Directory](https://wiki.archlinux.org/title/XDG_Base_Directory) for more details) to resolve the default directory for downloaded IDEs instead of the user's home directory.
We recommend moving your existing IDEs stored i.e., in <path>~/.pluginVerifier/ides/</path> directory into <path>$XDG_CACHE_HOME/pluginVerifier/ides</path> to avoid downloading them once again.
We recommend moving your existing IDEs stored i.e., in <path>~/.pluginVerifier/ides/</path> directory into <path>\$XDG_CACHE_HOME\$/pluginVerifier/ides</path> to avoid downloading them once again.
In case you want to keep the downloaded archives in the previous location, specify the given path explicitly to the [`runPluginVerifier.downloadDir`](tools_gradle_intellij_plugin.md#tasks-runpluginverifier-downloaddir) property:

View File

@ -135,7 +135,7 @@ The provided `testFramework(type, version)` helper method makes it possible to
|--------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| `testFramework(type, version)` | Adds a dependency on Test Framework or its variant using [`TestFrameworkType`](tools_intellij_platform_gradle_plugin_types.md#TestFrameworkType) type. |
> In rare cases, when the presence of a bundled <path>$PLATFORM_PATH$/lib/testFramework.jar</path> library is necessary (like in the case of [Rider](rider.md), as its `test-framework` is not published as an artifact),
> In rare cases, when the presence of a bundled <path>\$PLATFORM_PATH\$/lib/testFramework.jar</path> library is necessary (like in the case of [Rider](rider.md), as its `test-framework` is not published as an artifact),
> it is possible to attach it by using the [`TestFrameworkType.Platform.Bundled`](tools_intellij_platform_gradle_plugin_types.md#TestFrameworkType) type.
{style="warning"}

View File

@ -226,7 +226,7 @@ To exclude a group from appearing in <ui-path>Help | Find Action</ui-path> resul
> to highlight such problems.
>
Action and group localization use resource bundles containing property files named <path>$NAME$Bundle.properties</path>, each file consisting of `key=value` pairs.
Action and group localization use resource bundles containing property files named <path>\$NAME\$Bundle.properties</path>, each file consisting of `key=value` pairs.
The [`action_basics`](%gh-sdk-samples-master%/action_basics) plugin demonstrates using a resource bundle to localize the group and action entries added to the Editor Popup Menu.
When localizing actions and groups, the `text` and `description` attributes are not declared in <path>plugin.xml</path>.

View File

@ -74,7 +74,7 @@ The wizard can be used for both DevKit-based and Gradle-based plugins.
It is a good practice to include the name of the plugin in the created theme name.
3. Check the <control>Dark theme</control> checkbox if the created theme should be based on IntelliJ IDEA _Darcula_ theme.
Otherwise, the _Light_ theme will be used as the base.
4. Click <control>OK</control> button to generate the [theme description file](themes_customize.md#introduction-to-theme-description-file-syntax) with <path>$THEME_NAME$.theme.json</path> name. The generated theme will be automatically configured in the <path>plugin.xml</path> file.
4. Click <control>OK</control> button to generate the [theme description file](themes_customize.md#introduction-to-theme-description-file-syntax) with <path>\$THEME_NAME\$.theme.json</path> name. The generated theme will be automatically configured in the <path>plugin.xml</path> file.
</procedure>

View File

@ -1,4 +1,4 @@
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# Deploying a Theme
@ -10,8 +10,8 @@ The deployment process prepares the plugin artifact that can be installed in IDE
<procedure title="Deploying Theme Plugin">
1. Build the theme by invoking <ui-path>Build | Build Project</ui-path> or <ui-path>Build | Build Module $MODULE_NAME$</ui-path>.
2. Create the deployment artifact by invoking <ui-path>Build | Prepare Plugin Module $MODULE_NAME$ for Deployment</ui-path>.
1. Build the theme by invoking <ui-path>Build | Build Project</ui-path> or <ui-path>Build | Build Module \$MODULE_NAME\$</ui-path>.
2. Create the deployment artifact by invoking <ui-path>Build | Prepare Plugin Module \$MODULE_NAME\$ for Deployment</ui-path>.
The resulting theme JAR file will be created in the project or module directory.

View File

@ -37,7 +37,7 @@ The content of the default file generated with the [Theme wizard](creating_theme
}
```
* `name` key matches the first portion of the Theme description <path>$THEME_NAME$.theme.json</path> file name. The value of `name` is displayed in the [Theme](https://www.jetbrains.com/help/idea/settings-appearance.html) <control>Settings</control> dropdown when the theme's plugin is installed in the IDE.
* `name` key matches the first portion of the Theme description <path>\$THEME_NAME\$.theme.json</path> file name. The value of `name` is displayed in the [Theme](https://www.jetbrains.com/help/idea/settings-appearance.html) <control>Settings</control> dropdown when the theme's plugin is installed in the IDE.
* `author` - specifies the theme author (empty by default).
* `dark` - determines the base theme (_Light_ or _Darcula_) that is customized.
* `editorScheme` - specifies the editor scheme file that describes fonts and colors used in editors (see [](themes_extras.md#adding-a-custom-editor-scheme) for more details).

View File

@ -1,6 +1,6 @@
# IDE Development Instance
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# IDE Development Instance
<link-summary>Overview of IDE instance used for running and debugging a plugin during development.</link-summary>
@ -123,8 +123,8 @@ This information is stored in a different location than for the [installed IDE i
<tab title="Gradle" group-key="gradle">
The default Sandbox Home location in a plugin Gradle project is:
* Windows: <path>$PROJECT_DIRECTORY$\\build\\idea-sandbox</path>
* Linux/macOS: <path>$PROJECT_DIRECTORY$/build/idea-sandbox</path>
* Windows: <path>\$PROJECT_DIRECTORY\$\\build\\idea-sandbox</path>
* Linux/macOS: <path>\$PROJECT_DIRECTORY\$/build/idea-sandbox</path>
The Sandbox Home location can be configured with the [`intellij.sandboxDir`](tools_gradle_intellij_plugin.md#intellij-extension-sandboxdir) property.
@ -136,9 +136,9 @@ For DevKit-based plugins, the default <control>Sandbox Home</control> location i
See the [Setting Up a Theme Development Environment](setting_up_theme_environment.md#add-intellij-platform-plugin-sdk) for information about how to set up Sandbox Home in IntelliJ Platform SDK.
The default Sandbox Home directory location is:
* Windows: <path>$USER_HOME$\\.$PRODUCT_SYSTEM_NAME$$PRODUCT_VERSION$\\system\\plugins-sandbox\\</path>
* Linux: <path>~/.$PRODUCT_SYSTEM_NAME$$PRODUCT_VERSION$/system/plugins-sandbox/</path>
* macOS: <path>~/Library/Caches/$PRODUCT_SYSTEM_NAME$$PRODUCT_VERSION$/plugins-sandbox/</path>
* Windows: <path>\$USER_HOME\$\\.\$PRODUCT_SYSTEM_NAME\$\$PRODUCT_VERSION\$\\system\\plugins-sandbox\\</path>
* Linux: <path>~/.\$PRODUCT_SYSTEM_NAME\$\$PRODUCT_VERSION\$/system/plugins-sandbox/</path>
* macOS: <path>~/Library/Caches/\$PRODUCT_SYSTEM_NAME\$\$PRODUCT_VERSION\$/plugins-sandbox/</path>
</tab>
</tabs>

View File

@ -58,7 +58,7 @@ For [](tools_intellij_platform_gradle_plugin.md), use [`printBundledPlugins`](to
<tab title="DevKit or non-public plugins">
When using [DevKit](developing_themes.md) and for non-public plugins, locate the plugin's main JAR file containing <path>META-INF/plugin.xml</path> descriptor with [`<id>`](plugin_configuration_file.md#idea-plugin__id) tag (or [`<name>`](plugin_configuration_file.md#idea-plugin__name) if not specified).
Bundled plugins are located in <path>$PRODUCT_ROOT$/plugins/$PLUGIN_NAME$/lib/$PLUGIN_NAME$.jar</path>.
Bundled plugins are located in <path>\$PRODUCT_ROOT\$/plugins/\$PLUGIN_NAME\$/lib/\$PLUGIN_NAME\$.jar</path>.
</tab>

View File

@ -1,4 +1,4 @@
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# Testing FAQ
@ -168,7 +168,7 @@ Use [`WaitFor`](%gh-ic%/platform/util/src/com/intellij/util/WaitFor.java).
### How to test a JVM language?
Plugins supporting a JVM language may require JDK and language standard library to be set up in a test project, so that classes like `java.lang.String` can be correctly resolved during tests.
Tests extending [`LightJavaCodeInsightFixtureTestCase`](%gh-ic%/java/testFramework/src/com/intellij/testFramework/fixtures/LightJavaCodeInsightFixtureTestCase.java) use one of the mock JDKs distributed with the [IntelliJ Community project](https://github.com/JetBrains/intellij-community) sources (notice <path>java/mockJDK-$JAVA_VERSION$</path> directories).
Tests extending [`LightJavaCodeInsightFixtureTestCase`](%gh-ic%/java/testFramework/src/com/intellij/testFramework/fixtures/LightJavaCodeInsightFixtureTestCase.java) use one of the mock JDKs distributed with the [IntelliJ Community project](https://github.com/JetBrains/intellij-community) sources (notice <path>java/mockJDK-\$JAVA_VERSION\$</path> directories).
These JAR files are not available in plugin project dependencies, so the IntelliJ Community sources must be checked out to the machine running the tests, and sources' location must be provided to the test framework.
It's done by setting the `idea.home.path` system property to the absolute path of the checked-out sources in the `test` task configuration:

View File

@ -94,6 +94,7 @@ Consistent text styles are used to standardize references and keywords:
* Filenames are wrapped using `<path>`: `<path>build.gradle.kts</path>` <path>build.gradle.kts</path>.
* File formats are shown as all capital letters: PNG and XML.
* Filename extensions are not capitalized when part of a full filename, path, or URL: <path>plugin.xml</path>.
* When using \$PLACEHOLDER\$ in non-code parts, it must be escaped: `<path>\$PLACEHOLDER\$/somePath</path>`.
* Keyboard shortcuts are wrapped using `<shortcut>`: `press <shortcut>Alt+Insert</shortcut>` becomes "press <shortcut>Alt+Insert</shortcut>".
* See [Guidelines for Highlighting Syntax](#guidelines-for-highlighting-syntax) for best practices for representing code fragments.
* See [Links to IntelliJ Platform Source](#links-to-intellij-platform-source) for more details about representing names of source files in links.

View File

@ -1,4 +1,4 @@
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# AppCode Plugin Development
@ -38,9 +38,9 @@ The table below summarizes the [](tools_gradle_intellij_plugin.md) attributes to
Click on an entry in the table's *Attribute* column to go to the documentation about that attribute.
| `gradle-intellij-plugin` Attribute | Attribute Value |
|--------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`intellij.localPath`](tools_gradle_intellij_plugin.md#intellij-extension-localpath) | <p>Path to locally installed target version of AppCode. For example, for macOS:</p><p><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/AppCode/ch-0/193.5662.55/AppCode.app/Contents</path>.</p> |
| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | <p>Path to locally installed target version of AppCode. For example, for macOS:</p><p><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/AppCode/ch-0/193.5662.55/AppCode.app/Contents</path>.</p> |
|--------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`intellij.localPath`](tools_gradle_intellij_plugin.md#intellij-extension-localpath) | <p>Path to locally installed target version of AppCode. For example, for macOS:</p><p><path>/Users/\$USERNAME\$/Library/Application Support/JetBrains/Toolbox/apps/AppCode/ch-0/193.5662.55/AppCode.app/Contents</path>.</p> |
| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | <p>Path to locally installed target version of AppCode. For example, for macOS:</p><p><path>/Users/\$USERNAME\$/Library/Application Support/JetBrains/Toolbox/apps/AppCode/ch-0/193.5662.55/AppCode.app/Contents</path>.</p> |
The dependency on the AppCode APIs must be declared in the <path>[plugin.xml](plugin_configuration_file.md)</path> file.
As described in [Modules Specific to Functionality](plugin_compatibility.md#modules-specific-to-functionality) table, the [`<depends>`](plugin_configuration_file.md#idea-plugin__depends) tags must declare `com.intellij.modules.appcode` module dependency, or `com.intellij.appcode` plugin dependency for plugins targeting only versions 2020.3+.

View File

@ -1,4 +1,4 @@
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# DataGrip Plugin Development
@ -21,11 +21,11 @@ Click on an entry in the table's *Attribute* column to go to the documentation a
To see how these attributes appear in a similar Gradle build script for PhpStorm, see [](dev_alternate_products.md#configuring-gradle-build-script-using-the-intellij-idea-product-attribute).
| `gradle-intellij-plugin` Attribute | Attribute Value |
|----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | <p>`IU` for IntelliJ IDEA Ultimate.</p><p>_`IC` is incompatible with the required `DatabaseTools` plugin._</p> |
| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | `2019.3` Set to the same version as the DataGrip target version, as set by `runIde.ideDir`. |
| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | `DatabaseTools` Dependency on the bundled `DatabaseTools` plugin. |
| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | <p>Path to locally installed target version of DataGrip. For example, for macOS:</p><p><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/datagrip/ch-0/193.5233.139/DataGrip.app/Contents</path>.</p> |
| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | <p>Path to locally installed target version of DataGrip. For example, for macOS:</p><p><path>/Users/\$USERNAME\$/Library/Application Support/JetBrains/Toolbox/apps/datagrip/ch-0/193.5233.139/DataGrip.app/Contents</path>.</p> |
The dependency on the DataGrip APIs must be declared in the <path>[plugin.xml](plugin_configuration_file.md)</path> file.
As described in [Modules Specific to Functionality](plugin_compatibility.md#modules-specific-to-functionality) table, the [`<depends>`](plugin_configuration_file.md#idea-plugin__depends) tags must declare `com.intellij.database`.

View File

@ -67,11 +67,11 @@ The Go plugin version is explicitly declared because it isn't bundled with Intel
Select a [version](https://plugins.jetbrains.com/plugin/9568-go/versions) of the Go plugin compatible with the IntelliJ Idea Ultimate version.
| Gradle IntelliJ Plugin Attribute | Attribute Value |
|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for IntelliJ IDEA Ultimate. The Go plugin isn't compatible with IntelliJ IDEA Community Edition. |
| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | Set to the same `IU` BRANCH.BUILD as the GoLand target version, e.g. `193.5233.102`. |
| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | <p>`org.jetbrains.plugins.go:193.5233.102.83` for the Go plugin.</p><p>See below for Go plugin version information.</p> |
| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | <p>Path to locally installed target version of GoLand. For example, on macOS:</p><p><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/Goland/ch-0/193.5233.112/GoLand.app/Contents</path>.</p> |
| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | <p>Path to locally installed target version of GoLand. For example, on macOS:</p><p><path>/Users/\$USERNAME\$/Library/Application Support/JetBrains/Toolbox/apps/Goland/ch-0/193.5233.112/GoLand.app/Contents</path>.</p> |
</tab>
@ -99,7 +99,7 @@ To make the plugin compatible with GoLand and other IDEs supporting the Go langu
>
{style="note"}
Use the [Exploring APIs as a Consumer](plugin_compatibility.md#exploring-apis-as-a-consumer) process to identify the library <path>intellij-go-$version$.jar</path>, where `$version$` corresponds to the version of the Go plugin.
Use the [Exploring APIs as a Consumer](plugin_compatibility.md#exploring-apis-as-a-consumer) process to identify the library <path>intellij-go-\$version\$.jar</path>, where `$version$` corresponds to the version of the Go plugin.
Test your plugin with any version of GoLand you intend to support.
## GoLand Test Framework

View File

@ -17,7 +17,7 @@ To develop plugins, you will need to use _IntelliJ IDEA Ultimate Edition_ versio
Setup [Gradle build script](configuring_plugin_project.md#intellij-platform-configuration) to target IntelliJ IDEA Ultimate, then [add dependency](plugin_dependencies.md) to bundled Spring plugin with ID `com.intellij.spring`.
Please use only Spring-related functionality exposed in <path>spring-api.jar</path> (sources are provided in <path>$IDEA_HOME$/lib/src/src_spring-boot-openapi.zip</path>) in your plugin.
Please use only Spring-related functionality exposed in <path>spring-api.jar</path> (sources are provided in <path>\$IDEA_HOME\$/lib/src/src_spring-boot-openapi.zip</path>) in your plugin.
Using any other "internal" (implementation) classes from Spring plugin itself (<path>spring.jar</path>) is _not_ supported.
### plugin.xml
@ -173,7 +173,7 @@ Spring Boot API allows extending/accessing Spring Boot specific support in the I
### Setting Up
[Add dependency](plugin_dependencies.md) to bundled Spring Boot plugin with ID `com.intellij.spring.boot`.
Sources for Spring Boot API are available in <path>$IDEA_HOME$/lib/src/src_spring-boot-openapi.zip</path>.
Sources for Spring Boot API are available in <path>\$IDEA_HOME\$/lib/src/src_spring-boot-openapi.zip</path>.
### Update plugin.xml
Add `<depends>com.intellij.spring.boot</depends>` to your <path>[plugin.xml](plugin_configuration_file.md)</path> to require "Spring Boot" plugin to be activated.

View File

@ -1,4 +1,4 @@
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# PhpStorm Plugin Development
@ -58,11 +58,11 @@ Click on an entry in the table's *Attribute* column to go to the documentation a
To see how these attributes appear in the Gradle build script for PhpStorm, see [](dev_alternate_products.md#configuring-gradle-build-script-using-the-intellij-idea-product-attribute).
| `gradle-intellij-plugin` Attribute | Attribute Value |
|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for IntelliJ IDEA Ultimate. The required PHP plugin isn't compatible with IntelliJ IDEA Community Edition. |
| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | Set to the same `IU` BRANCH.BUILD as the PhpStorm target version, e.g. `193.5233.102`. |
| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | <p>`com.jetbrains.php:193.5233.102` for the PHP plugin.</p><p>See below for PHP plugin version information.</p> |
| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | <p>Path to locally installed target version of PhpStorm. For example, on macOS:</p><p><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/PhpStorm/ch-0/193.5233.101/PhpStorm.app/Contents</path>.</p> |
| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | <p>Path to locally installed target version of PhpStorm. For example, on macOS:</p><p><path>/Users/\$USERNAME\$/Library/Application Support/JetBrains/Toolbox/apps/PhpStorm/ch-0/193.5233.101/PhpStorm.app/Contents</path>.</p> |
The PHP plugin version is explicitly declared because it isn't bundled with IntelliJ IDEA Ultimate Edition.
Select a [version](https://plugins.jetbrains.com/plugin/6610-php/versions) of the PHP plugin compatible with the [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version).

View File

@ -1,4 +1,4 @@
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# Rider Plugin Development
@ -36,7 +36,7 @@ The article is a good counterpoint to the ReSharper DevGuide content, which disc
Rider plugins may introduce their own <path>.DotSettings</path> files with customized [ReSharper settings](https://www.jetbrains.com/help/resharper/Sharing_Configuration_Options.html).
This is useful e.g. when a plugin brings its own file templates.
For the ReSharper part to pick these settings, the settings files should be available in the plugin JAR file under the path <path>dotnet/Extensions/$backend-plugin-id$/settings</path>, where `backend-plugin-id` is calculated according to the following rules:
For the ReSharper part to pick these settings, the settings files should be available in the plugin JAR file under the path <path>dotnet/Extensions/\$backend-plugin-id\$/settings</path>, where `backend-plugin-id` is calculated according to the following rules:
- if the IntelliJ plugin id (the [`<id>`](plugin_configuration_file.md#idea-plugin__id) element of the <path>[plugin.xml](plugin_configuration_file.md)</path>) includes a dot, then `backend-plugin-id` is the same as the IntelliJ plugin id;
- otherwise, the `backend-plugin-id` is a concatenation of the IntelliJ plugin vendor name (the [`<vendor>`](plugin_configuration_file.md#idea-plugin__vendor) element of the <path>plugin.xml</path>) and the IntelliJ plugin id.

View File

@ -1,4 +1,4 @@
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# RubyMine Plugin Development
@ -22,11 +22,11 @@ Click on an entry in the table's *Attribute* column to go to the documentation a
To see how these attributes appear in a similar Gradle build script for PhpStorm, see [](dev_alternate_products.md#configuring-gradle-build-script-using-the-intellij-idea-product-attribute).
| `gradle-intellij-plugin` Attribute | Attribute Value |
|----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for IntelliJ IDEA Ultimate. |
| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | Set to the same `IU` BRANCH.BUILD as the RubyMine target version, e.g. `192.7142.36`. |
| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | <p>`org.jetbrains.plugins.ruby:2019.2.20191029` for the Ruby plugin.</p><p>See below for Ruby plugin version information.</p> |
| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | <p>Path to locally installed target version of RubyMine. For example, on macOS:</p><p><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/RubyMine/ch-0/192.7142.37/RubyMine.app/Contents</path>.</p> |
| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | <p>Path to locally installed target version of RubyMine. For example, on macOS:</p><p><path>/Users/\$USERNAME\$/Library/Application Support/JetBrains/Toolbox/apps/RubyMine/ch-0/192.7142.37/RubyMine.app/Contents</path>.</p> |
The required `org.jetbrains.plugins.ruby` plugin isn't compatible with IntelliJ IDEA Community edition but is compatible with IntelliJ IDEA Ultimate (`IU`) edition.
Product compatibility is determined from the Ruby plugin [version page](https://plugins.jetbrains.com/plugin/1293-ruby/versions).

View File

@ -27,11 +27,11 @@ Click on an entry in the table's *Attribute* column to go to the documentation a
To see how these attributes appear in a similar Gradle build script for PhpStorm, see [](dev_alternate_products.md#configuring-gradle-build-script-using-the-intellij-idea-product-attribute).
| `gradle-intellij-plugin` Attribute | Attribute Value |
|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for [](idea_ultimate.md). |
| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | `192.7142.36` Set to the same BRANCH.BUILD as the WebStorm target version. |
| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | Dependency on the `JavaScript` plugin. |
| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | <p>Path to locally installed target version of WebStorm. For example, for macOS:</p><p><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/WebStorm/ch-0/192.7142.35/WebStorm.app/Contents</path>.</p> |
| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | <p>Path to locally installed target version of WebStorm. For example, for macOS:</p><p><path>/Users/\$USERNAME\$/Library/Application Support/JetBrains/Toolbox/apps/WebStorm/ch-0/192.7142.35/WebStorm.app/Contents</path>.</p> |
The dependency on the WebStorm APIs must be declared in the <path>[plugin.xml](plugin_configuration_file.md)</path> file.
As described in [Modules Specific to Functionality](plugin_compatibility.md#modules-specific-to-functionality) table, the [`<depends>`](plugin_configuration_file.md#idea-plugin__depends) tags must declare `JavaScript`.

View File

@ -1,4 +1,4 @@
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# External Builder API and Plugins
@ -47,7 +47,7 @@ To pass custom data between the invocation of the same builder between multiple
The external builder process uses the standard Java [services](https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html) mechanism to support plugins.
There are several service interfaces (e.g. [`BuilderService`](%gh-ic%/jps/jps-builders/src/org/jetbrains/jps/incremental/BuilderService.java) which can be implemented in plugins to extend the builder functionality.
An implementation of a service needs to be registered by creating the <path>META-INF/services/$service-interface-fqn$</path> file containing the implementation class's qualified name.
An implementation of a service needs to be registered by creating the <path>META-INF/services/\$service-interface-fqn\$</path> file containing the implementation class's qualified name.
E.g. `BuilderService` implementations are registered in <path>META-INF/services/org.jetbrains.jps.incremental.BuilderService</path> file.
These files don't have extensions, so you need to map corresponding patterns to text files in IDE settings.
@ -55,7 +55,7 @@ These files don't have extensions, so you need to map corresponding patterns to
Sources of a plugin for External Builder should be put in a separate module.
By convention, such a module has a name '...-jps-plugin', and its sources are placed under the <path>jps-plugin</path> directory in the main plugin directory.
Use `com.intellij.compileServer.plugin` extension point to add the plugin to the classpath of the external build process, the plugin JAR should be named <path>$JPS_module_name$.jar</path>. <ui-path>Build | Prepare Plugin Module for Deployment</ui-path> action will automatically pack the 'jps-plugin' part to a separate JAR accordingly.
Use `com.intellij.compileServer.plugin` extension point to add the plugin to the classpath of the external build process, the plugin JAR should be named <path>\$JPS_module_name\$.jar</path>. <ui-path>Build | Prepare Plugin Module for Deployment</ui-path> action will automatically pack the 'jps-plugin' part to a separate JAR accordingly.
See [IntelliJ Platform Explorer](https://jb.gg/ipe?extensions=com.intellij.compileServer.plugin) for samples.
@ -91,14 +91,14 @@ The build process has built-in self-CPU-profiling capabilities.
<procedure title="Enabling CPU profiling for build process">
1. _2023.2+_ Install [YourKit Profiler for IDE Performance Testing](https://plugins.jetbrains.com/plugin/20892-yourkit-profiler-for-ide-performance-testing) plugin
2. Copy <path>$IDE_HOME$/lib/yjp-controller-api-redist.jar</path> and <path>$IDE_HOME$/bin/yjpagent.*</path> files to <path>$IDE_SYSTEM_DIR$/compile-server</path>
2. Copy <path>\$IDE_HOME\$/lib/yjp-controller-api-redist.jar</path> and <path>\$IDE_HOME\$/bin/yjpagent.*</path> files to <path>\$IDE_SYSTEM_DIR\$/compile-server</path>
3. In <ui-path>Settings | Build, Execution, Deployment | Compiler | Java Compiler</ui-path> add `-Dprofiling.mode=true` in <control>Additional command line parameters</control>
4. Make sure <control>Build project automatically</control> in <ui-path>Settings | Build, Execution, Deployment | Compiler</ui-path> is disabled
</procedure>
After this, every build process run should result in a CPU snapshot stored in <path>$USER_HOME$/Snapshots</path> directory.
Snapshots are named like <path>ExternalBuild\-\$DATE$.snapshot</path>.
After this, every build process run should result in a CPU snapshot stored in <path>\$USER_HOME\$/Snapshots</path> directory.
Snapshots are named like <path>ExternalBuild\-\$DATE\$.snapshot</path>.
Specifying `-Dprofiling.mode=false` will turn profiling off.
Please capture a couple of snapshots for the situations you believe the build should work much faster than it does.

View File

@ -230,8 +230,8 @@ This allows supporting both UI variants at the same time, depending on what the
1. Create a new <path>expui</path> directory in the icon root directory ([Reference](#organizing-icons)).
2. Copy all icons for the New UI into this directory.
3. Create an empty <path>$PluginName$IconMappings.json</path> mapping file in the resources root directory.
4. Register <path>$PluginName$IconMappings.json</path> in <path>plugin.xml</path> via the `com.intellij.iconMapper` extension point.
3. Create an empty <path>\$PluginName\$IconMappings.json</path> mapping file in the resources root directory.
4. Register <path>\$PluginName\$IconMappings.json</path> in <path>plugin.xml</path> via the `com.intellij.iconMapper` extension point.
</procedure>
@ -243,7 +243,7 @@ This allows supporting both UI variants at the same time, depending on what the
### Mapping Entries
All New UI icons must be mapped in the <path>$PluginName$IconMappings.json</path> mapping file.
All New UI icons must be mapped in the <path>\$PluginName\$IconMappings.json</path> mapping file.
For each New UI icon, add a mapping entry inside `expui` block.
Each directory starts a new block containing all its entries (see linked `MavenIconMappins.json` sample from above).

View File

@ -63,7 +63,7 @@ At best, this will add unnecessary work for translators, but it is also quite po
All NLS strings from a module should be added to a <path>*.properties</path> file.
A standard location of message files in JAR is <path>/messages/\*.properties</path>.
In [Gradle-based plugin](developing_plugins.md#gradle-intellij-plugin) project sources, message files are located in <path>$MODULE_ROOT$/src/main/resources/messages/\*.properties</path>.
In [Gradle-based plugin](developing_plugins.md#gradle-intellij-plugin) project sources, message files are located in <path>\$MODULE_ROOT\$/src/main/resources/messages/\*.properties</path>.
> A standard convention for naming message bundle properties file is <path>*Bundle.properties</path>.

View File

@ -44,7 +44,7 @@ Only a single language pack can be installed at the same time, and restart is re
See the [translated elements](#translated-elements) list for the elements possible to translate.
All the elements should be located in exactly the same paths as in original locations in their JAR files.
For example, if the original location of a message bundle is <path>$PLUGIN_JAR$/messages/AbcBundle.properties</path>, it must be located in <path>$LANGUAGE_PACK_JAR$/messages/AbcBundle.properties</path>.
For example, if the original location of a message bundle is <path>\$PLUGIN_JAR\$/messages/AbcBundle.properties</path>, it must be located in <path>\$LANGUAGE_PACK_JAR\$/messages/AbcBundle.properties</path>.
It is allowed to organize them within [localization directories or with file name language suffixes](#bundled-translations-structure), but it is unnecessary as language pack can define only a single language.

View File

@ -15,7 +15,7 @@ A library is an archive of compiled code (such as JAR files) that modules depend
The IntelliJ Platform supports three types of libraries:
* **Module Library**: the library classes are visible only in this module and the library information is recorded in the module <path>.iml</path> file.
* **Project Library**: the library classes are visible within the project and the library information is recorded under <path>.idea/libraries</path> directory or in the project <path>.ipr</path> file.
* **Global Library**: the library information is recorded in the <path>applicationLibraries.xml</path> file in <path>$USER_HOME$/.IntelliJIdea/config/options</path> directory. Global libraries are similar to project libraries, but are visible for different projects.
* **Global Library**: the library information is recorded in the <path>applicationLibraries.xml</path> file in <path>\$USER_HOME\$/.IntelliJIdea/config/options</path> directory. Global libraries are similar to project libraries, but are visible for different projects.
A particular type of programmatically defined libraries is [Predefined Libraries](#predefined-libraries).

View File

@ -15,11 +15,11 @@
The IntelliJ Platform stores the project configuration data in XML files.
The list of those files depends on the chosen [project format](https://www.jetbrains.com/help/idea/creating-and-managing-projects.html#project-formats).
For file-based format projects (legacy), the information core to the project itself (e.g., location of the component modules, compiler settings, etc.) is stored in the <path>$project_name$.ipr</path> file.
The information about modules the project includes is stored in <path>$module_name$.iml</path> files.
For file-based format projects (legacy), the information core to the project itself (e.g., location of the component modules, compiler settings, etc.) is stored in the <path>\$project_name\$.ipr</path> file.
The information about modules the project includes is stored in <path>\$module_name\$.iml</path> files.
Module files are created for each module.
For directory-based format projects, the project and workspace settings are stored in a number of XML files under the <path>$project_home_directory$/.idea</path> directory.
For directory-based format projects, the project and workspace settings are stored in a number of XML files under the <path>\$project_home_directory\$/.idea</path> directory.
Each XML file is responsible for its own set of settings and can be recognized by its name: <path>projectCodeStyle.xml</path>, <path>encodings.xml</path>, <path>vcs.xml</path> etc.
As for the file-based format projects, <path>.iml</path> files describe modules.

View File

@ -22,9 +22,9 @@ Launch the <control>New Project</control> wizard via the <ui-path>File | New | P
For this example select the <control>Kotlin</control> option.
See also [Kotlin for Plugin Developers](using_kotlin.md) for more information.
> Projects generated with IntelliJ IDEA 2023.1 or newer, support both Kotlin and Java sources out of the box.
> Project generator automatically creates <path>$PLUGIN_DIR$/src/main/kotlin</path> sources directory.
> To add Java sources, create <path>$PLUGIN_DIR$/src/main/java</path> directory.
> Projects generated with IntelliJ IDEA 2023.1 or newer support both Kotlin and Java sources out of the box.
> Project generator automatically creates <path>\$PLUGIN_DIR\$/src/main/kotlin</path> sources directory.
> To add Java sources, create <path>\$PLUGIN_DIR\$/src/main/java</path> directory.
>
{style="note"}

View File

@ -116,9 +116,9 @@ See the [Inspections](inspections.md) topic in UI Guidelines on important guidel
Implicit in using [`LocalInspectionTool`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInspection/LocalInspectionTool.java) in the class hierarchy of the inspection implementation means following some conventions.
* The inspection description file is expected to be located under <path>$RESOURCES_ROOT_DIRECTORY$/inspectionDescriptions/</path>.
* The inspection description file is expected to be located under <path>\$RESOURCES_ROOT_DIRECTORY\$/inspectionDescriptions/</path>.
If the inspection description file is to be located elsewhere, override `getDescriptionUrl()` in the inspection implementation class.
* The name of the description file is expected to be the inspection <path>$SHORT_NAME$.html</path> as provided by the inspection description, or the inspection implementation class.
* The name of the description file is expected to be the inspection <path>\$SHORT_NAME\$.html</path> as provided by the inspection description, or the inspection implementation class.
If a short name is not provided, the IntelliJ Platform computes one by removing `Inspection` suffix from the implementation class name.
#### Code Snippets

View File

@ -1,6 +1,6 @@
# Postfix Templates
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# Postfix Templates
<link-summary>Postfix templates implement possibility to modify or wrap the existing code in additional constructs without navigating the caret back.</link-summary>
@ -39,13 +39,13 @@ class and implementing the key methods:
## Postfix Template Description
All postfix templates must provide descriptions and examples showing the code before and after a template is expanded.
The files describing the template must be placed in the plugin's <path>resources</path> in the <path>postfixTemplates/_$TEMPLATE_NAME$_</path> where the _$TEMPLATE_NAME$_ directory must match the simple name of the template class,
The files describing the template must be placed in the plugin's <path>resources</path> in the <path>postfixTemplates/\$TEMPLATE_NAME\$</path> where the _\$TEMPLATE_NAME\$_ directory must match the simple name of the template class,
e.g., for a template implemented in `com.example.IntroduceVariablePostfixTemplate` class, the directory name should be named as <path>IntroduceVariablePostfixTemplate</path>.
Providing the description explaining the template purpose and context details is achieved by creating the <path>description.html</path> file.
Providing the code snippets showing the template in "before" and "after" expanding states is achieved via the <path>before._$EXTENSION$_.template</path> and <path>after._$EXTENSION$_.template</path> files accordingly.
The _$EXTENSION$_ placeholder should be replaced with the extension of the template language, e.g., <path>before.kt.template</path> for a Kotlin template.
Providing the code snippets showing the template in "before" and "after" expanding states is achieved via the <path>before.\$EXTENSION\$.template</path> and <path>after.\$EXTENSION\$.template</path> files accordingly.
The _\$EXTENSION\$_ placeholder should be replaced with the extension of the template language, e.g., <path>before.kt.template</path> for a Kotlin template.
The code snippets included in the example files can use the `<spot>` marker, which should surround the most important code parts, e.g., expression to expand and position of the caret after expanding.
Marked parts will be highlighted in the <ui-path>Settings | Editor | General | Postfix Completion</ui-path> settings page, making it easier for users to understand how a template is expanded, e.g.: