Eclipse插件:为Eclipse不支持的语言创建新的文件扩展名

时间:2010-10-01 11:04:19

标签: eclipse eclipse-plugin file-extension

我正在为它创建一个Eclipse插件来支持新语言。我遇到的问题是内容类型/文件关联及其各自的编辑器。

该语言没有Java或XML基础,让我们说它的扩展名是“.xyz

根据我对在线研究的理解,我需要创建一个文件扩展名为“.xyz”的新内容类型。但是我在网上找到的所有信息都与将新扩展名与java(用于java语法高亮)相关联或创建一种新类型的文件(可能是XML的变体)有关,因此有很多关于描述符的细节。登记/> 基本上,我对内容描述符感到困惑,我是否还要为新语言创建新的描述符?对于与XML或JAVA无关的语言,我会给出什么样的基类?

另外,由于我将添加自己的语法高亮显示,我是否需要创建自己的编辑器,或者我可以在预设的editorArea(编辑器)中打开这样的文件。

我正在寻找内容类型的包org.eclipse.core.contenttype.contentTypes

2 个答案:

答案 0 :(得分:12)

我意识到我从未真正选择过这个问题的答案,最终我找到了一些有用的信息,所以我想我会分享它。

这是我理解和使用的信息;如果有任何错误或我误解了,我道歉,我愿意接受任何更正。

实际上比我想象的要简单得多。 要创建新的文件扩展名,只需扩展

即可
org.eclipse.core.contenttype.contentTypes

如果您使用的是PDE,那么您只需右键点击扩展程序(在扩展程序标签中添加后),然后选择新建... - >内容类型

这是它的xml代码,

<extension
         id="com.newLanguage.XYZ.contentType"
         point="org.eclipse.core.contenttype.contentTypes">
      <content-type
            file-extensions="xyz,xyzz"
            id="com.newLanguage.XYZ.contenttypeMod"
            name="XYZ File"
            priority="normal">
      </content-type>
   </extension>

在这里,您可以通过定义唯一ID,人类可读的名称和扩展名来设置此内容类型的属性。您还可以为此内容类型提供多个扩展名。例如,我的XYZ语言可以有两种类型的扩展名'.xyz和'.xyzz'。

当我有一个通用文件扩展名时会出现内容描述符:'。。'但文件的内容或格式可能有所不同,所以我需要编辑器的描述符才能通过文件并识别差异。这对于语法突出显示很方便,我需要知道它们之间的区别。

由于我不太擅长解释这一点,this link对我非常有用。

但总而言之,this tutorial正是我的步伐,实际上让我了解了如何为Eclipse实现IDE插件。我认为这是一个非常理想的起点,尤其适合新人。

另一个让我的工作继续进行的地方是Eclipse FAQs,但我特别想指出section 3.5 Implementing Support for Your Own Language有很多教程链接。

答案 1 :(得分:9)

注意:此(新语言支持,自定义语法突出显示,...)是 XText 提供的功能。

  

Xtext - 语言开发框架

     

使用Xtext,您可以轻松创建自己的编程语言和特定于域的语言(DSL)   该框架支持语言基础结构的开发,包括编译器和解释器以及基于Eclipse的完整IDE集成。

XText custom editor example

sources are available 以来,您可能有很多线索来说明您当前正在寻找的软件包的使用情况。