JetBrains / intellij-platform-plugin-template

Template repository for creating plugins for IntelliJ Platform
Apache License 2.0
3.04k stars 614 forks source link

Feature Request: More template examples #375

Closed LecrisUT closed 1 year ago

LecrisUT commented 1 year ago

These can be implemented as different branches

hsz commented 1 year ago

Thanks for raising this ticket. In general, this Plugin Template is focused on providing a template for IntelliJ-based IDEs; therefore, TeamCity is not even considered here. As for enabling the possibility of running other IDEs locally in an easy way — that's something that will be covered with the IntelliJ Platform Gradle Plugin 2.0 (now known as Gradle IntelliJ Plugin).

LecrisUT commented 1 year ago

In general, this Plugin Template is focused on providing a template for IntelliJ-based IDEs; therefore, TeamCity is not even considered here.

Understandable, but that one is archived. Any chance of getting a modern setup for that?

As for enabling the possibility of running other IDEs locally in an easy way — that's something that will be covered with the IntelliJ Platform Gradle Plugin 2.0 (now known as Gradle IntelliJ Plugin).

Thanks for the info, was completely unaware of that. Any documentation for 2.0 and/or how the feature will work?

But I think it is still non-trivial for newcomers how to setup a multi-project environment, e.g. (:, :plugin, :clion, :idea), especially to newcomers to gradle. Any ideas on some documentation for that?

To my comparison to the rust plugin some key tips are:

Still unclear is:

hsz commented 1 year ago

As for the TeamCity template, I reached folks from TC to see if they have any plans.

The 2.0-SNAPSHOT will be publicly announced whenever it becomes available — including 2.0 branch docs and a migration guide from 1.x. In general, 2.0 will focus on bringing better support and documentation for multi-module projects in different variations — which was actually not covered in the current state of the Gradle plugin. That includes also the possibility to apply just IntelliJ SDK in submodules without enhancing them with all tasks and extra configurations.

As for idea-plugin.content.module — I'm not yet sure about it. We'll see!

Does one still have to specify plugins manually when using gradle/libs.version.toml? Is there an easier way to the the plugin id?

You'll still have to use the Gradle's plugins { } to apply the Gradle plugin to the project or submodule. That'll remain, however the Gradle plugin ID will change.

how to configure intellij for the ide subprojects. In rust plugin it doesn't set type.set(...), but I found that when I adapt it locally it doesn't build without it. What magic does one have to do there, and how to link runide of :plugin to it?

This will change in 2.0 as we're dropping the intellij.type and intellij.version in favor of defining the dependency to the given IntelliJ SDK using the Gradle's dependencies { } closure.

And again — no worries, everything will be explained in the upcoming docs and migration guides whenever 2.0-SNAPSHOT will be ready.