diff --git a/ijs.tree b/ijs.tree index 3be03c115..c1d5b4828 100644 --- a/ijs.tree +++ b/ijs.tree @@ -23,6 +23,7 @@ + diff --git a/topics/basics/basics.md b/topics/basics/basics.md index e5d79af19..4e8c683c1 100644 --- a/topics/basics/basics.md +++ b/topics/basics/basics.md @@ -1,10 +1,11 @@ [//]: # (title: Quick Start Guide) - + This section covers the basics of working with the IntelliJ Platform. It will familiarize you with the working environment, project structure, and frequently used API components. +* [](plugin_required_experience.md) * [](types_of_plugins.md) * [](plugin_alternatives.md) * [](getting_started.md) diff --git a/topics/basics/plugin_required_experience.md b/topics/basics/plugin_required_experience.md new file mode 100644 index 000000000..3400d7bd4 --- /dev/null +++ b/topics/basics/plugin_required_experience.md @@ -0,0 +1,22 @@ +[//]: # (title: Required Experience) + + + +The IntelliJ Platform is a JVM application, implemented mostly in Java and [Kotlin](https://kotlinlang.org). +At this time, it's not possible to develop plugins for the IntelliJ Platform in non-JVM languages. +Developing a plugin for the IntelliJ Platform requires knowledge and experience with the following technologies and concepts: +- Java, Kotlin, or other JVM language, and its standard and 3rd-party libraries +- [Gradle](https://gradle.org/) or a similar build system (e.g., Maven) +- [Swing](https://en.wikipedia.org/wiki/Swing_(Java)) for building user interfaces +- [Java Concurrency Model](https://docs.oracle.com/javase/tutorial/essential/concurrency/index.html) +- experience with IntelliJ Platform-based IDE (e.g., [IntelliJ IDEA](https://www.jetbrains.com/idea/)) + +Please keep in mind that the IntelliJ Platform is a large project, and while we are doing our best to cover as many topics as possible, it is not possible to include every feature and use-case in the documentation. +Developing a plugin will sometimes require digging into the [Platform code](https://github.com/JetBrains/intellij-community) and analyzing the [example implementations in other plugins](https://jb.gg/ipe). + +It's highly recommended to get familiar with the [](explore_api.md) section before you start the plugin implementation. + + +> In some cases, implementing an actual IntelliJ Platform plugin might not be necessary, as [alternative solutions](plugin_alternatives.md) exist. +> +{type="tip"} diff --git a/topics/intro/intellij_platform.md b/topics/intro/intellij_platform.md index cdf4c0029..656e24862 100644 --- a/topics/intro/intellij_platform.md +++ b/topics/intro/intellij_platform.md @@ -33,10 +33,6 @@ Plugins can extend the platform in many ways, from adding a simple menu item to Many of the existing IntelliJ Platform features are implemented as plugins that can be included or excluded depending on the needs of the end product. See the [](basics.md) for more details. -The IntelliJ Platform is a JVM application, implemented mostly in Java and [Kotlin](https://kotlinlang.org). -Developing plugins for products based on the IntelliJ Platform requires experience with at least one of these languages, its standard and third party libraries, and associated tooling. -At this time, it's not possible to extend the IntelliJ Platform in non-JVM languages. - > In some cases, implementing an actual IntelliJ Platform plugin might not be necessary, as [alternative solutions](plugin_alternatives.md) exist. > {type="tip"}