Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a way to run IDE with separate backend and frontend processes and have the plugin installed on the frontend side #1563

Closed
chashnikov opened this issue Mar 15, 2024 · 7 comments
Assignees
Milestone

Comments

@chashnikov
Copy link
Member

chashnikov commented Mar 15, 2024

Describe the need of your request

If you want to develop a plugin that should work in the frontend process (JetBrains Client), it'll be good to have a way to debug such a plugin without manually creating its distribution and installing it.

Proposed solution

In #1562 a task which runs the backend part and the frontend part of the IDE in separate processes is introduced. By default, it includes the developed plugin in the backend process. Until we can automate determine whether the plugin is supposed to work on the backend side, on the frontend side or both, let's provide a configuration option to manually specify which process should have the plugin.

@AlexPl292
Copy link
Member

JFI, IdeaVim plugin works only on the client side, so this would be really helpful for us.

@citizenmatt
Copy link
Member

Is this planned for 2.0? It's the only reason IdeaVim would use split mode, so would be great if it can be in added sooner rather than later. Thanks!

@chashnikov chashnikov self-assigned this Apr 24, 2024
@chashnikov
Copy link
Member Author

@citizenmatt I'm working on this, hope to have it done soon.

@citizenmatt
Copy link
Member

Cool. Thank you!

@hsz hsz added this to the 2.x milestone Apr 24, 2024
chashnikov added a commit that referenced this issue Apr 24, 2024
…ontend part when running in Split Mode (#1563)

`targetProductPart` property is added to `IntelliJPlatformExtension` and `SplitModeAware`. It controls in which part of the IDE the developed plugin is installed. To do that, `PrepareSandboxTask` generates a properties file which configures the frontend process started from Split Mode. The path to the file is passed via `JETBRAINS_CLIENT_PROPERTIES` environment variable.
@chashnikov
Copy link
Member Author

chashnikov commented May 15, 2024

This should be fixed in 2.0.0-beta2. Use the following configuration in build.gradle.kts:

intellijPlatform {
    splitMode = true
    splitModeTarget = SplitModeAware.SplitModeTarget.FRONTEND
}

In order to use this, you need to firstly migrate the plugin to IntelliJ Platform Gradle Plugin 2.0, see the guide.

@chashnikov
Copy link
Member Author

It appears that currently this doesn't work on macOS due to customized layout of IDE installation used by intellij-platform-gradle-plugin. I'll fix this on IDE side RDCT-1375.

@chashnikov
Copy link
Member Author

The problem with installing plugin on macOS should be fixed if the next 2024.2 EAP build of the IDEs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants