Editor与Viewer和DocumentProvider相关.
参见eclipse sample代码:
public class XMLEditor extends TextEditor { private ColorManager colorManager; public XMLEditor() { super(); colorManager = new ColorManager(); setSourceViewerConfiguration(new XMLConfiguration(colorManager)); setDocumentProvider(new XMLDocumentProvider()); } public void dispose() { colorManager.dispose(); super.dispose(); } }
在系统自带的AsmEditor代码中也可以看到:
protected void initializeEditor() { IPreferenceStore store= CUIPlugin.getDefault().getCombinedPreferenceStore(); // FIXME: Should this editor have a different preference store ? // For now we are sharing with the CEditor and any changes in the // setting of the CEditor will be reflected in this editor. setPreferenceStore(store); final IColorManager colorManager = CDTUITools.getColorManager(); setSourceViewerConfiguration(new AsmSourceViewerConfiguration(colorManager, store, this, ICPartitions.C_PARTITIONING)); setDocumentProvider(CUIPlugin.getDefault().getDocumentProvider()); setEditorContextMenuId("#ASMEditorContext"); //$NON-NLS-1$ setRulerContextMenuId("#ASMEditorRulerContext"); //$NON-NLS-1$ }
故AsmSourceViewerConfiguration是对Editor不同元素颜色处理的关键...