Eclipse插件:语法重新着色



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

在您的编辑器中,您需要侦听来自首选项存储的属性更改事件。

在你的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);

最新更新