因為Haskell畢竟只在小範圍內流傳,所以並沒有很好的IDE支援,不過,值得欣慰的是,只要對Emacs做少量設定,即可使Emacs成為一個強大的Haskell IDE,呵,因為Emacs本身就是一個可自訂的lisp編譯器,所以其可擴充性是無可比擬的。
Emacs Haskell Mode外掛程式和Emacs Folding Mode外掛程式可以在EmacsWiki找到
首先必須要做的是修改folding.el,在其中添加haskell原始碼中的folding標誌
--在folding.el檔案的marks-list中添加下列行<br />(folding-add-to-marks-list 'haskell-mode "-- {{{" "-- }}}" nil t)
接著設定~/.emacs檔案,進行Emacs的配置:
;;{{{ Haskell Programming Style<br />;;Interaction with inferior Haskell interpreter: just hit C-c C-z or C-c C-l<br />;; 開啟文檔模式<br />(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)<br />;; 開啟半自動對齊功能(tab可以得到一些對齊暗示)<br />(add-hook 'haskell-mode-hook 'turn-on-haskell-indent)<br />;; 開啟文法高亮<br />(add-hook 'haskell-mode-hook 'font-lock-mode)<br />;; 添加功能表項目<br />(add-hook 'haskell-mode-hook 'imenu-add-menubar-index)<br />;; 開啟folding模式,一定要按照之前步驟添加haskell 模式下的folding mark<br />(add-hook 'haskell-mode-hook 'folding-mode)<br />;; 開啟outline-minor-mode的函數摺疊功能<br />;; Emacs內建的outline mode,沒有提供haskell支援<br />(add-hook 'haskell-mode-hook 'outline-minor-mode)<br />;; 所以這裡自訂了一個摺疊頭標記,<br />;; haskell支援函數嵌套定義,所以這裡我只能給出一個簡單方案<br />;; 對最外層函數的簽名式設定摺疊標記<br />(defun my-haskell-mode-hook()<br /> (make-local-variable 'outline-regexp)<br /> (setq outline-regexp "^//w+[^/n/r]*::[^/n/r]*"))<br />(add-hook 'haskell-mode-hook 'my-haskell-mode-hook)<br />;;}}} Haskell Style End<br />
以下是一些參考資源:
一、Emacs的基本配置,我個人非常推薦:Sams teach you Emacs in 24 hours這本書,該書的html版本可以從王垠的個人網站下到。該書,還有王垠的網站,對我個人學習Emacs起到了相當大的作用。網站地址http://docs.huihoo.com/homepage/shredderyin/index.html 。
二、推薦幾個免費新聞群組伺服器,可以使用nntp方式使用Emacs的gnus外掛程式進行飛速篩選、瀏覽和討論,這海選速度不是一般網頁瀏覽能相比擬的
Gnus的使用、設定請參考上面那本書和EmacsWiki
高通量地閱讀、回複、參與討論
三、推薦Firefox的KeySnail外掛程式,可以使firefox的鍵位,類比emacs。寫網頁的時候很方便