IntelliJ 插件中的持久存储
Persistent storage in IntelliJ plugin
我正在开发一个 IntelliJ 插件,我想将一些设置信息存储为一个字符串。我怎样才能存储它?我发现 PersistentStateComponent<T>
就是为了这个目的,但我没有发现这个 class.
的任何工作和简单使用
能否请您提供一些信息,我如何才能创建一个 class 只有一个字符串参数和方法,例如:
Void Save(String value)
{
//save SettingsAsString
{
String Load()
{
//Do something
return savedSettingsAsString
}
谢谢!
这是一个简单的例子:
实施 applicationService
扩展点
<applicationService serviceImplementation="com.sylvanaar.idea.Lua.options.LuaApplicationSettings"/>
然后设置实现几乎就是样板文件,您只需在设置 class 上为要存储的所有设置创建字段。
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);
}
}
我正在开发一个 IntelliJ 插件,我想将一些设置信息存储为一个字符串。我怎样才能存储它?我发现 PersistentStateComponent<T>
就是为了这个目的,但我没有发现这个 class.
能否请您提供一些信息,我如何才能创建一个 class 只有一个字符串参数和方法,例如:
Void Save(String value)
{
//save SettingsAsString
{
String Load()
{
//Do something
return savedSettingsAsString
}
谢谢!
这是一个简单的例子:
实施 applicationService
扩展点
<applicationService serviceImplementation="com.sylvanaar.idea.Lua.options.LuaApplicationSettings"/>
然后设置实现几乎就是样板文件,您只需在设置 class 上为要存储的所有设置创建字段。
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);
}
}