3

Как программно ассоциировать тип файла с редактором?Eclipse RCP: программно ассоциировать тип файла с редактором?

Вот что на Eclipse RCP Java код может делать то, что архивируются с помощью следующего пользовательского интерфейса взаимодействия:

Window -> Preferences 
General -> Editors -> File Associations 
Add... > File type: *.json 
Select *.json file type 
Add... (Associated editors) > JavaScript Editor 
Make it default 

Ralated к Q
https://stackoverflow.com/questions/12429221/eclipse-file-associations-determine-which-editor-in-list-of-associated-editors
Eclipse: associate an editor with a content type
Get associated file extensions for an Eclipse editor
Opening a default editor, on a treeviewer selection eclipse rcp(eg: as eclipse knows that j.java files must be opened in text editor)

eclipse rcp change icon for xml configuration file

ответ

4

Я знаю, что ваши вопросы говорят «программно», но я дам полный пробег методов.

Если вы пишете плагин, который предоставляет редактор, вам следует просто объявить расширение в вашем файле plugin.xml.

 
    <extension 
     point="org.eclipse.ui.editors"> 
     <editor 
      ... 
      extensions="json" 
      ... 

Если вы раздаете полное приложение RPC, вы можете редактировать plugin.xml для плагина, который обеспечивает редактор или добавить плагин, который просто обращается к этому редактору.

Но, , если вы должны сделать это программно, вы манипулируете внутренностями экземпляра RPC. Затмение не обеспечивает публичный API для этого, но этот код будет сделать это:

  // error handling is omitted for brevity 
    String extension = "json"; 
    String editorId = "theplugin.editors.TheEditor"; 

    EditorRegistry editorReg = (EditorRegistry)PlatformUI.getWorkbench().getEditorRegistry(); 
    EditorDescriptor editor = (EditorDescriptor) editorReg.findEditor(editorId); 
    FileEditorMapping mapping = new FileEditorMapping(extension); 
    mapping.addEditor(editor); 
    mapping.setDefaultEditor(editor); 

    IFileEditorMapping[] mappings = editorReg.getFileEditorMappings(); 
    FileEditorMapping[] newMappings = new FileEditorMapping[mappings.length+1]; 
    for (int i = 0; i < mappings.length; i++) { 
     newMappings[i] = (FileEditorMapping) mappings[i]; 
    } 
    newMappings[mappings.length] = mapping; 
    editorReg.setFileEditorMappings(newMappings); 
+0

Это не мой вопрос, но большое спасибо за ваш ответ. – Chris

1

Общаясь тип файла означает, связав содержание ур редактора с предопределенной один. Это может быть легко достигнуто с помощью plugin.xml .. Просто следуйте по следующей ссылке: -

Затмения помощь Документация

http://help.eclipse.org/indigo/index.jsp

и поиск org.eclipse.core.contenttype.contentTypes.

+0

ContentType может быть слишком сложным вариантом. Http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fruntime_content_contributing.htm&cp=2_0_3_4_1 –