Самый простой способ сделать это — определить новую ассоциацию. Чтобы сделать это в своем проекте, откройте Project Properties
-> C/C++ General
-> File Types
, затем выберите Use Project Settings
и определите новое расширение:
Вы также можете определить это на уровне рабочей области, Window
-> Preferences
-> C/C++
-> File Types
Это должно дать вам большую часть того, что вы хотите. Например (на самом деле я не знаю Тома), у меня есть простой проект с 1 файлом C, 1 файлом H и 1 файлом T. Все функции, которые вы хотите и ожидаете, просто работают:
Если вы хотите больше
Если вы хотите большего, это можно сделать, но не без написания собственного подключаемого модуля Eclipse, который немного разбирается в *.t
файлах. К счастью, для этого требуется всего несколько строк XML. К концу этого вы должны получить в основном ту же функциональность, что и выше, но у вас есть отправная точка для вашего собственного плагина TOM.
Что вам нужно сделать, так это определить тип содержимого, расширив org.eclipse.core.contenttype.contentTypes
точка расширения (есть также некоторые старые документы, которые пробовал)
В вашем plugin.xml
это будет выглядеть примерно так:
<extension point="org.eclipse.core.contenttype.contentTypes">
<!-- declares a content type for TOM source files -->
<content-type id="tSource" name="TOM File"
base-type="org.eclipse.core.runtime.text"
file-extensions="t"
priority="high"/>
</extension>
Вы можете подумать о том, чтобы сделать base-type
чем-то другим, кроме простого текста, например. вы могли бы сделать это org.eclipse.cdt.core.cSource
.
Затем вам нужно определить новый язык, который для наших целей называется TOM Language. Вы делаете это с помощью org.eclipse.cdt.core.language
точка расширения.
Пример того, как это может выглядеть:
<extension
point="org.eclipse.cdt.core.language">
<language
class="org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage"
id="com.kichwacoders.tom.core.tomlanguage"
name="TOM Language">
<contentType
id="com.kichwacoders.tom.core.tSource"></contentType>
</language>
</extension>
Класс GCCLanguage
является стандартным классом GCC. Конечно, если вы хотите еще больше улучшить поддержку, добавление или настройка синтаксического анализатора является опцией (чтобы удалить эти синтаксические ошибки о томах), вы можете расширить GCCLanguage или один из других классов в иерархии.
После того, как вы все это сделаете и добавите новый подключаемый модуль в установку Eclipse, у вас появится поддержка файла TOM.
Если вы дочитали до конца, возможно, вам будет полезно просто разветвить https://github.com/jonahkichwacoders/com.kichwacoders.tom.core, который содержит весь приведенный выше код?
person
Jonah Graham
schedule
04.11.2015