Open Source WEB

Emacs の haskell-mode

Emacs を使って Haskell で書かれたソースコードを閲覧したり,編集したり する場合には,haskell-mode というのを使うのがいいでしょう. haskell-mode を使うと,

  • Haskellのキーワード,シンボル,型,関数を色付け
  • トップレベルの宣言をscanしてメニューに登録
  • 関数の型やキーワードの構文をミニバッファに表示
  • 半自動のオートインデント
  • GHCiセッションと編集との往き来

が簡単にできます.

インストール

最新のもの (Thu Nov 10 06:15:12 JST 2005 時点でバージョン 2.1)をインストールしましょう.

以下の手順は $HOME/lib/elisp にインストールすることを前提にしたものです.

アーカイブの展開
% cp haskell-mode.tar.gz $HOME/lib/elisp/
% cd $HOME/lib/elisp
% tar zxf haskell-mode.tar.gz
% ln -s haskell-mode-2.1 haskell
.emacs の設定

Emacs の設定ファイルに以下の部分を追加します.

(setq load-path (cons "~/lib/elisp/haskell" load-path))
(setq auto-mode-alist
      (append auto-mode-alist
              '(("\\.[hg]s$"  . haskell-mode)
                ("\\.hi$"     . haskell-mode)
                ("\\.l[hg]s$" . literate-haskell-mode))))
(autoload 'haskell-mode "haskell-mode"
   "Major mode for editing Haskell scripts." t)
(autoload 'literate-haskell-mode "haskell-mode"
   "Major mode for editing literate Haskell scripts." t)
(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-indent)
(add-hook 'haskell-mode-hook 'turn-on-haskell-ghci)

(setq haskell-literate-default 'latex)
(setq haskell-doc-idle-delay 0)

haskell-ghci.el の修正

さて,もうひとつ手を入れるところがあります.それは今インストールした $HOME/lib/elisp/haskell/haskell-ghci.el です.haskell-ghci-mode 関数の 定義の中(120行目から122行目)の

  (if haskell-ghci-mode-map
      nil
    (setq haskell-ghci-mode-map (copy-keymap comint-mode-map)))

となっている部分を

  (if nil ;haskell-ghci-mode-map
      nil
    (setq haskell-ghci-mode-map (copy-keymap comint-mode-map)))

としておいてください.


コメントをどうぞ!

Name:
Comment:

There is no comment.


このサイトは、 IPA の「平成15年度オープンソフトウエア活用基盤整備事業」 の委託事業として開発されたKahuaで試験的に運用しております。

Copyright (c) 2004-2007 株式会社タイムインターメディア About Us