понедельник, 21 мая 2012 г.

Заметки об IDE для Haskell

Побродил по интернету и посмотрел, какие бывают IDE для разработки на Haskell. Оказалось, что рабочих решений мало. Кажется, что Emacs'у и VIM'у в этой области альтернатив нет.

Что умеет Emacs?

Emacs (с установленным haskell-mode) умеет:
  • Emacs подсвечивает синтаксис;
  • Emacs умеет запускать интерпретатор в отдельном буфере (С-с С-l);
Буфер с запущенным процессом GHCI

  • Emacs умеет работать с тегами (etags). Таблицу тегов (TAGS) можно построить при помощи hasktags. Теги позволяют релизовать кое-какой автокомплит.
Автодополнение по таблице тегов
  • Emacs умеет выдавать справку по символам (C-c C-i).
Просмотр сигнатуры символа fst
Для удобства Emacs был немного допилен:
  • таблица тегов перестраивается при помощи правила в Makefile'
  • tags::
        hasktags -e `find . -type f -name "*.hs"`
  • для удобного использования hlint написана функция:
(defun hlint-recursive ()
  "Run hlint."

  (interactive)
  (let* ((file (buffer-file-name (current-buffer)))
(command (concat "~/Library/Haskell/bin/hlint $(find . -name \"*.hs\")")))
(save-some-buffers (not compilation-ask-about-save) nil) ; save  files.
(compile-internal command "No more errors or warnings" "hlint-recursive"
  nil hlint-regexp-alist)))


hlint-recursive бегает по файлам проекта и ищет известные ей баги. Результат выдается в отдельном буфере с возможностью прыгнуть прямо к строчке с багом.

А если не Emacs?

EclipseFP - поддержка Haskell в Eclipse. Проект довольно большой, у меня установился, но работать отказался.

Есть также IDE, написанная на Haskell. Называется Leksah. По-моему, для разработки применять Leksah нельзя. В Leksah есть навигация по символам, так что программу можно использовать, если нужно разбораться в чужом проекте. Общий вердикт - очень сырая и весьма неудобная.

Комментариев нет:

Отправить комментарий