937605211d
A good reason to update is that the TLS certificate served at the old domain is currently only valid for the new domain.
68 lines
1.9 KiB
Plaintext
68 lines
1.9 KiB
Plaintext
* Preparing Emacs front-end
|
|
|
|
**Downloading
|
|
|
|
Please use *stable* [MELPA https://stable.melpa.org/] to download Emacs front-end. So, your "~/.emacs" should be:
|
|
|
|
>|
|
|
(require 'package)
|
|
(add-to-list 'package-archives
|
|
'("melpa" . "https://stable.melpa.org/packages/"))
|
|
(package-initialize)
|
|
|<
|
|
|
|
The package name is "ghc".
|
|
Please don't forget ["install the latest cabal command" install.html].
|
|
|
|
**Configuring "~/.emacs.el"
|
|
|
|
Then, put the followings to your "~/.emacs.el" or "~/.emacs.d/init.el":
|
|
|
|
>|
|
|
(autoload 'ghc-init "ghc" nil t)
|
|
(autoload 'ghc-debug "ghc" nil t)
|
|
(add-hook 'haskell-mode-hook (lambda () (ghc-init)))
|
|
|<
|
|
|
|
IMPORTANT: if your haskell-mode-hook includes (flymake-mode), please remove it.
|
|
|
|
**Testing
|
|
|
|
Executes Emacs and opens a Haskell file by C-xC-f. And try to complete any keywords by M-C-i.
|
|
|
|
**Debugging
|
|
|
|
ghc-mod/ghc-modi must be compiled by GHC which you are actually using from Emacs. The version of Emacs front-end and ghc-mod/ghc-modi must be the same. To confirm this, type M-x ghc-debug.
|
|
|
|
>|
|
|
Path: check if you are using intended programs.
|
|
ghc.el path: /Users/kazu/work/ghc-mod/elisp/ghc.el
|
|
ghc-mod path: /Users/kazu/Library/Haskell/bin/ghc-mod
|
|
ghc-modi path: /Users/kazu/Library/Haskell/bin/ghc-modi
|
|
ghc path: /usr/local/ghc-7.8/bin/ghc
|
|
|
|
Version: all versions must be the same.
|
|
ghc.el version 4.1.0
|
|
ghc-mod version 4.1.0 compiled by GHC 7.8.2
|
|
ghc-modi version 4.1.0 compiled by GHC 7.8.2
|
|
The Glorious Glasgow Haskell Compilation System, version 7.8.2
|
|
|<
|
|
|
|
If you put (setq ghc-debug t) to your ".emacs", you can watch the communication between Emacs front-end and ghc-modi in the "*GHC Debug*" buffer.
|
|
|
|
**Customizing
|
|
|
|
If you want to specify GHC options from Emacs, set "ghc-ghc-options".
|
|
The following is an example to specify the "-i" options to GHC.
|
|
|
|
>|
|
|
(setq ghc-ghc-options '("-idir1" "-idir2"))
|
|
|<
|
|
|
|
An example to specify HLint options:
|
|
|
|
>|
|
|
(setq ghc-hlint-options '("--ignore=Use camelCase"))
|
|
|<
|
|
|