plugin_compatibility.md, goland.md: Fix the Go-specific plugin dependencies information

This commit is contained in:
Karol Lewandowski 2022-12-01 13:18:36 +01:00
parent 50f25ecaed
commit 9849b94ef8
2 changed files with 13 additions and 34 deletions

View File

@ -80,7 +80,7 @@ The following table lists **(1)** modules or built-in plugins that provide speci
| `com.intellij.modules.clion` or `com.intellij.clion`<br/>See **(3)** below. | CMake, Profiler, Embedded Development, Remote Development, Remote Debug, Disassembly | CLion | | `com.intellij.modules.clion` or `com.intellij.clion`<br/>See **(3)** below. | 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.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.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.goland` or `com.intellij.modules.go`<br/>See **(4)** below. | **Go** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | GoLand | | `org.jetbrains.plugins.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.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.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.ruby` | **Ruby** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | RubyMine, and IntelliJ IDEA Ultimate if the Ruby plugin is installed. |
@ -216,10 +216,6 @@ Consequently, [dependencies](plugin_dependencies.md) on AppCode and CLion functi
</tab> </tab>
</tabs> </tabs>
**(4)** The `com.intellij.modules.go` module name is deprecated starting with the 2020.2 release. Use it only if your plugin targets versions older than 2020.2.
When targeting versions 2020.2 and newer, use `com.intellij.modules.goland`.
See [](goland.md) section for information about depending on the Go functionalities in IDEs other than GoLand.
## Exploring Module and Plugin APIs ## 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. 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.

View File

@ -16,6 +16,7 @@ Plugin projects for GoLand can be developed using IntelliJ IDEA with the [](tool
The configuration of targeting GoLand IDE follows the methods described in [Configuring Plugin Projects Using a Product-Specific Attribute](dev_alternate_products.md#configuring-plugin-projects-using-a-product-specific-attribute). The configuration of targeting GoLand IDE follows the methods described in [Configuring Plugin Projects Using a Product-Specific Attribute](dev_alternate_products.md#configuring-plugin-projects-using-a-product-specific-attribute).
Starting with 2020.2, it's possible to configure `GO` for `intellij.type` in the Gradle build script. Starting with 2020.2, it's possible to configure `GO` for `intellij.type` in the Gradle build script.
If you need to use Go language APIs, specifying the `GO` platform type is not enough - it is required to add a dependency to the `org.jetbrains.plugins.go` plugin.
<tabs> <tabs>
<tab title="Kotlin"> <tab title="Kotlin">
@ -24,6 +25,9 @@ Starting with 2020.2, it's possible to configure `GO` for `intellij.type` in the
intellij { intellij {
version.set("2020.3") version.set("2020.3")
type.set("GO") type.set("GO")
// required if Go language API is needed:
plugins.set(listOf("org.jetbrains.plugins.go"))
} }
``` ```
@ -34,13 +38,15 @@ intellij {
intellij { intellij {
version = '2020.3' version = '2020.3'
type = 'GO' type = 'GO'
// required if Go language API is needed:
plugins = ['org.jetbrains.plugins.go']
} }
``` ```
</tab> </tab>
</tabs> </tabs>
</tab> </tab>
<tab title="Using Plugin"> <tab title="Using Plugin">
@ -65,34 +71,12 @@ Select a [version](https://plugins.jetbrains.com/plugin/9568-go/versions) of the
</tabs> </tabs>
The dependency on the Go plugin APIs must be declared in the <path>[plugin.xml](plugin_configuration_file.md)</path> file. ### Plugin and Module Dependencies
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.goland`.
The <path>plugin.xml</path> file must also declare a dependency on `com.intellij.modules.platform` as explained in [Configuring the plugin.xml File](dev_alternate_products.md#configuring-pluginxml).
The dependency declaration is illustrated in the <path>plugin.xml</path> snippet below:
Depending on plugin's requirements, the following [`<depends>`](plugin_configuration_file.md#idea-plugin__depends) entries are needed in the <path>plugin.xml</path> file:
<tabs> * `com.intellij.modules.platform` - Always required. See [Configuring the plugin.xml File](dev_alternate_products.md#configuring-pluginxml) for details.
<tab title="2020.2 and later"> * `org.jetbrains.plugins.go` - Required if the Go plugin APIs are used in the plugin.
* `com.intellij.modules.goland` (2020.2+) or `com.intellij.modules.go` (pre-2020.2) - Required if the plugin targets GoLand IDE only. The plugin will not be loaded in other IDEs, even if the Go plugin is present.
```xml
<!-- Requires the GoLand module -->
<depends>com.intellij.modules.goland</depends>
<!-- Requires the platform module to distinguish it from a legacy plugin -->
<depends>com.intellij.modules.platform</depends>
```
</tab>
<tab title="Pre-2020.2">
```xml
<!-- Requires the Go module -->
<depends>com.intellij.modules.go</depends>
<!-- Requires the platform module to distinguish it from a legacy plugin -->
<depends>com.intellij.modules.platform</depends>
```
</tab>
</tabs>
### Targeting IDEs Other Than GoLand ### Targeting IDEs Other Than GoLand
@ -103,7 +87,6 @@ To make the plugin compatible with GoLand and other IDEs supporting the Go langu
* `com.intellij.modules.go-capable` - The plugin will be loaded in IDEs that are capable of installing the Go plugin. * `com.intellij.modules.go-capable` - The plugin will be loaded in IDEs that are capable of installing the Go plugin.
Note that the Go plugin doesn't have to be actually installed when this module is present. Note that the Go plugin doesn't have to be actually installed when this module is present.
## Available GoLand APIs ## Available GoLand APIs
> See [](goland_extension_point_list.md) for the complete list. > See [](goland_extension_point_list.md) for the complete list.