How to handle plugin conflicts


I have to split my plugin into at least two separate plugins: one using non-JetBrains licensing for current users and for community and educational IDEs which require no license. The other for JetBrains Marketplace licensed version.

The issue I can see arising is conflict if someone has both of these plugins installed.

Is there a mechanism to handle conflicting plugins?

This would be the same as detection on startup when Markdown Navigator and Markdown Support plugins are installed and the user is asked to choose which plugin to use.

Otherwise, I can predict a slew of issues caused when both of these plugins are installed by users, especially as some switch to JetBrains licensing when their current non-JetBrains license expires.


Hello Vladimir!

You can solve it in two ways:

1. Checking if another plugin of yours is already installed with:


2. Registering pluginReplacement Extensions Point extending:

Implement this class in your plugin if there is another plugin which functionality covers functionality
provided by this plugin so there is no sense to have the both plugins installed together. This will instruct
the IDE to suggest a user to disable this plugin when he downloads the new plugin in Settings | Plugins.

So in your case, you may implement one of these methods in your "main" paid plugin to be sure that a limited version is not installed at the same time. 


Thank you Jakub. The second option seems like the ideal solution for me. 

Just to confirm that I understand this correctly: The plugin replacement extension point should be implemented in the plugin that supersedes the plugin to be replaced? That way the IDE will suggest disabling the other plugin if both are installed.



Please sign in to leave a comment.