我有自己语言的costum编辑器,我想从它们之间的属性菜单进行更改,并相应地重新着色语法。我不知道是否必须使用调节器或其他东西。语法重新着色的唯一方法是关闭并打开当前文件。
答案 0 :(得分:0)
在您的编辑器中,您需要从偏好商店中侦听属性更改事件。
在initializeEditor
方法调用中setPreferenceStore(preferenceStore)
覆盖handlePreferenceStoreChanged
方法:
@Override
protected void handlePreferenceStoreChanged(PropertyChangeEvent event)
{
// TODO update settings affected by the event
// TODO If required invalidate the current presentation to update the colors
getSourceViewer().invalidateTextPresentation();
super.handlePreferenceStoreChanged(event);
}
您需要添加代码以查看属性更改事件,以查看它是否是您需要处理的事件。如果事件改变了需要重新绘制文本的内容(例如更改颜色),请调用getSourceViewer().invalidateTextPresentation()
。
要支持所有普通文本编辑器首选项,您需要在setPreferenceStore
调用中使用链式首选项存储:
IPreferenceStore generalTextStore = EditorsUI.getPreferenceStore();
IPreferenceStore yourPreferenceStore = get your preference store
IPreferenceStore combinedPreferenceStore = new ChainedPreferenceStore(new IPreferenceStore[] {yourPreferenceStore, generalTextStore});
setPreferenceStore(combinedPreferenceStore);