README - wip

This commit is contained in:
Jakub Chrzanowski 2020-06-18 20:35:44 +02:00
parent 13903416b7
commit 22ee2e5501

View File

@ -14,17 +14,18 @@ everything in the most straightforward manner.
If you're still not sure, what is this about - read our introduction of [What is the IntelliJ Platform?][docs:intro] If you're still not sure, what is this about - read our introduction of [What is the IntelliJ Platform?][docs:intro]
We can highlight here the following parts: We can highlight the following parts of the template project:
- Gradle configuration - [Gradle Configuration](#gradle-configuration)
- Sample code: - [Plugin Manifest File](#plugin-manifest-file)
- [Sample Code](#sample-code):
- listeners - project and dynamic plugin lifecycle - listeners - project and dynamic plugin lifecycle
- services - project- and application-related services - services - project- and application-related services
- actions - basic action with shortcut binding - actions - basic action with shortcut binding
- Plugin Manifest file - [Continuous Integration](#continuous-integration) based on the GitHub Actions
- README Template - [Release Flow](#release-flow) using the GitHub Releases
- CI based on GitHub actions - [Changelog Maintenance](#changelog) with the Gradle Changelog Plugin
- Release and changelog maintenance flow - [Publishing Plugin](#publishing-plugin) with the Gradle IntelliJ Plugin
## Getting Started ## Getting Started
@ -45,7 +46,7 @@ As the last step, you have to manually review the configuration variables descri
[gradle.properties][file:gradle.properties] file, *optionally* move sources from the *com.github.username.repository* [gradle.properties][file:gradle.properties] file, *optionally* move sources from the *com.github.username.repository*
package to the one that fits you the most and start implementing your ideas. package to the one that fits you the most and start implementing your ideas.
## Gradle ## Gradle Configuration
The recommended way of the plugin development is using the [Gradle][gradle] setup with The recommended way of the plugin development is using the [Gradle][gradle] setup with
[gradle-intellij-plugin][gradle-intellij-plugin] installed. The gradle-intellij-plugin provides tasks to run the IDE [gradle-intellij-plugin][gradle-intellij-plugin] installed. The gradle-intellij-plugin provides tasks to run the IDE
@ -57,8 +58,9 @@ the [Using Gradle][docs:using-gradle] articles for better understanding and cust
The most significant parts of the current configuration are: The most significant parts of the current configuration are:
- Configuration written with [Gradle Kotlin DSL][gradle-kotlin-dsl] - Configuration written with [Gradle Kotlin DSL][gradle-kotlin-dsl]
- Kotlin support with possibility to write Java code - Kotlin support with possibility to write Java code
- Plugin XML patching with the latest *change notes* from the `CHANGELOG.md` file - Integration with [gradle-changelog-plugin][gradle-changelog-plugin] for the automated patching of the change notes and
- Plugin XML patching with the *description* from the `README.md` file description consumed from `CHANGELOG.md` and `README.md` files
- Integration with [gradle-intellij-plugin][gradle-intellij-plugin] for the better development impressions
- Code linting with [detekt][detekt] - Code linting with [detekt][detekt]
- [Plugin publishing][docs:publishing] using token - [Plugin publishing][docs:publishing] using token
@ -76,25 +78,25 @@ platformVersion = 2020.1
platformDownloadSources = true platformDownloadSources = true
``` ```
| Property name | Description | | Property name | Description |
| ------------- | ----------- | | ------------------------- | ------------------------------------------------------------------------------------- |
| `pluginGroup` | Package name - after *using* the template, will be set to `com.gtihub.username.repo`. | | `pluginGroup` | Package name - after *using* the template, will be set to `com.gtihub.username.repo`. |
| `pluginName` | Name of the plugin displayed in the Marketplace and Plugins Repository. | | `pluginName` | Name of the plugin displayed in the Marketplace and Plugins Repository. |
| `pluginVersion` | Current version of the plugin. | | `pluginVersion` | Current version of the plugin. |
| `pluginSinceBuild` | `since-build` attribute of the <idea-version> tag. | | `pluginSinceBuild` | `since-build` attribute of the <idea-version> tag. |
| `pluginUntilBuild` | `until-build` attribute of the <idea-version> tag. | | `pluginUntilBuild` | `until-build` attribute of the <idea-version> tag. |
| `platformType` | The type of IDE distribution. | | `platformType` | The type of IDE distribution. |
| `platformVersion` | | | `platformVersion` | The version of the IntelliJ Platform IDE that will be used to build the plugin. |
| `platformDownloadSources` | | | `platformDownloadSources` | Download IDE sources while initializing Gradle build. |
Listed properties define the plugin itself or configure the [gradle-intellij-plugin][gradle-intellij-plugin] - check
its documentation for more details.
## Sample Code ## Plugin Manifest File
TODO TODO
## Plugin Manifest File ## Sample Code
TODO TODO
@ -119,7 +121,7 @@ and inside of the Plugin Manager's item details.
There are many different methods of handling the project's changelog. One of them, used in the current template project, There are many different methods of handling the project's changelog. One of them, used in the current template project,
is the [Keep a Changelog][keep-a-changelog] approach. is the [Keep a Changelog][keep-a-changelog] approach.
# Publishing Plugin ## Publishing Plugin
Cannot find org.jetbrains.plugins.template. Note that you need to upload the plugin to the repository at least once manually (to specify options like the license, repository URL etc.). Follow the instructions: https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/publishing_plugin.html Cannot find org.jetbrains.plugins.template. Note that you need to upload the plugin to the repository at least once manually (to specify options like the license, repository URL etc.). Follow the instructions: https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/publishing_plugin.html
@ -136,6 +138,7 @@ Cannot find org.jetbrains.plugins.template. Note that you need to upload the plu
[gh-actions]: https://help.github.com/en/actions [gh-actions]: https://help.github.com/en/actions
[code-samples]: https://github.com/JetBrains/intellij-sdk-code-samples [code-samples]: https://github.com/JetBrains/intellij-sdk-code-samples
[gradle-intellij-plugin]: https://github.com/JetBrains/gradle-intellij-plugin [gradle-intellij-plugin]: https://github.com/JetBrains/gradle-intellij-plugin
[gradle-changelog-plugin]: https://github.com/JetBrains/gradle-changelog-plugin
[releases]: https://github.com/JetBrains/intellij-plugin-template/releases [releases]: https://github.com/JetBrains/intellij-plugin-template/releases
[marketplace-plugin-page]: https://plugins.jetbrains.com/plugin/0-TODO [marketplace-plugin-page]: https://plugins.jetbrains.com/plugin/0-TODO
[slack]: https://plugins.jetbrains.com/slack [slack]: https://plugins.jetbrains.com/slack