[*** empty log message *** monnier**20060528041124 Ignore-this: bfa74f9abed0ee8e5ba9f55238491e7a ] addfile ./README hunk ./README 1 +Haskell Mode for Emacs: Installation Guide +------------------------------------------ + +When Emacs is started up, it normally runs a file called ~/.emacs located in +your home directory. This file should contain all of your personal +customisations written as a series of Elisp commands. In order to install +the Haskell mode, you have to tell Emacs where to find it. This is done by +adding some commands to the init file. + +Installation +------------ + +- If you are using XEmacs, the haskell-mode package should be available for + installation through the XEmacs package UI. + +- If you are using Debian, you can install the package haskell-mode with + a command like "apt-get install haskell-mode". + +Otherwise: + +- Download and unpack the basic mode and modules into a suitable directory, + e.g. ~/lib/emacs/haskell-mode/ where ~ stands for your home directory. + +- Assuming you have placed the basic mode haskell-mode.el and the modules + you want to use in the directory ~/lib/emacs/haskell-mode/, add the + following command to your init file (~/.emacs): + + (load "~/lib/emacs/haskell-mode/haskell-site-file") + + adding the following lines according to which modules you want to use: + + (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-simple-indent) + + Note that the two indentation modules are mutually exclusive - add at + most one. Note that the line of code for simple indentation is commented + out (using a preceeding ;) in preference for the more advanced + indentation module. Installation is now complete! + +The other modules are automatically loaded when needed in the following way: + +- Font locking: just turn it on via `global-font-lock-mode' or do + (add-hook 'haskell-mode-hook 'font-lock-mode) + +- Declaration scanning: just use M-x imenu or bind `imenu' to a key. E.g. + (global-set-key [(control meta down-mouse-3)] 'imenu) or you can also add + it to the menubar with (add-hook 'haskell-mode-hook 'imenu-add-menubar-index) + +- Interaction with inferior Haskell interpreter: just hit C-c C-z or C-c C-l. + + +Customisation +------------- + +Most customisations are on the functionality of a particular module. +See the documentation of that module for information on its +customisation. + + +Known problems +-------------- + +It seems that some version of XEmacs come without the fsf-compat package +(which provides functions such as `line-end-position') and it seems that +even if your XEmacs does have the fsf-compat package installed it may fail +to autoload it properly. Thus you may have to add (require 'fsf-compat) +in your .emacs. + + +Support +------- + +Any problems, do mail me and I will try my best +to help you! + + + + + + hunk ./installation-guide.html 1 - - -Haskell Mode for Emacs: Installation Guide - - - -

Haskell Mode for Emacs: Installation Guide

- -

When Emacs is started up, it normally runs a file - called ~/.emacs located in your home directory. This file - should contain all of your personal customisations written as a series of - Elisp commands. In order to install the Haskell mode, you have to tell - Emacs where to find it. This is done by adding some commands to the init - file.

- -

Installation

- - - -

Otherwise:

- - - -

For those interested, each command above shall now be explained.

- -
    -
  1. We must ensure that the directory - containing haskell-mode.el is on - the load-path of Emacs. You can examine the value of - the load-path by typing C-h v load-path in - an Emacs session. Supposing that you've - placed haskell-mode.el in the - directory ~/lib/emacs, if this directory is not on - the load-path we add it with:

    - -
    (setq load-path (cons "~/lib/emacs" load-path))
    - -

    The function setq sets the value of a variable, and the - function cons takes an element and a list and creates - a new list with the former as head and the latter as tail, as in - Haskell.

    - -
  2. It is possible (and desirable) for Emacs to enter a specific mode - according to the name of the file being edited/visited. - The variable auto-mode-alist tells Emacs what mode to run - according to which regular expression matches the filename. We wish - to run the Haskell mode on all files ending - in .hs, .hi (interface file) - and .gs (Gofer file), and to run the Haskell mode for - literate scripts on all files ending in .lhs - and .lgs. To do this, we need to add pairs of the - form (regexp . mode-function). We use - the function append to append a list of three such pairs - to the end of the value of auto-mode-alist. A list in - Elisp is written within round parantheses with elements separated by - whitespace. A list is treated as a function application unless it is - quoted with ', which is what we do.

    - -
  3. In order for Emacs to know where to find the definition of our mode - functions, haskell-mode - and literate-haskell-mode, we must use the - function autoload. Both mode functions can be found in - the file haskell-mode.el which was downloaded in the - first installation step (the .el extension is left off - and assumed by Emacs). As we have already ensured that this file is - on the load-path we need only give the filename and not - the directory. Its use is quite straightforward but for further - information, see its documentation by entering C-h - f autoload in an Emacs session.

    - -
  4. Each function turn-on-haskell-module turns on - the corresponding module. Adding such a function as a hook to the - Haskell mode will turn on that module when the mode is used. - Note that each of these modules may slow down Emacs, especially for - large files.

    - -
- -

Customisation

- -

Most customisations are on the functionality of a particular module. - See the documentation of that module for information on its - customisation.

- -

Support

- -

Any problems, do mail and we - will try our best to help you!

- -

Haskell Mode Home Page.

- - rmfile ./installation-guide.html