我正在为eclipse编写插件,我需要为RAM中加载的文件打开编辑器。当我打开新编辑器时,它从IEditorInput获取输入。有许多类,它们实现了这个接口,但它们通常是从HDD读取文件,或者它们对此无用。
所以问题是: 如何制作IEditorInput,它将从内存中读取文件?
答案 0 :(得分:1)
您可以使用实现setInterval(function(){
// add ajax stuff here
$('input[name=_token]').val(new_token);
}, 1800000);
的对象作为编辑器输入。这使用IStorageEditorInput
对象来保存要编辑的内存数据。
简单的IStorage
实现看起来像:
IStorageEditorInput
(以上改编自class StorageEditorInput extends PlatformObject implements IStorageEditorInput {
private IStorage fStorage;
public StorageEditorInput(IStorage storage) {
fStorage = storage;
}
@Override
public IStorage getStorage() {
return fStorage;
}
@Override
public ImageDescriptor getImageDescriptor() {
return null;
}
@Override
public String getName() {
return getStorage().getName();
}
@Override
public IPersistableElement getPersistable() {
return null;
}
@Override
public String getToolTipText() {
return getStorage().getFullPath().toOSString();
}
@Override
public boolean equals(Object object) {
return object instanceof StorageEditorInput &&
getStorage().equals(((StorageEditorInput)object).getStorage());
}
@Override
public int hashCode() {
return getStorage().hashCode();
}
@Override
public boolean exists() {
return true;
}
}
)
您还必须提供自己的org.eclipse.debug.internal.ui.views.console.ProcessConsole
实现,实际上您应该实现扩展IStorage
的{{1}}以包含字符编码。
请注意,某些编辑可能无法理解IEncodedStorage
。