mirror of
				https://github.com/JetBrains/intellij-platform-plugin-template.git
				synced 2025-06-13 13:04:09 +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