I can not force my plugin to keep its state. The configProvider.xml file is never created, and the @State annotation has no effect (apparently).
This is an important part in the plugin.xml file.
<extensions defaultExtensionNs="com.intellij"> <applicationService serviceImplementation="my.plugins.idea.vcs.ConfigProvider" serviceInterface="my.plugins.idea.vcs.ConfigProvider"/> </extensions>
This is the class that provides the object to be persisted:
import com.intellij.openapi.components.PersistentStateComponent; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.components.State; import com.intellij.openapi.components.Storage; import java.util.LinkedHashMap; @State( name = "ConfigProvider", storages = { @Storage(id = "main", file = "$APP_CONFIG$/configProvider.xml") } ) public class ConfigProvider implements PersistentStateComponent<ConfigProvider.State> { private State state = new State(); class State { public State() {} public LinkedHashMap<String, String> commitTypes = null; public Integer selectedDefaultCommitTypeIndex = null; public String jiraApiUrl; public String jiraAuthorization; public String jiraFilterId; } public static ConfigProvider getInstance() { return ServiceManager.getService(ConfigProvider.class); } @Override @org.jetbrains.annotations.Nullable public ConfigProvider.State getState() { return state;
What am I missing?
Thanks Christopher
source share