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

nbz*_*nbz 13 eclipse file-extension eclipse-plugin

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

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

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

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

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

nbz*_*nbz 12

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

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

它实际上比我预期的要简单得多.要创建新的文件扩展名,只需要扩展即可

org.eclipse.core.contenttype.contentTypes
Run Code Online (Sandbox Code Playgroud)

如果您正在使用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>
Run Code Online (Sandbox Code Playgroud)

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

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

由于我不太擅长解释这个,这个链接对我来说非常有用.

但总而言之,本教程是我的步伐,实际上让我在理解如何为Eclipse实现IDE插件方面做了很多工作.我认为这是一个非常理想的起点,尤其适合新人.

另一个让我继续工作的地方是Eclipse常见问题解答,但我特别想指出3.5实现对您自己语言的支持,其中有许多教程链接.


Von*_*onC 9

注意:这(新语言支持,自定义语法高亮,...)是XText提供的一种功能.

Xtext - 语言开发框架

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

XText自定义编辑器示例

由于源代码可用,您可能有很多线索来说明您当前正在查看的软件包的使用情况.