This is the Haskell mode package for Emacs. Its use should be mostly self-explanatory if you're accustomed to Emacs.
When Emacs is started up, it normally loads the
Emacs initialization file
usually called ~/.emacs
, ~/.emacs.el
, or ~/.emacs.d/init.el
;
with ~
standing for for your home directory. This file should
contain all of your personal customisations written as a series of
Emacs Lisp commands. In the following sections, this file will simply
be referred to as the .emacs
file.
GNU Emacs version 23 or later is officially supported. It may work with other Emacsen, but we don't have the resources to support other versions.
There are many ways to install haskell-mode
. The following sections
describe the most common ones; pick the one that you're most
comfortable with.
This is the recommended way
package.el
is the new
built-in package manager
included in Emacs 24.x. On Emacs 23.x you will need to download
package.el
yourself and place package.el
somewhere in your
load-path
.
Stable releases of haskell-mode
are available on
Marmalade.
If you're not already using Marmalade, add the following snippet to
your .emacs
and evaluate it with M-x eval-buffer
:
(require 'package)
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)
Refresh the package index by M-x package-refresh-contents
and install
haskell-mode
via M-x package-install [RET] haskell-mode
.
Alternatively, you can also download the .tar
file via the
Download link at http://marmalade-repo.org/packages/haskell-mode and
install the package .tar
-file via M-x package-install-file
Unstable snapshots can be installed via the MELPA community maintained repository.
For MELPA the code you need to add is:
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
Refresh the package index by M-x package-refresh-contents
and install
haskell-mode
via M-x package-install [RET] haskell-mode
.
el-get is another popular package manager for Emacs.
If you're an el-get user just do M-x el-get-install
to get haskell-mode
installed.
haskell-mode
is bundled with
Emacs Prelude. If you're a
Prelude user you can start using it right away.
If you are using Debian, you can install an older version (e.g. Wheezy
ships with version 2.8.0) of haskell-mode
with a command like:
$ apt-get install haskell-mode
This installation method requires more work and recommended for haskell-mode developers/contributors only as it allows to load haskell-mode directly from the checked out Git working copy. If you just want to use bleeding edge versions of haskell-mode please use the MELPA installation method described above.
-
git clone https://github.com/haskell/haskell-mode.git
into a suitable directory, e.g.~/lib/emacs/haskell-mode/
where~
stands for your home directory. -
Assuming you have unpacked the various haskell-mode modules (
haskell-mode.el
and the rest) in the directory~/lib/emacs/haskell-mode/
, you need generate the autoloads file (haskell-mode-autoloads.el
) by either-
Invoking
make haskell-mode-autoloads.el
, ormake all
(use this to perform byte-compilation and Info manual generation) -
From inside Emacs,
M-x update-directory-autoloads
and answering the question for the folder with~/lib/emacs/haskell-mode/
and the question for the output-file with~/lib/emacs/haskell-mode/haskell-mode-autoloads.el
and then adding the following command to your
.emacs
:(add-to-list 'load-path "~/lib/emacs/haskell-mode/") (require 'haskell-mode-autoloads) (add-to-list 'Info-default-directory-list "~/lib/emacs/haskell-mode/")
-
-
After updating your haskell-mode working directory, you need to re-run
make all
orM-x update-directory-autoloads
.
For setup instructions, please consult the new integrated haskell-mode
Info
manual which can be accessed after installation via
M-x info-display-manual [RET] haskell-mode
.
Alternatively, you can also direct your browser to the
latest online HTML version.
For submitting pull requests, please see the wiki page on contributing. You don't have to follow this guide, but please make sure your pull requests are at least properly rebased and up to date.