是否可以将编辑器与项目natureId相关联?我有一个项目,其中包含具有不同文件扩展名的文件,但它们可以使用相同的编辑器进行编辑。
我尝试将内容类型与natureId和编辑器匹配,只需将Extension类型留空即可。不幸的是它不起作用或者我没有正确执行:(
如果可能的话,覆盖项目的默认编辑器也会有效!?
到目前为止我已尝试过:
<extension
point="org.eclipse.core.contenttype.contentTypes">
<content-type
describer="test.FOPContentDescriber"
id="test.content.type"
name="FO Files"
priority="high">
</content-type>
</extension>
<extension
point="org.eclipse.ui.editors">
<editor
class="test.editors.FOEditor"
contributorClass="test.editors.FOEditorContributor"
default="false"
icon="icons/fo_editor_16.png"
id="test.editors.FOEditor"
name="%editor.name">
<contentTypeBinding
contentTypeId="test.content.type">
</contentTypeBinding>
</editor>
内容描述类:
package test.fop;
import java.io.IOException;
import java.io.InputStream;
import org.eclipse.core.runtime.QualifiedName;
import org.eclipse.core.runtime.content.IContentDescriber;
import org.eclipse.core.runtime.content.IContentDescription;
import org.eclipse.core.runtime.content.ITextContentDescriber;
public class FOPContentDescriber implements IContentDescriber {
public FOPContentDescriber() {
System.out.println("init content describer");
}
@Override
public int describe(InputStream contents, IContentDescription description) throws IOException {
System.out.println("Call describer");
return ITextContentDescriber.VALID;
}
@Override
public QualifiedName[] getSupportedOptions() {
return IContentDescription.ALL;
}
}
答案 0 :(得分:0)
您可以使用org.eclipse.core.contenttype.contentTypes
扩展点定义文件内容类型。
您可以使用内容类型定义的describer
元素来指定实现IContentDescriber
的类。将调用此类以检查文件是否对内容类型有效。描述者还可以从文件中提取信息并将其存储在内容描述中。
注意:内容描述符仅在输入流上给出,无法找到文件路径。
使用org.eclipse.ui.editors
扩展点定义编辑器时,可以使用contentTypeBinding
元素将编辑器绑定到内容类型。