Eclipse plug-in: Create a new file extension for a language not supported by Eclipse

牧云@^-^@ 提交于 2019-12-29 14:49:46

问题


I am creating an Eclipse plug-in for it to support a new language. The problem I have is with the content type/file association and its respective editor.

The language has no base in Java or XML and let's say its extension is '.xyz'

From what I understood of research online, I would need to create a new Content Type with file extension '.xyz'. But all the information I have found online has related to either associating a new extension with java (for java syntax highlighting) or creating a new type of file which can be a variant of XML, hence having a lot of details about the describer.
Basically, I am confused about the content describer, am I also to create a new describer for a new language? And what base-type would I give for a language not related to XML or JAVA at all?

Also, since I will be adding my own syntax highlighting, would I need to create my own editor or can I just open such a file in the pre-set editorArea (editors).

The package I am looking at for content types is org.eclipse.core.contenttype.contentTypes.


回答1:


I realised that I never really picked an answer for this question and eventually I found some useful information on it, so I thought I would share it.

This is the information I understood and used; I apologize if there are any errors or I have misunderstood, and I am open to any corrections.

It was actually a lot simpler than I expected. To create a new file extension, you just need to extend

org.eclipse.core.contenttype.contentTypes

If you are using the PDE, then you can just right click on the extension (once it is added in the extensions tab) and choose New... -> content-type

Here is the xml code for it,

<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>

Here you can set the properties of this content-type by defining a unique id, a human-readable name and the extension. You can also give multiple extensions for this content type. For example, my XYZ language can have 2 types of extension '.xyz, and '.xyzz'.

The content describer comes in when I have one generic file-extension: '.xy' but the content or format of the file may differentiate and so I need a describer for the editor to be able to go through the content of the file and recognize the difference. This is handy for syntax highlighting where I need to know the differences.

Since I am not very good at explaining this, this link was extremely useful to me.

But all in all, this tutorial is what set me on my pace and has actually taken me far in understanding how to implement an IDE plug-in for Eclipse. I think it is a very ideal place to start, especially for someone new.

Another place that kept my work going is the Eclipse FAQs but I would specifically like to point out to section 3.5 Implementing Support for Your Own Language which has many tutorial links.




回答2:


Note: this (new language support, custom syntax highlighting, ...) is the kind of feature provided with XText.

Xtext - Language Development Framework

With Xtext you can easily create your own programming languages and domain-specific languages (DSLs).
The framework supports the development of language infrastructures including compilers and interpreters as well as full blown Eclipse-based IDE integration.

Since the sources are available, you might have a lots of clues to illustrate the usage of the packages you are currently looking.



来源:https://stackoverflow.com/questions/3838558/eclipse-plug-in-create-a-new-file-extension-for-a-language-not-supported-by-ecl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!