Плагин Eclipse: создайте новое расширение файла для языка, не поддерживаемого Eclipse

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

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

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

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

Пакет, который я ищу для типов контента:org.eclipse.core.contenttype.contentTypes.

 Peter Perháč01 окт. 2010 г., 13:12
удачи в ваших попытках :-)
 dty01 окт. 2010 г., 13:28
Разобраться в этом как о пользователе Eclipse достаточно сложно, поэтому я тоже желаю вам удачи в попытке понять это как автора плагина!
 nbz01 окт. 2010 г., 13:34
Спасибо, но вряд ли я бы назвал себя автором плагинов ... Все еще учусь!

Ответы на вопрос(2)

это (поддержка нового языка, подсветка пользовательского синтаксиса, ...) - это особенность, предоставляемаяXText.

Xtext - Фреймворк для развития языка

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

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

 nbz01 окт. 2010 г., 14:13
Да, понял! Спасибо, я посмотрю на это. Определенно хорошее направление для начала.
 VonC10 февр. 2011 г., 17:43
@nEm: отлично, спасибо за отзыв, я проголосовал за ваш ответ;)
 nbz10 февр. 2011 г., 17:16
VonC: я просматривал XText, но это было не то, что я искал. Хотя я помнил об этом, потому что это кажется очень полезным.
 nbz01 окт. 2010 г., 14:05
И это применимо, даже если компилятор и интерпретатор уже написаны, и мне нужно только создать IDE (GUI для программистов на языке xyz, если быть точным), который затем подключается к компилятору и интерпретатору?
 VonC01 окт. 2010 г., 14:08
@nEm: Я не уверен: XText основывает все свои сгенерированные классы на грамматике вашего языка, поэтому я не знаю, можете ли вы переключить их для своих собственных классов. Но я хотел сказать следующее: с точки зрения редактора и подсветки синтаксиса, у вас есть много практических примеров реализации в этом плагине XText. Поэтому, даже если вы не используете его напрямую, вы можете по крайней мере извлечь из него некоторые идеи.
Решение Вопроса

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

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

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

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 но я хотел бы особо указать нараздел 3.5 Реализация поддержки вашего языка который имеет много учебных ссылок.

 tgharold01 апр. 2013 г., 19:34
Что такое "PDE"? Вы ссылаетесь на это дважды, но не объясняете, что это означает.
 nbz03 апр. 2013 г., 17:56
Среда разработки плагинов

Ваш ответ на вопрос