【发布时间】:2015-09-23 11:51:18
【问题描述】:
我无法让我的插件保持其状态。
configProvider.xml 文件永远不会被创建,@State 注释也没有任何效果(显然)。
这是plugin.xml中的相关部分
<extensions defaultExtensionNs="com.intellij">
<applicationService serviceImplementation="my.plugins.idea.vcs.ConfigProvider" serviceInterface="my.plugins.idea.vcs.ConfigProvider"/>
</extensions>
这是提供应该被持久化的对象的类:
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; // gets called regulary
}
@Override
public void loadState(ConfigProvider.State state) {
this.state = state; // not called at all
}
}
我错过了什么?
谢谢, 克里斯托弗
【问题讨论】:
-
这对您来说效果如何?你有没有在下面尝试我的答案。
标签: java xml intellij-idea intellij-plugin