Получить связанные расширения файлов для редактора Eclipse
Я пытаюсь программно получить связанные расширения файлов для определенного редактора из моего (основанного на DLTK) плагина Eclipse. Причина этого заключается в том, что я хочу индексировать только файлы, связанные с моим редактором, и мне нужно избегать жесткого кодирования расширений, поскольку пользователи могут связывать любое расширение файла с редактором с помощью предпочтений Eclipse.
Пример кода:
public boolean isValidPluginFile(ISourceModule sourceModule) {
// currently:
if (sourceModule.getUnderlyingResource().getFileExtension().equals("twig")) {
return true;
}
return false;
// what i would need instead (pseudocode):
List extensions = Somehow.Retrieve.AssociatedExtensionsFor('MyEditorID');
for (String extension : extensions) {
if (sourceModule.getUnderlyingResource().getFileExtension().equals(extension)) {
return true;
}
}
return false;
}
1 ответ
Решение
Вы можете получить все сопоставления файлового редактора
IEditorRegistry editorReg = PlatformUI.getWorkbench().getEditorRegistry();
IFileEditorMapping[] mappings = editorReg.getFileEditorMappings();
и затем выберите только связанный с вашим editorId.