Eclipse为自定义Content-type添加自定义图标问题咨询
给自定义Content-Type添加图标:找对扩展点就搞定啦
你没走错方向,只是找错了扩展点——org.eclipse.core.contenttypes.contentTypes本身只负责定义内容类型的识别规则,并不处理图标关联。要给特定文件类型加自定义图标,得用下面这两个常用的扩展点:
方法1:直接用org.eclipse.ui.ide.fileImageDescriptors绑定图标
这个扩展点是最直接的方式,不需要关联编辑器,就能给指定内容类型(或文件后缀)绑定图标。
配置示例:
<extension point="org.eclipse.ui.ide.fileImageDescriptors"> <imageDescriptor contentTypeId="com.yourcompany.yourcontenttype" <!-- 替换成你定义的内容类型ID --> icon="icons/your-custom-file-icon.png"> <!-- 插件内的图标路径 --> </imageDescriptor> </extension>
如果你的内容类型是基于文件后缀的,也可以把contentTypeId换成fileExtension="your-ext"来指定后缀。
方法2:通过编辑器映射间接关联图标
如果你已经打算给这个文件类型做自定义编辑器,那可以在编辑器扩展里直接指定图标,绑定内容类型后,Eclipse会自动把编辑器图标作为该类型文件的图标。
配置示例:
<extension point="org.eclipse.ui.editors"> <editor id="com.yourcompany.youreditor" name="自定义文件编辑器" icon="icons/your-editor-icon.png" <!-- 这里指定的图标会同步作为文件图标 --> class="com.yourcompany.editor.YourCustomEditor" contributorClass="com.yourcompany.editor.YourEditorContributor"> <contentTypeBinding contentTypeId="com.yourcompany.yourcontenttype"> <!-- 绑定到你的内容类型 --> </contentTypeBinding> </editor> </extension>
几个注意事项
- 一定要确保图标文件在插件的
build.properties里被正确包含(比如在bin.includes里加上icons/),不然运行时会找不到图标。 - 测试前最好重启Eclipse并清理工作区缓存,避免旧图标残留。
- 如果同时配置了两种方式,编辑器映射的图标优先级会更高。
内容的提问来源于stack exchange,提问作者Jakob Sachs
相关产品推荐
相关产品推荐

