我正在为它创建一个Eclipse插件来支持新语言。我遇到的问题是内容类型/文件关联及其各自的编辑器。
该语言没有Java或XML基础,让我们说它的扩展名是“.xyz
”
根据我对在线研究的理解,我需要创建一个文件扩展名为“.xyz
”的新内容类型。但是我在网上找到的所有信息都与将新扩展名与java(用于java语法高亮)相关联或创建一种新类型的文件(可能是XML的变体)有关,因此有很多关于描述符的细节。登记/>
基本上,我对内容描述符感到困惑,我是否还要为新语言创建新的描述符?对于与XML或JAVA无关的语言,我会给出什么样的基类?
另外,由于我将添加自己的语法高亮显示,我是否需要创建自己的编辑器,或者我可以在预设的editorArea(编辑器)中打开这样的文件。
我正在寻找内容类型的包org.eclipse.core.contenttype.contentTypes
。
答案 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集成。
自 sources are available 以来,您可能有很多线索来说明您当前正在寻找的软件包的使用情况。