[Partial fixup. monnier**20041126000052 Ignore-this: daea8c115b1fcf62c4b2c79bc1d250f ] hunk ./index.html 1 -
+ hunk ./index.html 3 -The Haskell mode itself is very basic, but provides a base on which to -build modules. The currently supported modules are:
+The Haskell mode itself is very basic, but provides a base on which to + build modules. The currently supported modules are:
hunk ./index.html 12 -The latest versions of the basic mode + and the above modules.
hunk ./index.html 44 -The latest versions of the basic -mode and the above modules.
+The basic mode was written by Graeme E Moss, Tommy Thorn and Simon + Marlow. Modules with their own links above are maintained by their + authors; the rest are looking for a maintainer (please + volunteer!). These modules support Haskell 98, except where stated, and + have been tested on GNU Emacs versions 19.34 and 20.7, and XEmacs versions + 21.1.14 and 21.4.x. Please mail bugs and suggestions to the maintainer of + the appropriate module. General comments can be mailed + to Stefan + Monnier. When mailing, quote the version of the module or mode you + are using, the version of Emacs you are using, and a small example of the + problem or suggestion. Please check the list of known problems (towards + the start of each relevant file) before doing so.
hunk ./index.html 57 -The basic mode was written by Graeme E Moss, Tommy Thorn and Simon -Marlow. Modules with their own links above are maintained by their -authors; the rest are looking for a maintainer (please volunteer!). These -modules support Haskell 98, except where stated, and have been tested on -GNU Emacs versions 19.34 and 20.7, and XEmacs versions 21.1.14 and 21.4.x. -Please mail bugs and suggestions to the maintainer of the appropriate -module. General comments can be mailed to Simon Marlow. When mailing, quote -the version of the module or mode you are using, the version of Emacs you -are using, and a small example of the problem or suggestion. Please check -the list of known problems (towards the start of each relevant file) -before doing so.
+A guide on how to install +and customise the mode.
hunk ./index.html 60 -A guide on how to install -and customise the mode.
+To test the mode:
hunk ./index.html 62 -To test the mode:
+When Emacs is started up, it normally runs an 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.
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.
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:
+Otherwise:
hunk ./installation-guide.html 28 -Download the and unpack the basic mode and modules into a
-suitable directory, e.g. ~/lib/emacs
where ~
-stands for your home directory.
~/lib/emacs
where ~
stands for
+ your home directory.
hunk ./installation-guide.html 33
-Assuming you have placed the basic mode
-haskell-mode.el
and the modules you want to use in the
-directory ~/lib/emacs
, add the following commands to your
-init file (~/.emacs
):
Assuming you have placed the basic
+ mode haskell-mode.el
and the modules you want to use in
+ the directory ~/lib/emacs
, add the following command to
+ your init file (~/.emacs
):
-(setq load-path (cons "~/lib/emacs" load-path)) -(setq auto-mode-alist - (append auto-mode-alist - '(("\\.[hg]s$" . haskell-mode) - ("\\.hi$" . haskell-mode) - ("\\.l[hg]s$" . literate-haskell-mode)))) -(autoload 'haskell-mode "haskell-mode" - "Major mode for editing Haskell scripts." t) -(autoload 'literate-haskell-mode "haskell-mode" - "Major mode for editing literate Haskell scripts." t) -+
(load "~/lib/emacs/haskell-site-file")hunk ./installation-guide.html 40 -
adding the following lines according to which modules you want to -use:
+adding the following lines according to which modules you want to + use:
hunk ./installation-guide.html 43 --(add-hook 'haskell-mode-hook 'turn-on-haskell-font-lock) -(add-hook 'haskell-mode-hook 'turn-on-haskell-decl-scan) +hunk ./installation-guide.html 49 -hunk ./installation-guide.html 47 -(add-hook 'haskell-mode-hook 'turn-on-haskell-hugs) -(add-hook 'haskell-mode-hook 'turn-on-haskell-ghci) -+
Note that the two indentation modules are mutually exclusive - add
-at most one. You can download the above code.
-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!
Note that the two indentation modules are mutually exclusive - add at
+ most one. You can download the above code.
+ 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: +
global-font-lock-mode
or do
+ (add-hook 'haskell-mode-hook 'font-lock-mode)+
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 eh menubar with +
(add-hook 'haskell-mode-hook 'imenu-add-menubar-index)+
C-c C-z
or C-c C-l
.
+ For those interested, each command above shall now be -explained.
+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:
For those interested, each command above shall now be explained.
hunk ./installation-guide.html 74 -(setq load-path (cons "~/lib/emacs" load-path))+
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:
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.
(setq load-path (cons "~/lib/emacs" load-path))hunk ./installation-guide.html 86 -
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.
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.
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.
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.
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.
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.
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.
Most customisations are on the functionality of a particular -module. See the documentation of that module for information on its -customisation.
+Most customisations are on the functionality of a particular module. + See the documentation of that module for information on its + customisation.
hunk ./installation-guide.html 133 -Any problems, do mail and we will -try our best to help you!
+Any problems, do mail and we + will try our best to help you!
+ +