开发者

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

开发者 https://www.devze.com 2023-01-18 20:47 出处:网络
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.

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.

开发者_C百科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.


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.


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.

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

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

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号