Update README.md

pull/295/head
Jakub Chrzanowski 2 years ago committed by Jakub Chrzanowski
parent 819d665d12
commit 8010e57f67

@ -7,7 +7,9 @@
![IntelliJ Platform Plugin Template][file:intellij-platform-plugin-template.png]
> **TL;DR:** Click the <kbd>Use this template</kbd> button and clone it in IntelliJ IDEA.
> **Note**
>
> Click the <kbd>Use this template</kbd> button and clone it in IntelliJ IDEA.
<!-- Plugin description -->
**IntelliJ Platform Plugin Template** is a repository that provides a pure template to make it easier to create a new plugin project (check the [Creating a repository from a template][gh:template] article).
@ -19,7 +21,9 @@ The main goal of this template is to speed up the setup phase of plugin developm
If you're still not quite sure what this is all about, read our introduction: [What is the IntelliJ Platform?][docs:intro]
> **TIP**: Click the <kbd>Watch</kbd> button on the top to be notified about releases containing new features and fixes.
> **Note**
>
> Click the <kbd>Watch</kbd> button on the top to be notified about releases containing new features and fixes.
### Table of contents
@ -64,7 +68,9 @@ Once this is complete, the project is ready to be cloned to your local environme
For the last step, you have to manually review the configuration variables described in the [`gradle.properties`][file:gradle.properties] file and *optionally* move sources from the *com.github.username.repository* package to the one that works best for you.
Then you can get to work implementing your ideas.
> **TIP:** To use Java in your plugin, create the `/src/main/java` directory.
> **Note**
>
> To use Java in your plugin, create the `/src/main/java` directory.
## Gradle configuration
@ -72,7 +78,9 @@ Then you can get to work implementing your ideas.
The recommended method for plugin development involves using the [Gradle][gradle] setup with the [gradle-intellij-plugin][gh:gradle-intellij-plugin] installed.
The `gradle-intellij-plugin` makes it possible to run the IDE with your plugin and publish your plugin to JetBrains Marketplace Repository.
> **NOTE:** Make sure to always upgrade to the latest version of `gradle-intellij-plugin`.
> **Note**
>
> Make sure to always upgrade to the latest version of `gradle-intellij-plugin`.
A project built using the IntelliJ Platform Plugin Template includes a Gradle configuration already set up.
Feel free to read through the [Using Gradle][docs:using-gradle] articles to understand your build better and learn how to customize it.
@ -159,7 +167,9 @@ A generated IntelliJ Platform Plugin Template repository contains the following
In addition to the configuration files, the most crucial part is the `src` directory, which contains our implementation and the manifest for our plugin [plugin.xml][file:plugin.xml].
> **TIP:** To use Java in your plugin, create the `/src/main/java` directory.
> **Note**
>
> To use Java in your plugin, create the `/src/main/java` directory.
## Plugin configuration file
@ -209,6 +219,8 @@ So if you decide to use Java instead (or in addition to Kotlin), these sources s
To start with the actual implementation, you may check our [IntelliJ Platform SDK DevGuide][docs], which contains an introduction to the essential areas of the plugin development together with dedicated tutorials.
> **Warning**
>
> Don't forget to remove all non-needed sample code files with their corresponding registration entries in `plugin.xml`.
For those who value example codes the most, there are also available [IntelliJ SDK Code Samples][gh:code-samples] and [IntelliJ Platform Explorer][jb:ipe] a search tool for browsing Extension Points inside existing implementations of open-source IntelliJ Platform plugins.
@ -226,7 +238,9 @@ The tests usually test a feature as a whole rather than individual functions tha
In `src/test/kotlin`, you'll find a basic `MyPluginTest` test that utilizes `BasePlatformTestCase` and runs a few checks against the XML files to indicate an example operation of creating files on the fly or reading them from `src/test/resources/rename` test resources.
> **TIP:** Run your tests using predefined *Run Tests* configuration or by invoking the `./gradlew test` Gradle task.
> **Note**
>
> Run your tests using predefined *Run Tests* configuration or by invoking the `./gradlew test` Gradle task.
### UI tests
@ -236,7 +250,9 @@ If your plugin provides complex user interfaces, you should consider covering th
You can use the [XPath query language][xpath] to find components in the currently available IDE view.
Once IDE with `robot-server` has started, you can open the `http://localhost:8082` page that presents the currently available IDEA UI components hierarchy in HTML format and use a simple `XPath` generator, which can help test your plugin's interface.
> **TIP:** Run IDE for UI tests using predefined *Run IDE for UI Tests* and then *Run Tests* configurations or by invoking the `./gradlew runIdeForUiTests` and `./gradlew tests` Gradle tasks.
> **Note**
>
> Run IDE for UI tests using predefined *Run IDE for UI Tests* and then *Run Tests* configurations or by invoking the `./gradlew runIdeForUiTests` and `./gradlew tests` Gradle tasks.
Check the UI Test Example project you can use as a reference for setting up UI testing in your plugin: [intellij-ui-test-robot/ui-test-example][gh:ui-test-example].
@ -270,7 +286,9 @@ Qodana inspections are accessible within the project on two levels:
Qodana inspection is configured with the `qodana { ... }` section in the Gradle build file and [`qodana.yml`][file:qodana.yml] YAML configuration file.
> **NOTE:** Qodana requires Docker to be installed and available in your environment.
> **Note**
>
> Qodana requires Docker to be installed and available in your environment.
To run inspections, you can use a predefined *Run Qodana* configuration, which will provide a full report on `http://localhost:8080`, or invoke the Gradle task directly with the `./gradlew runInspections` command.
@ -293,7 +311,9 @@ Within the default project structure, there is a `.run` directory provided conta
| Run IDE for UI Tests | Runs [`:runIdeForUiTests`][gh:intellij-ui-test-robot] Gradle IntelliJ Plugin task to allow for running UI tests within the IntelliJ IDE running instance. |
| Run Qodana | Runs [`:runInspections`][gh:gradle-qodana-plugin] Gradle Qodana Plugin task. Starts Qodana inspections in a Docker container and serves generated report on `localhost:8080`. |
> **TIP:** You can find the logs from the running task in the `idea.log` tab.
> **Note**
>
> You can find the logs from the running task in the `idea.log` tab.
>
> ![Run/Debug configuration logs][file:run-logs.png]
@ -339,7 +359,9 @@ Keeping the project in good shape and having all the dependencies up-to-date req
Dependabot is a bot provided by GitHub to check the build configuration files and review any outdated or insecure dependencies of yours in case if any update is available, it creates a new pull request providing [the proper change][gh:dependabot-pr].
> **NOTE:** Dependabot doesn't yet support checking of the Gradle Wrapper.
> **Note**
>
> Dependabot doesn't yet support checking of the Gradle Wrapper.
> Check the [Gradle Releases][gradle-releases] page and update your `gradle.properties` file with:
> ```properties
> gradleVersion = 7.4.2
@ -430,13 +452,16 @@ To find out how to generate signing certificates, check the [Plugin Signing][doc
Releasing a plugin to JetBrains Marketplace is a straightforward operation that uses the `publishPlugin` Gradle task provided by the [gradle-intellij-plugin][gh:gradle-intellij-plugin].
In addition, the [Release](.github/workflows/release.yml) workflow automates this process by running the task when a new release appears in the GitHub Releases section.
> **TIP**: Set a suffix to the plugin version to publish it in the custom repository channel, i.e. `v1.0.0-beta` will push your plugin to the `beta` [release channel][docs:release-channel].
> **Note**
>
> Set a suffix to the plugin version to publish it in the custom repository channel, i.e. `v1.0.0-beta` will push your plugin to the `beta` [release channel][docs:release-channel].
The authorization process relies on the `PUBLISH_TOKEN` secret environment variable, specified in the _Secrets_ section of the repository _Settings_.
You can get that token in your JetBrains Marketplace profile dashboard in the [My Tokens][jb:my-tokens] tab.
> **Important:**
> **Warning**
>
> Before using the automated deployment process, it is necessary to manually create a new plugin in JetBrains Marketplace to specify options like the license, repository URL, etc.
> Please follow the [Publishing a Plugin][docs:publishing] instructions.

Loading…
Cancel
Save