Получить связанные расширения файлов для редактора 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.

Другие вопросы по тегам