Disabling plugins
I think a valid use case to turn off or disable other plugins is, when several provide the same functionality and thus should not be installed at the same time, like file types for the same extensions, run configuration overlap, and more.
For example, BashSupport Pro and the Shell plugin provide a similar set of features.
If possible, both should not be used and installed at the same time. For better UX BashSupport Pro has a wizard to let the user decide if Shell should be disabled or not.
With the changes of 2026.2, this won‘t be possible anymore.
Is a clear, user-initiated action a valid use case to disable another plugin?
If not, what do you recommend?
Asking the user „please close this dialog, go to settings, locate the plugin X, click disable, then restart“ seems not like good UX or a good alternative to me.
I can‘t use „incompatible with“, because some IDE’s features (iirc, e.g. CLion + Makefile support, others) depend on Shell.
Accessing classloader
There‘s another case not possible anymore with 2026.2 for me:
Because BashSupport Pro is providing Shell run configuration compatibility, it unregisters Shell‘s runConfigurationProducer via „ExtensionPoint.unregisterExtension(Class)“ when both are enabled.
The method variant with „class“ is used to prevent instantiating the extension unnecessarily. To locate the class without instantiating the extension, I access the classloader of the other plugin (but not using reflection).
Not doing this would make two providers for the same run configurations available at the same time, which ends up with unpredictable results, bad UX, exceptions and more.
I‘m not sure which usages made JetBrains restrict the API this much, I just hope there‘s a way to allow the valid use cases while still preventing abuse…
Thanks!
Joachim