Yet Another HAskell Mode for GNU Emacs
Emacs Lisp
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ORIGINAL_VERSION
README
changelog
copyright
yaham-autoloads.el
yaham-ghc.el
yaham-hugs.el
yaham-proc.el
yaham-skel.el
yaham-tab.el
yaham.el

README

This is Yaham, Yet Another HAskell Mode for GNU Emacs.

It has a different focus than the Moss haskell-mode that's normally used
nowadays.  Yaham strives, first and foremost, to integrate well with the
rest of Emacs and respect the Emacs ecosystem.  This is because I still
use languages different from Haskell --- python, shell, Makefiles, even
C ...) and see no end to this predicament.

To my knowledge, Yaham completely and correctly handles all of Haskell's
unusual lexical syntax - both line and nested comments, overloading of
single quote and backslash, strings including gaps.  There should be no
runaway string or comment highlighting or broken cursor movement across
these elements.  If you find a broken case, please report it on Github
including the relevant piece of Haskell.

Things that are still missing but are high priority to add:
* texinfo documentation (for now, please explore the menus and keybindings)

Things that are very low priority (i.e. probably won't be added):
* Bird style literate source handling
* XEmacs compatibility kludges

To use or try it, 

* download http://primate.net/~itz/packages/yaham_*.git
* unpack
* read the LICENSE (yes, please do)
* copy *.el files to your local Elisp directory
* optionally, byte-compile
* add the following to your Emacs initialization

(load-library "yaham-autoloads")

(add-to-list 'auto-mode-alist '("\\.hs\\'" . yaham-mode))

;; or if you have Hugs, you can do this:
;; (add-to-list 'auto-mode-alist '("\\.hs\\'" . yaham-hugs-mode))
;; or if you have Ghc, you can do this:
;; (add-to-list 'auto-mode-alist '("\\.hs\\'" . yaham-ghc-mode))

Alternatively, if you're on a Debian or Ubuntu system, download the
yaham_*.dsc file from the same location, and then do the following
usual steps for building and installing a Debian package:

dpkg-source -x yaham_*.dsc
( cd yaham-* ; sudo make -f debian/rules binary )
sudo dpkg --install yaham_*.deb

Please post problem reports and patches via Github.
Peace, Ian.