суббота, 20 ноября 2010 г.

haskell + emacs

Сперва ставим emacs-haskell-mode. В .emacs пишем:


(add-to-list 'load-path "~/.elisp/packages/haskell-mode/")
(load "~/.elisp/packages/haskell-mode/haskell-site-file.el")

(add-hook 'haskell-mode-hook 'turn-on-haskell-decl-scan)
(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
(add-hook 'haskell-mode-hook 'haskell-font-lock-symbols t)
(set 'haskell-font-lock-symbols t)
(put 'downcase-region 'disabled nil)

установка haskell-font-lock-symbols в t даст нам замену символов -> на стрелочку, а \ на символ лямбды.

Данный пакет даст нам подсветку, показ строчки с информацией о символе под курсором, выполнение буфера по C-c C-l и много чего еще.

Далее ставим ghc-mod с помощью команды cabal install ghc-mod. В следствии чего, в директории ~/.cabal/bin появится исполняемый файл ghc-mod (либо добавим этот путь в PATH либо скопируем файлы в одну из дирукторий */bin). Файлы из ~/.cabal/share/ghc-mod-x.y.z/ скопируем туда, где их найдет emacs (у меня это ~/.elisp/packages/ghc-mod). Выполняем в директории куда скопировали команду make. Добавляем в .emacs следующее:


(autoload 'ghc-init "ghc" nil t)
(add-hook 'haskell-mode-hook (lambda () (ghc-init) (flymake-mode)))

Полный список доступных сочетаний здесь



3 комментария:

  1. Сергей, а вы не сталкивались с такой проблемой во время установки ghc-mod. Делаю все как вы писали а в результате в emacs пишет :
    ghc-mod not found
    File mode specification error: (wrong-type-argument listp "ghc-mod not found")
    ghc-mod not found

    ОтветитьУдалить
  2. Сталкивался. файл ghc-mod нужно поместить в дирректорию, где его сможет найти emacs. Например /usr/bin

    ОтветитьУдалить
  3. Спасибо огромное.

    ОтветитьУдалить