最简单的方法是定义一个新的关联。要在您的项目上执行此操作,请打开Project Properties
-> C/C++ General
-> File Types
,然后选择Use Project Settings
并定义一个新的扩展:
您还可以在工作区级别定义它,Window
-> Preferences
-> C/C++
-> File Types
这应该会给你大部分你想要的东西。例如,(我实际上不知道TOM),我有一个简单的项目,有1个C文件、1个H文件和1个T文件。您想要和期望的所有功能只是工作:
如果你想要更多
如果您想要更多,这是可以完成的,但您必须编写自己的 Eclipse 插件来了解一些*.t
文件。幸运的是,它只需要几行 XML。到此结束时,您应该得到与上面基本相同的功能,但您已经有了自己的 TOM 插件的起点。
您需要做的是通过扩展来定义内容类型org.eclipse.core.contenttype.contentTypes
扩展点 http://help.eclipse.org/mars/topic/org.eclipse.platform.doc.isv/reference/extension-points/org_eclipse_core_contenttype_contentTypes.html?cp=2_1_1_9(还有一些较旧的文档跑了一遍 http://help.eclipse.org/mars/topic/org.eclipse.platform.doc.isv/guide/runtime_content_contributing.htm?cp=2_0_3_4_1)
In your plugin.xml
这看起来像:
<extension point="org.eclipse.core.contenttype.contentTypes">
<!-- declares a content type for TOM source files -->
<content-type id="tSource" name="TOM File"
base-type="org.eclipse.core.runtime.text"
file-extensions="t"
priority="high"/>
</extension>
您可能会考虑制作base-type
纯文本以外的内容,例如你能做到org.eclipse.cdt.core.cSource
.
然后您需要定义一种新语言,就我们的目的而言,称为 TOM 语言。您可以使用org.eclipse.cdt.core.language
扩展点 http://help.eclipse.org/mars/topic/org.eclipse.cdt.doc.isv/reference/extension-points/org_eclipse_cdt_core_language.html?cp=14_1_1_7.
其示例如下:
<extension
point="org.eclipse.cdt.core.language">
<language
class="org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage"
id="com.kichwacoders.tom.core.tomlanguage"
name="TOM Language">
<contentType
id="com.kichwacoders.tom.core.tSource"></contentType>
</language>
</extension>
班上,GCCLanguage
是标准的 GCC 之一。当然,如果您想进一步改进支持,可以选择添加或自定义解析器(以删除有关 tom 内容的语法错误),您可以扩展 GCCLanguage 或层次结构中的其他类之一。
完成所有这些操作并将新插件添加到 Eclipse 安装后,您将获得 TOM 文件支持。
如果您读到最后,您可能会发现简单地 fork 很有用https://github.com/jonahkichwacoders/com.kichwacoders.tom.core https://github.com/jonahkichwacoders/com.kichwacoders.tom.core其中包含上面的所有代码?