mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-28 01:07:49 +08:00
appcode/clion: add migration guide for plugins targeting 2020.3+
This commit is contained in:
parent
3d3e118398
commit
7800b289ba
@ -70,19 +70,21 @@ A plugin project is compatible with PHP functionality if it declares a dependenc
|
||||
The following table lists **(1)** modules or built-in plugins that provide specific functionality, and the products currently shipping with them.
|
||||
|
||||
| Module or Plugin for `<depends>` Element<br/>Declaration in <path>plugin.xml</path> File | <br/>Functionality | IntelliJ Platform-Based<br/>Product Compatibility |
|
||||
|------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
|------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `com.intellij.modules.java` See **(2)** below. <br/>`com.intellij.java` | **Java** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | IntelliJ IDEA, Android Studio |
|
||||
| `com.intellij.modules.androidstudio` | Android SDK Platform, Build Tools, Platform Tools, SDK Tools | Android Studio |
|
||||
| `com.intellij.modules.appcode` | CocoaPods, Core Data Objects, Device & Simulator Support | AppCode |
|
||||
| `com.intellij.modules.cidr.lang` | **C, C++, Objective-C/C++** language PSI Model, Swift/Objective-C Interaction, Inspections, Intentions, Completion, Refactoring, Test Framework | AppCode, CLion |
|
||||
| `com.intellij.modules.cidr.debugger` | Debugger Watches, Evaluations, Breakpoints, Inline Debugging | AppCode, CLion, RubyMine |
|
||||
| `com.intellij.modules.clion` | CMake, Profiler, Embedded Development, Remote Development, Remote Debug, Disassembly | CLion |
|
||||
| `com.intellij.modules.appcode` See **(3)** below. <br/>`com.intellij.appcode` | Xcode Project Model, CocoaPods, Core Data Objects, Device & Simulator Support | AppCode |
|
||||
| `com.intellij.modules.clion` See **(3)** below. <br/>`com.intellij.clion` | CMake, Profiler, Embedded Development, Remote Development, Remote Debug, Disassembly | CLion |
|
||||
| `com.intellij.cidr.base` | Native Debugger Integration, Utility Classes, C/C++ Project Model/Workspace Support (OCWorkspace, CidrWorkspace, etc.), C/C++ Build and Run Support | AppCode, CLion |
|
||||
| `com.intellij.database` | **Database Tools and SQL** language PSI Model, Inspections, Completion, Refactoring, Queries | DataGrip, IntelliJ IDEA Ultimate, AppCode, PhpStorm, PyCharm Professional, RubyMine, CLion, GoLand, Rider, and WebStorm if the Database Tools and SQL plugin is installed. |
|
||||
| `com.intellij.modules.go` | **Go** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | GoLand |
|
||||
| `com.intellij.modules.python` | **Python** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | PyCharm, and other products if the Python plugin is installed. |
|
||||
| `com.intellij.modules.rider` | Connection to **ReSharper** Process in Background | Rider |
|
||||
| `com.intellij.modules.ruby` | **Ruby** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | RubyMine, and IntelliJ IDEA Ultimate if the Ruby plugin is installed. |
|
||||
| `com.intellij.modules.ultimate` | Licensing | All commercial IDEs (IntelliJ IDEA Ultimate, PhpStorm, DataGrip, ...) |
|
||||
| `com.intellij.swift` | **Swift** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | AppCode, CLion |
|
||||
| `com.jetbrains.php` | **PHP** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | PhpStorm, and other products if the PHP plugin is installed. |
|
||||
| `JavaScript` | **JavaScript** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | WebStorm, and other products if the JavaScript plugin is installed. |
|
||||
|
||||
@ -101,6 +103,22 @@ Consequently, [dependencies](plugin_dependencies.md) on Java functionality are e
|
||||
* Syntax _required_ for releases prior to 2019.2, _allowable_ in all releases:
|
||||
* <path>plugin.xml</path> add `<depends>com.intellij.modules.java</depends>`
|
||||
|
||||
**(3)** The [AppCode and CLion code was restructured](https://blog.jetbrains.com/clion/2020/12/migration-guide-for-plugins-2020-3/) in version 2020.3.
|
||||
This refactoring extracted some functionalities into specific modules for easier maintainability and reuse between AppCode/CLion and other JetBrains IDEs.
|
||||
Consequently, [dependencies](plugin_dependencies.md) on AppCode and CLion functionalities are expressed differently in <path>plugin.xml</path> depending on the version of the AppCode/CLion Platform being targeted:
|
||||
|
||||
* Syntax for 2020.3 and later releases:
|
||||
* <path>plugin.xml</path> _allowable alternative_ add:
|
||||
* `<depends>com.intellij.appcode</depends>` for AppCode
|
||||
* `<depends>com.intellij.clion</depends>` for CLion
|
||||
* <path>build.gradle</path> _required_ define dependency on plugin:
|
||||
* `intellij { plugins = ['com.intellij.appcode'] }` for AppCode
|
||||
* `intellij { plugins = ['com.intellij.clion'] }` for CLion
|
||||
* Syntax _required_ for releases prior to 2020.3, _allowable_ in all releases:
|
||||
* <path>plugin.xml</path> add:
|
||||
* `<depends>com.intellij.modules.appcode</depends>` for AppCode
|
||||
* `<depends>com.intellij.modules.clion</depends>` for CLion
|
||||
|
||||
## Exploring Module and Plugin APIs
|
||||
Once the [dependency on a module or plugin](plugin_dependencies.md) is declared in <path>plugin.xml</path>, it's useful to explore the packages and classes available in that dependency.
|
||||
The section below gives some recommended procedures for discovering what's available in a module or plugin on which a project depends.
|
||||
|
@ -34,7 +34,7 @@ Click on an entry in the table's *Attribute* column to go to the documentation a
|
||||
[dsl]: https://github.com/JetBrains/gradle-intellij-plugin#running-dsl
|
||||
|
||||
The dependency on the AppCode APIs must be declared in the <path>plugin.xml</path> file.
|
||||
As described in [Modules Specific to Functionality](plugin_compatibility.md#modules-specific-to-functionality) table, the `<depends>` tags must declare `com.intellij.modules.appcode`.
|
||||
As described in [Modules Specific to Functionality](plugin_compatibility.md#modules-specific-to-functionality) table, the `<depends>` tags must declare `com.intellij.modules.appcode` module dependency, or `com.intellij.appcode` plugin dependency for plugins targeting only versions 2020.3+.
|
||||
|
||||
## Available AppCode APIs
|
||||
|
||||
|
@ -33,12 +33,7 @@ Click on an entry in the table's *Attribute* column to go to the documentation a
|
||||
[dsl]: https://github.com/JetBrains/gradle-intellij-plugin#running-dsl
|
||||
|
||||
The dependency on the CLion APIs must be declared in the <path>plugin.xml</path> file.
|
||||
As described in [Modules Specific to Functionality](plugin_compatibility.md#modules-specific-to-functionality) table, the `<depends>` elements should contain the CLion module, as illustrated in the <path>plugin.xml</path> snippet below:
|
||||
|
||||
```xml
|
||||
<!-- Required for core CLion functionality -->
|
||||
<depends>com.intellij.modules.clion</depends>
|
||||
```
|
||||
As described in [Modules Specific to Functionality](plugin_compatibility.md#modules-specific-to-functionality) table, the `<depends>` tags must declare `com.intellij.modules.clion` module dependency, or `com.intellij.clion` plugin dependency for plugins targeting only versions 2020.3+.
|
||||
|
||||
## Available CLion APIs
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user