How to define moduleConfigurable in 2020.3?

Answered

Hi,

currently I define in my plugin a moduleConfigurable (an additional Tab in Module Settings next to Sources/Paths/Dependencies/...) via module component

<module-components>
<component>
<implementation-class>
org.intellij.sonar.configuration.module.ModuleSettingsConfigurable
</implementation-class>
</component>
</module-components>

public class ModuleSettingsConfigurable implements Configurable, ModuleComponent { ... }

 

since module components are deprecated, I want to replace it by the moduleConfigurable extension.
But how do I do this?
In the plugin.xml I can define only:

<moduleConfigurable id="" order="" os="" />

The attributes instance and displayName cannot be defined as for the projectConfigurable:

<projectConfigurable 
id="projectSettingsConfigurable"
instance="org.intellij.sonar.configuration.project.ProjectSettingsConfigurable"
displayName="SonarQube"
/>

My question is, how to replace module-component by moduleConfigurable extension properly?

Thank You!

0
2 comments

Please use

com.intellij.openapi.roots.ui.configuration.ModuleConfigurationEditorProvider

in extension point com.intellij.moduleConfigurationEditorProvider

in addition with corresponding moduleService to store settings. see org.jetbrains.idea.devkit.build.PluginBuildConfiguration in Devkit as sample.

0

It worked.

Thank you!

0

Please sign in to leave a comment.