From 8010e57f6759431f4c6638b639cb41755ce405a5 Mon Sep 17 00:00:00 2001 From: Jakub Chrzanowski Date: Tue, 31 May 2022 20:59:51 +0200 Subject: [PATCH] Update README.md --- README.md | 49 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 403acbb..98b2a51 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,9 @@ ![IntelliJ Platform Plugin Template][file:intellij-platform-plugin-template.png] -> **TL;DR:** Click the Use this template button and clone it in IntelliJ IDEA. +> **Note** +> +> Click the Use this template button and clone it in IntelliJ IDEA. **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 Watch button on the top to be notified about releases containing new features and fixes. +> **Note** +> +> Click the Watch 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.