remove 2019 content

This commit is contained in:
Yann Cébron 2025-04-24 17:14:08 +02:00
parent 648f05f384
commit 66b6e38ecc
20 changed files with 28 additions and 46 deletions

View File

@ -3,8 +3,6 @@
## Quickstart ## Quickstart
Custom themes are available beginning in version 2019.1.
Creating a custom theme is a process of choosing a base IDE Theme (Light or Darcula) then changing aspects of the base Theme definition. Creating a custom theme is a process of choosing a base IDE Theme (Light or Darcula) then changing aspects of the base Theme definition.
Custom themes can: Custom themes can:
- substitute icons, - substitute icons,

View File

@ -72,7 +72,7 @@ project.getMessageBus().connect().subscribe(
See [Message Infrastructure](messaging_infrastructure.md) and [Plugin Listeners](plugin_listeners.md) for more details. See [Message Infrastructure](messaging_infrastructure.md) and [Plugin Listeners](plugin_listeners.md) for more details.
For a non-blocking alternative, starting with version 2019.2 of the platform, see [`AsyncFileListener`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/AsyncFileListener.java). For a non-blocking alternative see [`AsyncFileListener`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/AsyncFileListener.java).
## Are there any utilities for analyzing and manipulating virtual files? ## Are there any utilities for analyzing and manipulating virtual files?

View File

@ -1,8 +1,8 @@
<!-- Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# Virtual File System # Virtual File System
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. --> <link-summary>Virtual File System is an abstraction that allows working with local, remote, or custom file storages.</link-summary>
<link-summary>Virtual File System is an abstraction that allows to work with local or remote file storages and implement custom.</link-summary>
The Virtual File System (VFS) is a component of the IntelliJ Platform that encapsulates most of its activity for working with files represented as [Virtual File](virtual_file.md). The Virtual File System (VFS) is a component of the IntelliJ Platform that encapsulates most of its activity for working with files represented as [Virtual File](virtual_file.md).
@ -86,7 +86,7 @@ All changes happening in the virtual file system, either due to refresh operatio
VFS events are always fired in the event dispatch thread and in a write action. VFS events are always fired in the event dispatch thread and in a write action.
The most efficient way to listen to VFS events is to implement [`BulkFileListener`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/newvfs/BulkFileListener.java) and to subscribe with it to the [`VirtualFileManager.VFS_CHANGES`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileManager.java) topic. The most efficient way to listen to VFS events is to implement [`BulkFileListener`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/newvfs/BulkFileListener.java) and to subscribe with it to the [`VirtualFileManager.VFS_CHANGES`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileManager.java) topic.
A non-blocking variant [`AsyncFileListener`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/AsyncFileListener.java) is also available in 2019.2 or later. A non-blocking variant [`AsyncFileListener`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/AsyncFileListener.java) is also available.
See [How do I get notified when VFS changes?](virtual_file.md#how-do-i-get-notified-when-vfs-changes) for implementation details. See [How do I get notified when VFS changes?](virtual_file.md#how-do-i-get-notified-when-vfs-changes) for implementation details.
> VFS listeners are application level and will receive events for changes happening in *all* the projects opened by the user. > VFS listeners are application level and will receive events for changes happening in *all* the projects opened by the user.

View File

@ -138,7 +138,4 @@ _Early Access Program_ (EAP) releases of upcoming versions are available [here](
| 2020.3 | [203](https://github.com/JetBrains/intellij-community/tree/203) | **11** ([blog post](https://blog.jetbrains.com/platform/2020/09/intellij-project-migrates-to-java-11/)) | | 2020.3 | [203](https://github.com/JetBrains/intellij-community/tree/203) | **11** ([blog post](https://blog.jetbrains.com/platform/2020/09/intellij-project-migrates-to-java-11/)) |
| 2020.2 | [202](https://github.com/JetBrains/intellij-community/tree/202) | 8 | | 2020.2 | [202](https://github.com/JetBrains/intellij-community/tree/202) | 8 |
| 2020.1 | [201](https://github.com/JetBrains/intellij-community/tree/201) | 8 | | 2020.1 | [201](https://github.com/JetBrains/intellij-community/tree/201) | 8 |
| 2019.3 | [193](https://github.com/JetBrains/intellij-community/tree/193) | 8 |
| 2019.2 | [192](https://github.com/JetBrains/intellij-community/tree/192) | 8 |
| 2019.1 | [191](https://github.com/JetBrains/intellij-community/tree/191) | 8 |

View File

@ -1,11 +1,10 @@
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. --> <!-- Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# Getting Started # Getting Started
<link-summary>Customizing IDE UI by developing a custom theme.</link-summary> <link-summary>Customizing the IDE user interface by developing a custom theme.</link-summary>
Beginning with the 2019.1 release, custom themes are supported. Custom themes allow designers to control the appearance of built-in UI elements.
Custom themes give designers control of the appearance of built-in UI elements.
The customization options include: The customization options include:
- substitute icons, - substitute icons,

View File

@ -267,7 +267,7 @@ This allows users to have the same settings on every development machine or to s
Settings can be shared via the following functionalities: Settings can be shared via the following functionalities:
- _[Backup and Sync](https://www.jetbrains.com/help/idea/sharing-your-ide-settings.html#IDE_settings_sync)_ (formerly _Settings Sync_) plugin that allows synchronizing settings on JetBrains servers. Users can select the category of settings that are synchronized. - _[Backup and Sync](https://www.jetbrains.com/help/idea/sharing-your-ide-settings.html#IDE_settings_sync)_ (formerly _Settings Sync_) plugin that allows synchronizing settings on JetBrains servers. Users can select the category of settings that are synchronized.
- _[Settings Repository](https://www.jetbrains.com/help/idea/sharing-your-ide-settings.html#settings-repository)_ plugin that allows synchronizing settings in a Git repository created and configured by a user. - _[Settings Repository](https://www.jetbrains.com/help/idea/sharing-your-ide-settings.html#settings-repository)_ plugin that allows synchronizing settings in a Git repository created and configured by a user.
- _[Export Settings](https://www.jetbrains.com/help/idea/2019.3/sharing-your-ide-settings.html#import-export-settings)_ feature that allows for the manual import and export of settings. - _[Export Settings](https://www.jetbrains.com/help/idea/sharing-your-ide-settings.html#import-export-settings)_ feature that allows for the manual import and export of settings.
> Synchronization via the _Backup and Sync_ or _Settings Repository_ plugins only works when these plugins are installed and enabled. > Synchronization via the _Backup and Sync_ or _Settings Repository_ plugins only works when these plugins are installed and enabled.

View File

@ -66,7 +66,7 @@ To execute code when a project is being opened, use one of these two [extensions
Implement `DumbAware` to indicate activity can run in a background thread (in parallel with other such tasks). Implement `DumbAware` to indicate activity can run in a background thread (in parallel with other such tasks).
`com.intellij.backgroundPostStartupActivity` `com.intellij.backgroundPostStartupActivity`
: [`StartupActivity.Background`](%gh-ic%/platform/core-api/src/com/intellij/openapi/startup/StartupActivity.kt) for execution with a 5-second delay in a background thread (2019.3 or later). : [`StartupActivity.Background`](%gh-ic%/platform/core-api/src/com/intellij/openapi/startup/StartupActivity.kt) for execution with a 5-second delay in a background thread.
Any long-running or CPU-intensive tasks should be made visible to users by using `ProgressManager.run(Task.Backgroundable)` (see [](background_processes.md)). Any long-running or CPU-intensive tasks should be made visible to users by using `ProgressManager.run(Task.Backgroundable)` (see [](background_processes.md)).
Access to indexes must be wrapped with [`DumbService`](indexing_and_psi_stubs.md#dumb-mode), see also [](threading_model.md). Access to indexes must be wrapped with [`DumbService`](indexing_and_psi_stubs.md#dumb-mode), see also [](threading_model.md).

View File

@ -188,14 +188,12 @@ Add the JARs of the plugin on which the project depends to the <control>Classpat
<procedure title="Adding a plugin dependency in a DevKit-based plugin"> <procedure title="Adding a plugin dependency in a DevKit-based plugin">
1. Open the <control>Project Structure</control> dialog and go to <ui-path>Platform Settings | SDKs</ui-path> section. 1. Open the <control>Project Structure</control> dialog and go to the <ui-path>Platform Settings | SDKs</ui-path> section.
2. Select the SDK used in the project. 2. Select the SDK used in the project.
3. Click the <control>+</control> button in the <control>Classpath</control> tab. 3. Click the <control>+</control> button in the <control>Classpath</control> tab.
4. Select the plugin JAR depending on whether it is a bundled or non-bundled plugin: 4. Select the plugin JAR depending on whether it is a bundled or non-bundled plugin:
- For bundled plugins, the plugin JAR files are located in <path>plugins/\$PLUGIN_NAME\$</path> or <path>plugins/\$PLUGIN_NAME\$/lib</path> under the main installation directory. - For bundled plugins, the plugin JAR files are located in <path>plugins/\$PLUGIN_NAME\$</path> or <path>plugins/\$PLUGIN_NAME\$/lib</path> under the main installation directory.
- For non-bundled plugins, depending on the platform version, the plugin JAR files are located in: - For non-bundled plugins, the plugin JAR files are located in OS-specific [plugins directory](https://www.jetbrains.com/help/idea/directories-used-by-the-ide-to-store-settings-caches-plugins-and-logs.html#plugins-directory)
- [plugins directory for versions 2020.1+](https://www.jetbrains.com/help/idea/directories-used-by-the-ide-to-store-settings-caches-plugins-and-logs.html#plugins-directory)
- [plugins directory for versions pre-2020.1](https://www.jetbrains.com/help/idea/2019.3/tuning-the-ide.html#plugins-directory)
</procedure> </procedure>

View File

@ -4,7 +4,7 @@
<link-summary>Plugin logo requirements and best practices.</link-summary> <link-summary>Plugin logo requirements and best practices.</link-summary>
Beginning in version 2019.1, the IntelliJ Platform supports representing a plugin with a logo. The IntelliJ Platform supports representing a plugin with a logo.
A _Plugin Logo_ is intended to be a unique representation of a plugin's functionality, technology, or company. A _Plugin Logo_ is intended to be a unique representation of a plugin's functionality, technology, or company.
When opening <path>plugin.xml</path> in editor, inspection When opening <path>plugin.xml</path> in editor, inspection

View File

@ -1,4 +1,4 @@
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. --> <!-- Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# Listeners # Listeners
@ -18,7 +18,7 @@ Listeners are defined at application (global) or [project](project.md) level.
Listener implementations must be stateless and may not implement life-cycle (e.g., `Disposable`). Listener implementations must be stateless and may not implement life-cycle (e.g., `Disposable`).
Use inspection <control>Plugin DevKit | Code | Listener implementation implements 'Disposable'</control> to verify (2023.3). Use inspection <control>Plugin DevKit | Code | Listener implementation implements 'Disposable'</control> to verify (2023.3).
Declarative registration of listeners (2019.3 and later) allows achieving better performance than registering listeners from code. Declarative registration of listeners allows achieving better performance than registering listeners from code.
The advantage is because listener instances get created lazily — the first time an event is sent to the topic — and not during application startup or project opening. The advantage is because listener instances get created lazily — the first time an event is sent to the topic — and not during application startup or project opening.
## Defining Application-Level Listeners ## Defining Application-Level Listeners

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-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# PSI Cookbook # PSI Cookbook
@ -32,7 +32,7 @@ Unlike [Developing Custom Language Plugins](custom_language_support.md), it is a
## Java Specific ## Java Specific
> If your plugin depends on Java functionality and targets 2019.2 or later, see [](plugin_compatibility.md#java). > If your plugin depends on Java functionality, see [](plugin_compatibility.md#java).
> Also consider using [UAST](uast.md) if your plugin supports other JVM languages. > Also consider using [UAST](uast.md) if your plugin supports other JVM languages.
> >
{style="note"} {style="note"}

View File

@ -33,8 +33,6 @@ Use [`LightPlatformTestCase`](%gh-ic%/platform/testFramework/src/com/intellij/te
or [`BasePlatformTestCase`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/fixtures/BasePlatformTestCase.java) or [`BasePlatformTestCase`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/fixtures/BasePlatformTestCase.java)
for tests that don't have any dependency on Java functionality. for tests that don't have any dependency on Java functionality.
For 2019.2 and earlier, use [`LightPlatformCodeInsightFixtureTestCase`](%gh-ic-223%/platform/testFramework/src/com/intellij/testFramework/fixtures/LightPlatformCodeInsightFixtureTestCase.java).
**Examples:** **Examples:**
- [`JavaCopyrightTest`](%gh-ic%/java/java-tests/testSrc/com/intellij/copyright/JavaCopyrightTest.kt) - [`JavaCopyrightTest`](%gh-ic%/java/java-tests/testSrc/com/intellij/copyright/JavaCopyrightTest.kt)
- [`HtmlDocumentationTest`](%gh-ic%/xml/tests/src/com/intellij/html/HtmlDocumentationTest.java) - [`HtmlDocumentationTest`](%gh-ic%/xml/tests/src/com/intellij/html/HtmlDocumentationTest.java)
@ -53,8 +51,6 @@ For tests that require the [Java PSI](idea.md#java) or related functionality:
- [`LightJavaCodeInsightFixtureTestCase4`](%gh-ic%/java/testFramework/src/com/intellij/testFramework/fixtures/LightJavaCodeInsightFixtureTestCase4.kt) for JUnit 4 (2021.1 and later) - [`LightJavaCodeInsightFixtureTestCase4`](%gh-ic%/java/testFramework/src/com/intellij/testFramework/fixtures/LightJavaCodeInsightFixtureTestCase4.kt) for JUnit 4 (2021.1 and later)
- [`LightJavaCodeInsightFixtureTestCase5`](%gh-ic%/java/testFramework/src/com/intellij/testFramework/fixtures/LightJavaCodeInsightFixtureTestCase5.kt) for JUnit 5 (2021.1 and later) - [`LightJavaCodeInsightFixtureTestCase5`](%gh-ic%/java/testFramework/src/com/intellij/testFramework/fixtures/LightJavaCodeInsightFixtureTestCase5.kt) for JUnit 5 (2021.1 and later)
For 2019.2 and earlier, use [`LightCodeInsightFixtureTestCase`](%gh-ic%/java/testFramework/src/com/intellij/testFramework/fixtures/LightCodeInsightFixtureTestCase.java).
**Examples:** **Examples:**
- [`PatternValidatorTest`](%gh-ic%/plugins/IntelliLang/IntelliLang-tests/test/org/intellij/plugins/intelliLang/pattern/PatternValidatorTest.java) (JUnit 3) - [`PatternValidatorTest`](%gh-ic%/plugins/IntelliLang/IntelliLang-tests/test/org/intellij/plugins/intelliLang/pattern/PatternValidatorTest.java) (JUnit 3)
- [`JavaCtrlMouseTest`](%gh-ic%/java/java-tests/testSrc/com/intellij/java/codeInsight/javadoc/JavaCtrlMouseTest.kt) (JUnit 4) - [`JavaCtrlMouseTest`](%gh-ic%/java/java-tests/testSrc/com/intellij/java/codeInsight/javadoc/JavaCtrlMouseTest.kt) (JUnit 4)
@ -78,10 +74,6 @@ When [testing JVM languages](testing_faq.md#how-to-test-a-jvm-language), see als
The standard way of writing a heavy test is to extend [`HeavyPlatformTestCase`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/HeavyPlatformTestCase.java). The standard way of writing a heavy test is to extend [`HeavyPlatformTestCase`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/HeavyPlatformTestCase.java).
> In 2019.3, `PlatformTestCase` has been renamed to [`HeavyPlatformTestCase`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/HeavyPlatformTestCase.java) reflecting its "heavy test" characteristics.
>
{style="note"}
**Examples:** **Examples:**
- [`ModuleDeleteProviderTest`](%gh-ic%/java/java-tests/testSrc/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProviderTest.java) - [`ModuleDeleteProviderTest`](%gh-ic%/java/java-tests/testSrc/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProviderTest.java)
- [`FacetTypeUnloadingTest`](%gh-ic%/java/idea-ui/testSrc/com/intellij/facet/FacetTypeUnloadingTest.kt) - [`FacetTypeUnloadingTest`](%gh-ic%/java/idea-ui/testSrc/com/intellij/facet/FacetTypeUnloadingTest.kt)

View File

@ -12,7 +12,7 @@ The test fixture creates a *test project* environment.
Unless you customize the project creation, the test project will have one module with one source root called <path>src</path>. Unless you customize the project creation, the test project will have one module with one source root called <path>src</path>.
The test project files exist either in a temporary directory or in an in-memory file system, depending on which implementation of [`TempDirTestFixture`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/fixtures/TempDirTestFixture.java) is used. The test project files exist either in a temporary directory or in an in-memory file system, depending on which implementation of [`TempDirTestFixture`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/fixtures/TempDirTestFixture.java) is used.
[`BasePlatformTestCase`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/fixtures/BasePlatformTestCase.java) (renamed from `LightPlatformCodeInsightFixtureTestCase` in 2019.2) uses an in-memory implementation; if you set up the test environment by calling `IdeaTestFixtureFactory.createCodeInsightFixture()`, you can specify the implementation to use. [`BasePlatformTestCase`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/fixtures/BasePlatformTestCase.java) uses an in-memory implementation; if you set up the test environment by calling `IdeaTestFixtureFactory.createCodeInsightFixture()`, you can specify the implementation to use.
> If your tests use the in-memory implementation, and you abort the execution of your tests, the persisted filesystem caches may get out of sync with the in-memory structures, and you may get spurious errors in your tests. > If your tests use the in-memory implementation, and you abort the execution of your tests, the persisted filesystem caches may get out of sync with the in-memory structures, and you may get spurious errors in your tests.
> If you get an unexpected error after a series of successful runs, **try rerunning the test**, and if that doesn't help, **delete the "system" subdirectory** in your [sandbox directory](ide_development_instance.md#the-development-instance-sandbox-directory). > If you get an unexpected error after a series of successful runs, **try rerunning the test**, and if that doesn't help, **delete the "system" subdirectory** in your [sandbox directory](ide_development_instance.md#the-development-instance-sandbox-directory).

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-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# Tests and Fixtures # Tests and Fixtures
@ -20,7 +20,7 @@ When writing your tests, you have the choice between using a standard base class
</snippet> </snippet>
With the former approach, you can use classes such as [`BasePlatformTestCase`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/fixtures/BasePlatformTestCase.java) ([`LightPlatformCodeInsightFixtureTestCase`](%gh-ic-223%/platform/testFramework/src/com/intellij/testFramework/fixtures/LightPlatformCodeInsightFixtureTestCase.java) before 2019.2). With the former approach, you can use classes such as [`BasePlatformTestCase`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/fixtures/BasePlatformTestCase.java).
With the latter approach, you use the [`IdeaTestFixtureFactory`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/fixtures/IdeaTestFixtureFactory.java) class to create instances of fixtures for the test environment. With the latter approach, you use the [`IdeaTestFixtureFactory`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/fixtures/IdeaTestFixtureFactory.java) class to create instances of fixtures for the test environment.
You need to call the fixture creation and setup methods from the test setup method used by your test framework. You need to call the fixture creation and setup methods from the test setup method used by your test framework.

View File

@ -1,4 +1,4 @@
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. --> <!-- Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# Messaging Infrastructure # Messaging Infrastructure
@ -165,7 +165,7 @@ endif
@enduml @enduml
``` ```
> If targeting 2019.3 or later, use [declarative registration](plugin_listeners.md) whenever possible. > Use [declarative registration](plugin_listeners.md) whenever possible.
> >
{style="note"} {style="note"}

View File

@ -1,4 +1,4 @@
<!-- Copyright 2000-2023 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. --> <!-- Copyright 2000-2025 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. -->
# Module # Module
@ -175,4 +175,4 @@ project.getMessageBus().connect().subscribe(
}); });
``` ```
If targeting 2019.3 or later, [declarative registration](plugin_listeners.md) is available as well. [Declarative registration](plugin_listeners.md) is available as well.

View File

@ -151,7 +151,7 @@ project.getMessageBus().connect().subscribe(
}); });
``` ```
If targeting 2019.3 or later, [declarative registration](plugin_listeners.md) is available as well. [Declarative registration](plugin_listeners.md) is available as well.
The event only notifies that something has changed; if more details are needed about what changes have occurred, keep a copy of the state of the project structure model which is relevant, and to compare it with the state after the change. The event only notifies that something has changed; if more details are needed about what changes have occurred, keep a copy of the state of the project structure model which is relevant, and to compare it with the state after the change.

View File

@ -49,8 +49,6 @@ The following minimal sample demonstrates all details required when exposing UI
* `source` - Fully qualified name of the underlying UI component implementation, e.g.,&nbsp;`javax.swing.JPasswordField` * `source` - Fully qualified name of the underlying UI component implementation, e.g.,&nbsp;`javax.swing.JPasswordField`
* `since` - The release number when this UI customization key was exposed, e.g.,&nbsp;`2021.1` * `since` - The release number when this UI customization key was exposed, e.g.,&nbsp;`2021.1`
Note: The `since` attribute is supported starting with the 2019.2 release and it is not displayed in versions prior to 2019.2.
> It is highly recommended to always provide a `description` entry, so Theme authors can understand usages. > It is highly recommended to always provide a `description` entry, so Theme authors can understand usages.
> >

View File

@ -23,7 +23,7 @@ This section adds annotation functionality to support the Simple Language in the
Classes defined in this step of the tutorial depend on `com.intellij.psi.PsiLiteralExpression` (the PSI representation for String literals in Java code) at runtime. Classes defined in this step of the tutorial depend on `com.intellij.psi.PsiLiteralExpression` (the PSI representation for String literals in Java code) at runtime.
Using `PsiLiteralExpression` [introduces a dependency](plugin_compatibility.md#modules-specific-to-functionality) on `com.intellij.java`. Using `PsiLiteralExpression` [introduces a dependency](plugin_compatibility.md#modules-specific-to-functionality) on `com.intellij.java`.
Beginning in version 2019.2, a dependency on Java plugin [must be declared explicitly](plugin_compatibility.md#java). A dependency on the Java plugin [must be declared explicitly](plugin_compatibility.md#java).
First, add a dependency on the Java plugin in the Gradle build script: First, add a dependency on the Java plugin in the Gradle build script:
<tabs> <tabs>

View File

@ -1,4 +1,4 @@
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. --> <!-- Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
# Editor Components # Editor Components
@ -48,7 +48,7 @@ See [](code_completion.md) to learn more about completion.
### Java ### Java
> If your plugin depends on Java functionality and targets 2019.2 or later, see [](plugin_compatibility.md#java). > If your plugin depends on Java functionality, see [](plugin_compatibility.md#java).
> >
{style="note"} {style="note"}