ghc-mod/elisp/ghc.el

96 lines
3.2 KiB
EmacsLisp
Raw Normal View History

2012-06-13 04:56:39 +00:00
;;; ghc.el --- ghc-mod front-end for haskell-mode
2010-01-06 05:38:06 +00:00
;; Author: Kazu Yamamoto <Kazu@Mew.org>
;; Created: Sep 25, 2009
2010-02-19 14:43:03 +00:00
;; Revised:
2010-01-06 05:38:06 +00:00
;; Put the following code to your "~/.emacs".
;;
;; (autoload 'ghc-init "ghc" nil t)
;; (add-hook 'haskell-mode-hook (lambda () (ghc-init)))
2010-03-11 13:47:05 +00:00
;; Or
;; (add-hook 'haskell-mode-hook (lambda () (ghc-init) (flymake-mode)))
2010-01-06 05:38:06 +00:00
;;; Code:
2012-06-28 02:04:29 +00:00
(defconst ghc-version "1.11.1")
2010-03-11 10:03:17 +00:00
;; (eval-when-compile
;; (require 'haskell-mode))
2010-01-06 05:38:06 +00:00
(require 'ghc-comp)
(require 'ghc-doc)
2010-11-15 03:46:55 +00:00
(require 'ghc-info)
2010-03-11 10:03:17 +00:00
(require 'ghc-flymake)
(require 'ghc-command)
2011-12-27 07:28:02 +00:00
(require 'ghc-ins-mod)
2012-02-28 11:38:50 +00:00
(require 'ghc-indent)
2010-04-23 09:37:48 +00:00
(require 'dabbrev)
2010-01-06 05:38:06 +00:00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Customize Variables
;;;
2011-10-05 01:40:31 +00:00
(defun ghc-find-C-h ()
(if keyboard-translate-table
(aref keyboard-translate-table ?\C-h)
?\C-h))
2010-03-14 13:39:45 +00:00
(defvar ghc-completion-key "\e\t")
(defvar ghc-document-key "\e\C-d")
(defvar ghc-import-key "\e\C-m")
(defvar ghc-previous-key "\ep")
(defvar ghc-next-key "\en")
(defvar ghc-help-key "\e?")
(defvar ghc-insert-key "\et")
(defvar ghc-sort-key "\es")
2010-11-18 07:42:19 +00:00
(defvar ghc-type-key "\C-c\C-t")
(defvar ghc-info-key "\C-c\C-i")
(defvar ghc-check-key "\C-x\C-s")
2010-05-06 06:29:55 +00:00
(defvar ghc-toggle-key "\C-c\C-c")
2011-12-27 07:28:02 +00:00
(defvar ghc-module-key "\C-c\C-m")
2012-02-27 03:53:33 +00:00
(defvar ghc-expand-key "\C-c\C-e")
2012-03-02 12:36:58 +00:00
(defvar ghc-jump-key "\C-c\C-j")
2011-10-05 01:40:31 +00:00
(defvar ghc-hoogle-key (format "\C-c%c" (ghc-find-C-h)))
2012-02-28 11:38:50 +00:00
(defvar ghc-shallower-key "\C-c<")
(defvar ghc-deeper-key "\C-c>")
2010-01-06 05:38:06 +00:00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Initializer
;;;
(defvar ghc-initialized nil)
;;;###autoload
2010-01-06 05:38:06 +00:00
(defun ghc-init ()
2010-04-23 09:21:22 +00:00
(ghc-abbrev-init)
2012-02-13 04:23:04 +00:00
(ghc-type-init)
2010-01-06 05:38:06 +00:00
(unless ghc-initialized
2010-03-14 13:39:45 +00:00
(define-key haskell-mode-map ghc-completion-key 'ghc-complete)
(define-key haskell-mode-map ghc-document-key 'ghc-browse-document)
2010-11-15 03:46:55 +00:00
(define-key haskell-mode-map ghc-type-key 'ghc-show-type)
2010-11-15 05:46:59 +00:00
(define-key haskell-mode-map ghc-info-key 'ghc-show-info)
2012-02-27 03:53:33 +00:00
(define-key haskell-mode-map ghc-expand-key 'ghc-expand-th)
2012-03-02 12:36:58 +00:00
(define-key haskell-mode-map ghc-jump-key 'ghc-flymake-jump)
2010-05-04 08:52:16 +00:00
(define-key haskell-mode-map ghc-import-key 'ghc-import-module)
2010-03-14 13:39:45 +00:00
(define-key haskell-mode-map ghc-previous-key 'flymake-goto-prev-error)
(define-key haskell-mode-map ghc-next-key 'flymake-goto-next-error)
(define-key haskell-mode-map ghc-help-key 'ghc-flymake-display-errors)
(define-key haskell-mode-map ghc-insert-key 'ghc-insert-template)
(define-key haskell-mode-map ghc-sort-key 'ghc-sort-lines)
(define-key haskell-mode-map ghc-check-key 'ghc-save-buffer)
2010-05-06 06:29:55 +00:00
(define-key haskell-mode-map ghc-toggle-key 'ghc-flymake-toggle-command)
2011-12-27 07:28:02 +00:00
(define-key haskell-mode-map ghc-module-key 'ghc-insert-module)
2011-10-05 01:40:31 +00:00
(define-key haskell-mode-map ghc-hoogle-key 'haskell-hoogle)
2012-02-28 11:38:50 +00:00
(define-key haskell-mode-map ghc-shallower-key 'ghc-make-indent-shallower)
(define-key haskell-mode-map ghc-deeper-key 'ghc-make-indent-deeper)
2010-01-06 05:38:06 +00:00
(ghc-comp-init)
(setq ghc-initialized t)))
2010-03-11 10:03:17 +00:00
2010-04-23 09:21:22 +00:00
(defun ghc-abbrev-init ()
2010-10-28 06:57:39 +00:00
(set (make-local-variable 'dabbrev-case-fold-search) nil))
2010-04-23 09:21:22 +00:00
2010-10-28 07:19:19 +00:00
(provide 'ghc)