Плагин Eclipse: создайте новое расширение файла для языка, не поддерживаемого Eclipse - PullRequest
13 голосов
/ 01 октября 2010

Я создаю подключаемый модуль Eclipse для поддержки нового языка.У меня проблема с типом содержимого / сопоставлением файлов и соответствующим редактором.

Язык не имеет основы в Java или XML, и, скажем, его расширение равно '.xyz'

Fromчто я понял из онлайн-исследований, мне нужно было бы создать новый тип контента с расширением файла .xyz.Но вся информация, которую я нашел в Интернете, связана либо с ассоциированием нового расширения с java (для подсветки синтаксиса java), либо с созданием файла нового типа, который может быть вариантом XML, следовательно, с большим количеством деталей о дескрипторе.
По сути, я запутался в дескрипторе контента, должен ли я также создать новый дескриптор для нового языка?И какой базовый тип я бы дал для языка, вообще не связанного с XML или JAVA?

Кроме того, поскольку я буду добавлять свою собственную подсветку синтаксиса, мне нужно будет создать свой собственный редактор или я могу простооткройте такой файл в предустановленном редакторе области (редакторы).

Пакет, который я просматриваю для типов контента, org.eclipse.core.contenttype.contentTypes.

Ответы [ 2 ]

12 голосов
/ 10 февраля 2011

Я понял, что никогда не выбирал ответ на этот вопрос, и в конце концов я нашел некоторую полезную информацию по нему, поэтому я решил поделиться им.

Это информация, которую я понял и использовал;Я прошу прощения, если есть какие-либо ошибки или я неправильно понял, и я открыт для любых исправлений.

Это было на самом деле намного проще, чем я ожидал.Чтобы создать новое расширение файла, вам просто нужно расширить

org.eclipse.core.contenttype.contentTypes

. Если вы используете PDE, вы можете просто щелкнуть правой кнопкой мыши расширение (как только оно добавлено на вкладке расширений) и выбрать New... -> content-type

Вот код 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>

Здесь вы можете установить свойства этого типа контента, определив уникальный идентификатор, человека-читаемое имя и расширение.Вы также можете дать несколько расширений для этого типа контента.Например, мой язык XYZ может иметь два типа расширений: «.xyz» и «.xyzz».

Описатель содержимого появляется, когда у меня есть одно общее расширение файла: «.xy», но содержимое илиФормат файла может различаться, и поэтому мне нужен редактор, чтобы редактор мог просматривать содержимое файла и распознавать разницу.Это удобно для подсветки синтаксиса, когда мне нужно знать различия.

Поскольку я не очень хорош в объяснении этого, эта ссылка была чрезвычайно полезна для меня.

Но в целом, этот урок - это то, что заставило меня идти в ногу и на самом деле привело меня к пониманию того, как реализовать плагин IDE для Eclipse.Я думаю, что это очень идеальное место для старта, особенно для кого-то нового.

Еще одно место, которое продолжало мою работу, это Eclipse FAQs , но я бы хотел особо отметить раздел 3.5 Реализация поддержки вашего собственного языка , на которую имеется множество ссылок на учебники.

9 голосов
/ 01 октября 2010

Примечание: this (поддержка нового языка, подсветка пользовательского синтаксиса, ...) - это функция, предоставляемая XText .

Xtext- Language Development Framework

С Xtext вы можете легко создавать свои собственные языки программирования и доменные языки (* DSL).
Каркас поддерживает разработку языковых инфраструктур, включая компиляторы и интерпретаторы, а также полноценный Eclipseинтеграция на основе IDE.

XText custom editor example

Поскольку доступны источники , у вас может быть множество подсказок для иллюстрациииспользование пакетов, которые вы сейчас просматриваете.

...