deniok: (Default)
deniok ([personal profile] deniok) wrote2012-11-26 03:27 pm
Entry tags:

Agda, вопрос о подсветке синтаксиса

open import Data.Nat

data Fin : Set where
  fzero : {n : } → Fin (suc n)
  fsuc  : {n : } → Fin n → Fin (suc n)

magic₁ : {A : Set} → Fin zero → A
magic₁ ()

magic₂ : {A : Set} → Fin zero → A
magic₂ n = _
Для того, чтобы правильно сделать коду на Агде грамотную синтаксическую раскраску, требуется не просто полноценно его распарсить, но ещё и повычислять изрядно по ходу дела. То есть ждать приличных внешних тулзов нечего, хочешь цветной Агды - сиди в emacs и не жужжи.

Между тем, хотелось бы (из педагогических, к примеру, соображений) иметь хорошо раскрашенный агдо-код для вставки куда угодно, и не в виде картинки. Отсюда вопрос - нельзя ли вытащить информацию о раскраске из emacs'а?

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

UPD1. Как нам сообщают умные люди в комментах можно:
(1) использовать саму Агду, она умеет генерировать правильно размеченный html:
agda --html --html-dir=<куда выводить> <корневой модуль>
(2) в emacs можно использовать htmlize (или htmlfontify, но у первого, вроде, настройки побогаче).

UPD2. Поправил цвета на в точности стандартные, а то некоторые ругаются.

[identity profile] nivanych.livejournal.com 2012-11-26 12:58 pm (UTC)(link)
Я так понял, что не требуется написать свою программу раскраски.
Если так, то агдочка сама умеет 'компилировать' в HTML, примеры результатов такой генерации можно посмотреть, например, на
http://www.cse.chalmers.se/~nad//listings/lib/README.html

[identity profile] deni-ok.livejournal.com 2012-11-26 01:04 pm (UTC)(link)
Да, спвсибо, меня уже awson выше научил.

[identity profile] nivanych.livejournal.com 2012-11-26 01:08 pm (UTC)(link)
Когда я писал, того сообщения ещё не видел ;-)