Eclipse RCP的:编程文件类型与编辑器相关联?(Eclipse RCP: programma

2019-08-20 07:16发布

如何编程关联与编辑文件类型?

这就是Eclipse的RCP Java代码可以做什么是存档以下UI交互:

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编辑器
打开默认编辑器,在选择的TreeViewer Eclipse RCP的(如:作为日食知道j.java文件必须在文本编辑器打开)

Eclipse RCP的变化图标xml配置文件

Answer 1:

我知道你的问题说:“编程”,但我会给出一个完整的运行的方法了。

如果你正在编写提供了编辑器插件,那么你应该简单地声明在plugin.xml扩展。

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

如果您正在分发一个完整的RPC应用程序,您可以编辑提供编辑或添加一个插件,仅仅指的是编辑器插件plugin.xml中。

但是, 如果你有编程做到这一点,你操纵的RPC实例的内部。 Eclipse不为提供一个公共的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);


Answer 2:

关联文件类型关联意味着与乌尔预定一个编辑的内容。 这可以通过plugin.xml中可以轻松实现..只要遵循以下链接: -

Eclipse帮助文档

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

并搜索org.eclipse.core.contenttype.contentTypes。



文章来源: Eclipse RCP: programmatically associate file type with Editor?