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

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

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

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

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

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

Ответы

Ответ 1

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

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

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

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>

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

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

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

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

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

Ответ 2

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

Xtext - Framework для развития языка

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

XText custom editor example

Поскольку доступны источники