Есть ли способ добавить очень простую подсветку кода к затмению, просто предоставив список различных ключевых слов, блокировку запуска и т. Д.? - PullRequest
2 голосов
/ 30 июля 2011

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

В большинстве редакторов (vim, emacs или notpad ++) я могу сделать это сравнительно простым, более или менее предоставив список ключевых слов с некоторыми простыми директивами.Однако все, на что я смотрел в eclipse, нуждается в реальном разборе antlr-грамматики или прямом переводе из компиляторов.

Это, безусловно, мощная, но слишком большая работа для языка, который я хотел бы поддержать, потому что, как сказал языкнаходится в развитии изменений (и не так часто используется).Таким образом, работа над полным IDE-редактором в Eclipse не окупается.

Поэтому мой вопрос: как проще всего добавить синтаксис для ключевых слов в редакторе Eclipse?

Спасибо

Ответы [ 2 ]

2 голосов
/ 30 июля 2011

Если вы хотите написать свой собственный плагин, Eclipse имеет пример проекта плагина под названием Плагин с редактором , который содержит простую, жестко выделенную синтаксическую подсветку. Вы можете адаптировать это, чтобы прочитать список ключевых слов из файла. Экспортированные баночки плагинов можно поместить в каталог IDE dropin .

Для создания образца:

  • Файл > Новый > Проект ...
  • Разработка плагинов> Проект плагина> Далее
  • Введите название проекта
  • На странице мастера Шаблоны выберите «Плагин с редактором»
  • Выберите новое расширение файла для вашего языка, прежде чем выбрать готово

Вам потребуется отредактировать XMLPartitionScanner.java, чтобы указать собственные правила синтаксиса.

public XMLPartitionScanner() {  
  IToken xmlComment = new Token(XML_COMMENT);
  IToken tag = new Token(XML_TAG);

  IPredicateRule[] rules = new IPredicateRule[2];

  rules[0] = new MultiLineRule("<!--", "-->", xmlComment);
  rules[1] = new TagRule(tag);

  setPredicateRules(rules);
}

См. IPredicateRule реализации.

0 голосов
/ 30 июля 2011

Вы можете попробовать xtext - плагин eclipse для создания языков DSL.Но это было бы не так просто, как список ключевых слов.

...