【问题标题】:Persistent storage in IntelliJ pluginIntelliJ 插件中的持久存储
【发布时间】:2016-06-26 10:18:55
【问题描述】:
我正在开发一个 IntelliJ 插件,我想将一些设置信息存储为字符串。我怎样才能存储它?我发现PersistentStateComponent<T> 就是为了这个目的,但是我没有发现这个类的任何工作和简单的使用。
您能否提供一些信息,我如何才能创建一个只有一个字符串参数和方法的类:
Void Save(String value)
{
//save SettingsAsString
{
String Load()
{
//Do something
return savedSettingsAsString
}
谢谢!
【问题讨论】:
标签:
java
intellij-idea
intellij-plugin
persistent-storage
【解决方案1】:
这是一个简单的例子:
实现applicationService 扩展点
<applicationService serviceImplementation="com.sylvanaar.idea.Lua.options.LuaApplicationSettings"/>
然后设置实现几乎是样板,您只需在设置类上为要存储的所有设置创建字段。
public class LuaApplicationSettings implements PersistentStateComponent<LuaApplicationSettings> {
public boolean INCLUDE_ALL_FIELDS_IN_COMPLETIONS = false;
public boolean SHOW_TAIL_CALLS_IN_GUTTER = true;
public boolean ENABLE_TYPE_INFERENCE = true;
@Override
public LuaApplicationSettings getState() {
return this;
}
@Override
public void loadState(LuaApplicationSettings state) {
XmlSerializerUtil.copyBean(state, this);
}
public static LuaApplicationSettings getInstance() {
return ServiceManager.getService(LuaApplicationSettings.class);
}
}