Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Emacs mode for Haskell
Emacs Lisp Makefile

Merge pull request #840 from gracjan/pr-anim-import-statement-complete

Add anim showing import statement completion
latest commit 532890f470
@gracjan gracjan authored
Failed to load latest commit information.
doc Add anim showing import statement completion
images Add png versions of haskell-mode.svg.
tests better tests for ‘haskell-indentation-mode’
.gitignore Add support for embedding git version in texinfo manual
.travis.yml Use texinfo build from ppa
CONTRIBUTING.md Add CONTRIBUTING.md file
COPYING Add GNU GPL text file
Makefile Add anim directory to documentation
NEWS Write NEWS for 13.12 release.
README.md added some help about cl-lib for emacs23
ghc-core.el globally: turn on lexical bindings
ghci-script-mode.el globally: turn on lexical bindings
haskell-align-imports.el globally: turn on lexical bindings
haskell-bot.el globally: turn on lexical bindings
haskell-cabal.el Merge pull request #828 from vlatkoB/master
haskell-checkers.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-collapse.el globally: turn on lexical bindings
haskell-commands.el Merge pull request #828 from vlatkoB/master
haskell-compat.el globally: turn on lexical bindings
haskell-compile.el globally: turn on lexical bindings
haskell-complete-module.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-completions.el disable dabbrev, see #741
haskell-customize.el globally: turn on lexical bindings
haskell-debug.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-decl-scan.el Fix decl-scan, fixes #832
haskell-doc.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-font-lock.el globally: turn on lexical bindings
haskell-indent.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-indentation.el Fixed `haskell-indentation-newline-and-indent`
haskell-interactive-mode.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-lexeme.el globally: turn on lexical bindings
haskell-load.el globally: turn on lexical bindings
haskell-menu.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-mode-pkg.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-mode.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-modules.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-move-nested.el globally: turn on lexical bindings
haskell-navigate-imports.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-package.el globally: turn on lexical bindings
haskell-presentation-mode.el globally: turn on lexical bindings
haskell-process.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-repl.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-sandbox.el globally: turn on lexical bindings
haskell-session.el globally: turn on lexical bindings
haskell-simple-indent.el globally: eliminate or mark unused bindings; convert one to dynamic
haskell-sort-imports.el globally: turn on lexical bindings
haskell-string.el globally: turn on lexical bindings
haskell-unicode-input-method.el globally: turn on lexical bindings
haskell-utils.el globally: turn on lexical bindings
haskell.el globally: eliminate or mark unused bindings; convert one to dynamic
highlight-uses-mode.el globally: turn on lexical bindings
inf-haskell.el globally: eliminate or mark unused bindings; convert one to dynamic
logo.svg Use notifications.el rather than notify.el (as it ships with Emacs)
w3m-haddock.el globally: eliminate or mark unused bindings; convert one to dynamic

README.md

Haskell Mode Logo

Haskell Mode for Emacs

This is an Emacs mode for editing, debugging and developing Haskell programs.

Build Status Melpa Status Melpa Stable Status

Installation

haskell-mode is best installed as a package.

To install haskell-mode you need to add a package archive repository that distributes haskell-mode. Execute

M-x customize-option RET package-archives

and add

Archive name: melpa-stable
URL or directory name: http://stable.melpa.org/packages/

Fetch list of packages with

M-x package-refresh-contents

and then follow by

M-x package-install RET haskell-mode

Voila! haskell-mode is installed! You should be able to edit Haskell source code in color now.

You need to enable indentation as this does not happen automatically currently. Add this line to your ~/.emacs file:

(add-hook 'haskell-mode-hook 'haskell-indentation-mode)

Haskell-mode has much much much more to offer but the above should get you going!

Advanced configuration

For setup instructions, please consult the 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 the online haskell-mode manual for setup and user guide.

Installation - more information

haskell-mode supports GNU Emacs versions 23, 24 and upcoming 25 (snapshot).

haskell-mode is available from melpa-stable (releases) and melpa (git snapshots).

Other means of obtaining haskell-mode include el-get, Emacs Prelude and Debian package.

Emacs23 requires an the use of "cl-lib". cl-lib.el can be found in the tests/compat directory. Copy cl-lib.el to your emacs directory, e.g. ~/.emacs.d directory and put

(add-to-list 'load-path "~/.emacs.d/")
(require 'cl-lib)

in your .emacs file.

Installation from git repository

Running haskell-mode directly from sources is easy but requires a little preparation:

  • 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 to generate various files, the autoloads file (haskell-mode-autoloads.el) is one among them. Invoke:

make EMACS=/path/to/your/emacs

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/")

Contributing

If you followed the above you are just a couple of steps away from contributing to haskell-mode.

haskell-mode is activelly seeking contributions from users of haskell-mode. For more information have a look at the wiki page on contributing.

Getting in contact

Have fun!

Something went wrong with that request. Please try again.