Подсветка синтаксиса для примера языка программирования - PullRequest
2 голосов
/ 28 апреля 2011

Я работаю над продуктом, который имеет собственный SQL-подобный язык для запросов к базе данных.Мы называем это Язык отчетности .Теперь я хочу иметь текстовый редактор, который выделяет специфичные для моего языка. То есть я могу указать ключевые слова (фиолетовый цвет), типы данных (красный цвет), комментарии зеленого цвета и все остальное черным цветом и так далее.

Существует ли существующий инструмент, который я могу дать этим спецификациям в качестве входных и выходных данных, - это текстовый редактор, который выделяет эти языки.

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

Ответы [ 2 ]

3 голосов
/ 28 апреля 2011

Emacs - самый настраиваемый и расширяемый редактор в мире.

Можно определить «режимы» для emacs, которые поддерживают редактирование документов, соответствующих определенному формату.Например, существуют существующие "режимы" emacs для

  • C / C ++
  • Java
  • C #
  • VB.NET
  • perl
  • Powershell
  • SQL
  • .htaccess
  • html
  • css
  • javascript
  • xml
  • и многие другие

«Режимы» могут быть простыми средствами, такими как подсветка синтаксиса (или, как ее называет emacs, fontification ).Большинство режимов, тем не менее, предоставляют другие функции, такие как автозаполнение, проверка синтаксиса, вставка шаблонов и помощники по компиляции.Вы определяете режим emacs в elisp, который является вариантом LISP.

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

Также см. Пример 'Hello World' для основного режимав Emacs?

Emacs бесплатен и имеет открытый исходный код и работает на любой платформе.

1 голос
/ 28 апреля 2011

Подсветка синтаксиса - лишь малая часть написания текстового редактора.У вас будет гораздо больше проблем с написанием обычного текстового редактора, чем с подсветкой синтаксиса.«Генератор редактора с подсветкой синтаксиса» - слишком узкое приложение, чтобы иметь для него инструмент, насколько я могу судить.

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

Если вы просто хотите отобразить свой язык с подсветкой синтаксиса, используйте pygments , которые вы можете встроить в (python) приложения (например, https://gist.github.com/773300) или SyntaxHighlighter для веб-презентации.

...