mirror of
https://github.com/JetBrains/intellij-platform-plugin-template.git
synced 2024-10-27 20:44:05 +00:00
README - wip
This commit is contained in:
parent
22ee2e5501
commit
527557dd5e
1
.github/workflows/template-cleanup.yml
vendored
1
.github/workflows/template-cleanup.yml
vendored
@ -41,6 +41,7 @@ jobs:
|
|||||||
# Replace template package name in project files with $GROUP
|
# Replace template package name in project files with $GROUP
|
||||||
sed -i "s/org.jetbrains.plugins.template/$GROUP/g" gradle.properties
|
sed -i "s/org.jetbrains.plugins.template/$GROUP/g" gradle.properties
|
||||||
find src -type f -exec sed -i "s/org.jetbrains.plugins.template/$GROUP/g" {} +
|
find src -type f -exec sed -i "s/org.jetbrains.plugins.template/$GROUP/g" {} +
|
||||||
|
find src -type f -exec sed -i "s/JetBrains/$ACTOR/g" {} +
|
||||||
|
|
||||||
# Move content
|
# Move content
|
||||||
mkdir -p src/main/kotlin/${GROUP//.//}
|
mkdir -p src/main/kotlin/${GROUP//.//}
|
||||||
|
75
README.md
75
README.md
@ -92,13 +92,74 @@ platformDownloadSources = true
|
|||||||
Listed properties define the plugin itself or configure the [gradle-intellij-plugin][gradle-intellij-plugin] - check
|
Listed properties define the plugin itself or configure the [gradle-intellij-plugin][gradle-intellij-plugin] - check
|
||||||
its documentation for more details.
|
its documentation for more details.
|
||||||
|
|
||||||
## Plugin Manifest File
|
## Plugin Template Structure
|
||||||
|
|
||||||
TODO
|
Generated IntelliJ Template repository contains following content structure:
|
||||||
|
|
||||||
|
```
|
||||||
|
.
|
||||||
|
├── CHANGELOG.md Full changes history.
|
||||||
|
├── LICENSE License, MIT by default
|
||||||
|
├── README.md README
|
||||||
|
├── build Output build directory
|
||||||
|
├── build.gradle.kts Gradle configuration
|
||||||
|
├── detekt-config.yml Detekt configuration
|
||||||
|
├── gradle
|
||||||
|
│ └── wrapper Gradle Wrapper
|
||||||
|
├── gradle.properties Gradle configuration properties
|
||||||
|
├── gradlew *nix Gradle Wrapper binary
|
||||||
|
├── gradlew.bat Windows Gradle Wrapper binary
|
||||||
|
└── src Plugin sources
|
||||||
|
└── main
|
||||||
|
├── kotlin Kotlin source files
|
||||||
|
├── java Java source files
|
||||||
|
└── resources Resources - plugin.xml, icons, messages
|
||||||
|
```
|
||||||
|
|
||||||
|
Beside of the configuration files, the most important part is the `src` directory containing our implementation
|
||||||
|
and plugin's manifest - [plugin.xml][file:plugin.xml].
|
||||||
|
|
||||||
|
## Plugin Configuration File
|
||||||
|
|
||||||
|
Plugin Configuration File is a [plugin.xml][file:plugin.xml] file located in the `/src/main/resources/META-INF`
|
||||||
|
directory. It describes the overall information about the plugin, its dependencies, extensions, and listeners.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<idea-plugin>
|
||||||
|
<id>org.jetbrains.plugins.template</id>
|
||||||
|
<name>Template</name>
|
||||||
|
<vendor>JetBrains</vendor>
|
||||||
|
<depends>com.intellij.modules.platform</depends>
|
||||||
|
|
||||||
|
<extensions defaultExtensionNs="com.intellij">
|
||||||
|
<applicationService serviceImplementation="..."/>
|
||||||
|
<projectService serviceImplementation="..."/>
|
||||||
|
</extensions>
|
||||||
|
|
||||||
|
<projectListeners>
|
||||||
|
<listener class="..." topic="..."/>
|
||||||
|
</projectListeners>
|
||||||
|
</idea-plugin>
|
||||||
|
```
|
||||||
|
|
||||||
|
You can read more about that file in [IntelliJ Platform SDK DevGuide][docs:plugin.xml].
|
||||||
|
|
||||||
## Sample Code
|
## Sample Code
|
||||||
|
|
||||||
TODO
|
The prepared template is aiming to provide as less code as possible, because it is barely possible to fulfill
|
||||||
|
the requirements of the various types of the plugins (language support, build tools, VCS related tools) with some
|
||||||
|
general scaffold. Having that in mind, it contains few following files:
|
||||||
|
|
||||||
|
```
|
||||||
|
.
|
||||||
|
├── MyBundle.kt Bundle class providing access to the resources messages
|
||||||
|
├── listeners
|
||||||
|
│ ├── MyDynamicPluginListener.kt Dynamic Plugin listener - notifies about the dynamic plugin lifecycle
|
||||||
|
│ └── MyProjectManagerListener.kt Project Manager listener - notifies about the project open event
|
||||||
|
└── services
|
||||||
|
├── MyApplicationService.kt Application level service available for all projects
|
||||||
|
└── MyProjectService.kt Project level service
|
||||||
|
```
|
||||||
|
|
||||||
## Continuous Integration
|
## Continuous Integration
|
||||||
|
|
||||||
@ -128,9 +189,11 @@ Cannot find org.jetbrains.plugins.template. Note that you need to upload the plu
|
|||||||
## Useful Links
|
## Useful Links
|
||||||
|
|
||||||
- [IntelliJ Platform SDK DevGuide][docs]
|
- [IntelliJ Platform SDK DevGuide][docs]
|
||||||
|
- [IntelliJ Platform UI Guidelines][ij-ui-guidelines]
|
||||||
|
- [Kotlin UI DSL][docs:kotlin-ui-dsl]
|
||||||
- [IntelliJ SDK Code Samples][code-samples]
|
- [IntelliJ SDK Code Samples][code-samples]
|
||||||
- [JetBrains Platform Slack][slack]
|
- [JetBrains Platform Slack][slack]
|
||||||
- [IntelliJ IDEA Open API and Plugin Development][forum]
|
- [IntelliJ IDEA Open API and Plugin Development Forum][forum]
|
||||||
- [Keep a Changelog][keep-a-changelog]
|
- [Keep a Changelog][keep-a-changelog]
|
||||||
- [GitHub Actions][gh-actions]
|
- [GitHub Actions][gh-actions]
|
||||||
|
|
||||||
@ -148,12 +211,16 @@ Cannot find org.jetbrains.plugins.template. Note that you need to upload the plu
|
|||||||
[download-ij]: https://www.jetbrains.com/idea/download
|
[download-ij]: https://www.jetbrains.com/idea/download
|
||||||
[gradle]: https://gradle.org
|
[gradle]: https://gradle.org
|
||||||
[gradle-kotlin-dsl]: https://docs.gradle.org/current/userguide/kotlin_dsl.html
|
[gradle-kotlin-dsl]: https://docs.gradle.org/current/userguide/kotlin_dsl.html
|
||||||
|
[ij-ui-guidelines]: https://jetbrains.github.io/ui
|
||||||
|
|
||||||
[docs]: https://www.jetbrains.org/intellij/sdk/docs
|
[docs]: https://www.jetbrains.org/intellij/sdk/docs
|
||||||
[docs:intro]: https://www.jetbrains.org/intellij/sdk/docs/intro/intellij_platform.html
|
[docs:intro]: https://www.jetbrains.org/intellij/sdk/docs/intro/intellij_platform.html
|
||||||
[docs:using-gradle]: https://www.jetbrains.org/intellij/sdk/docs/tutorials/build_system.html
|
[docs:using-gradle]: https://www.jetbrains.org/intellij/sdk/docs/tutorials/build_system.html
|
||||||
[docs:publishing]: https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/publishing_plugin.html
|
[docs:publishing]: https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/publishing_plugin.html
|
||||||
|
[docs:kotlin-ui-dsl]: https://www.jetbrains.org/intellij/sdk/docs/user_interface_components/kotlin_ui_dsl.html
|
||||||
|
[docs:plugin.xml]: https://www.jetbrains.org/intellij/sdk/docs/basics/plugin_structure/plugin_configuration_file.html
|
||||||
|
|
||||||
[file:getting-started_use-this-template.png]: ./.github/readme/getting-started_use-this-template.png
|
[file:getting-started_use-this-template.png]: ./.github/readme/getting-started_use-this-template.png
|
||||||
[file:gradle.properties]: ./gradle.properties
|
[file:gradle.properties]: ./gradle.properties
|
||||||
[file:template_cleanup.yml]: ./.github/workflows/template-cleanup.yml
|
[file:template_cleanup.yml]: ./.github/workflows/template-cleanup.yml
|
||||||
|
[file:plugin.xml]: ./src/main/resources/META-INF/plugin.xml
|
||||||
|
Loading…
Reference in New Issue
Block a user