Я работаю над многостраничным редактором, который загружает, открывает несколько файлов (например, java, html) на отдельных вкладках многостраничного редактора. Файлы открываются с помощью редакторов по умолчанию, связанных с типом файла, и эти редакторы по умолчанию встроены в многостраничный редактор в виде вкладок.
Вот как я определяю, какой редактор загрузить (для типа файла):
void createPage() throws PartInitException
{
// get editor registry
IEditorRegistry editorRegistry = Activator.getDefault().getWorkbench().getEditorRegistry();
// loop through mappings until the extension matches.
IEditorDescriptor editorDescriptor = editorRegistry.getDefaultEditor(((IFileEditorInput)getEditorInput()).getFile().getName());
// if no editor was found that is associated to the file extension
if (editorDescriptor == null)
{
IEditorRegistry registry = Activator.getDefault().getWorkbench().getEditorRegistry();
editorDescriptor = registry.findEditor(EditorsUI.DEFAULT_TEXT_EDITOR_ID);
}
IConfigurationElement configuration = ((EditorDescriptor) editorDescriptor).getConfigurationElement();
String className = configuration.getAttribute("class");
IEditorPart editor;
try
{
editor = (IEditorPart) WorkbenchPlugin.createExtension(configuration, "class");
} catch (CoreException e) {
throw new RuntimeException(e);
}
final int index = addPage(editor, getEditorInput());
setPageText(index, "TAB_NAME");
}
Редактор с несколькими вкладками создается без проблем, и на вкладках загружаются правильные редакторы.
Но функция «Отметить вхождения» не работает в редакторе Java при загрузке на вкладке.
Я подтвердил, что отметка вхождений включена. Когда я выбираю переменную в редакторе Java на моей вкладке многостраничного редактора, она не выделяет другие вхождения переменной.
Но если я одновременно открою файл в своем редакторе с несколькими вкладками и в отдельном редакторе java и выберу переменную в отдельном редакторе java, он выделит другие вхождения в отдельном редакторе java, а также встроенный редактор java в моем многостраничном редакторе.
Таким образом, кажется, что функциональность включена и загружена, она просто не выполняет функцию появления меток, когда выбор происходит во встроенном редакторе.
Что необходимо изменить, чтобы я мог использовать функцию появления меток из редактора Java, встроенного в мой редактор с несколькими вкладками?
Насколько я понимаю, Mark Occurences является центральной службой, поэтому я предполагаю, что мне не хватает той части, которая обновляет эту службу, когда что-то выбирается в моем редакторе. Есть идеи, что нужно сделать, чтобы сервис обновлялся?
Примечание. Эта проблема возникает, только если редактор java встроен в многостраничный редактор.