How to programmatically verify that the Plugin is enabled, loaded and activated in 2025.3+

Hello!

Before 2025.3 it was possible to programmatically verify that the optional plugin is enabled, loaded and activated, but since 2025.3 the following verification seems to be incomplete and results to false-positive evaluation of the plugin state:

val pluginId = PluginId.getId("com.intellij.spring")

PluginManagerCore.isLoaded(pluginId) && !PluginManagerCore.isDisabled(pluginId)

Despite the fact that Spring plugin is loaded and active, its classes are not visible when User has no active subscription yet.

Spring plugin consists of many modules, some of them work in free mode without subscription. So returned result for PluginManagerCore.isLoaded(pluginId) is true and this is correct.

Modules of plugins that require a user subscription also depend on com.intellij.modules.ultimate plugin and are not loaded at runtime (and their classes are unavailable) until subscription is enabled.

1 Like