Eclipse插件:语法重新着色

时间:2014-07-16 10:05:49

标签: eclipse-plugin

我有自己语言的costum编辑器,我想从它们之间的属性菜单进行更改,并相应地重新着色语法。我不知道是否必须使用调节器或其他东西。语法重新着色的唯一方法是关闭并打开当前文件。

1 个答案:

答案 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);