16.2.09

Emacs + Haskell + Pretty lambda

А знаете ли вы, что если в хуке для haskell-mode выставить переменную haskell-font-lock-symbols в t, то ваш исходник будет выглядеть примерно вот так:
haskell-pretty-font-lock
P.S. в стандартную поставку входят не все символы, изображенные тут. Но патчик автору haskell-mode уже отправлен...

13 комментариев:

Qrilka комментирует...

Сильно

lysevi комментирует...

Мощно

Сергей комментирует...

Красиво! Имакс бы я выучил только за то…

Возникло, однако, подозрение, что вместо «∘» (U+2218, математический оператор) для композиции функций используется «°» (U+00B0, знак градуса). Слишком высоко стоит.

Alex Ott комментирует...

2Сергей: только проверил - используется U+8278, надо наверное подумать - будет ли 2218 выглядеть нормально?

Alex Ott комментирует...

2Сергей: да вроде у меня на линуксе они одинаково выглядят. надо конечно проверить и на маке, но это вечером

Сергей комментирует...

U+8278? Я, может, что-то не понимаю, или мы запутались в кодировках и системах счисления, но мой gucharmap говорит, что U+8278 — это «CJK UNIFIED IDEOGRAPH grass», 艸. И http://unicode.org/charts/ тоже.

Я за то, чтобы использовать символ U+2218, потому что это точно математический оператор (см. http://unicode.org/Public/UNIDATA/Blocks.txt).

PS. У меня «∘» и «°» выглядят по-разному (DejaVu Sans, Liberation Sans).

Alex Ott комментирует...

8278 - это в UCS-2, но судя по всему это как раз тот символ, что вы предложили

Just Lest комментирует...

Использую Emacs 23 под Mac OS, шрифт не настраивал, используется по-умолчанию (вроде бы Monaco)

Почему то для символов используется другой шрифт http://screencast.com/t/NWNiYTdkZDUt

В чем может быть проблема?

Alex Ott комментирует...

у меня для 23-го емакса на маке вот такая настройка:

(when (string-match "23\\." (emacs-version))
(set-fontset-font "fontset-default" '(#x0000 . #xFFFFF) '("Apple Monaco" . "unicode-bmp"))
(setq ns-command-modifier 'meta
ns-alternate-modifier 'super)
(setq-default cursor-type 'box)
(setq ns-antialias-text t))
(setq mac-allow-anti-aliasing t)

donderom комментирует...

Люди добрые с наметанным глазом, в чем же проблема при добавлении этого хука?...
#[nil "\300C\207"
[t]
2]

File mode specification error: (void-function haskell-font-lock-symbols)

Alex Ott комментирует...

функция такая не подгружена, например...

Alex Ott комментирует...

тьфу. это же переменная, а не хук - use setq! вот мой конфиг

donderom комментирует...

А ведь точно, спасибо!