elisp/haskell-init.el
changeset 81 4da7819d1a1c
parent 80 e848f1863d6b
child 82 12cf67bc486c
equal deleted inserted replaced
80:e848f1863d6b 81:4da7819d1a1c
     1 ;; ~/.emacs.d/elisp/haskell-init.el
     1 ;; ~/.emacs.d/elisp/haskell-init.el
     2 ;; Luke Hoersten <[email protected]>
     2 ;; Luke Hoersten <[email protected]>
     3 
     3 
     4 ;; Require packages
     4 ;; Require packages
     5 (require 'package-require)
     5 (require 'package-require)
     6 (package-require '(haskell-mode yasnippet haskell-snippets flycheck flycheck-haskell shm))
     6 (package-require '(haskell-mode yasnippet haskell-snippets flycheck shm))
     7 
     7 
     8 (add-to-list 'load-path "~/.emacs.d/elisp/stack-mode")
     8 (add-to-list 'load-path "~/.emacs.d/elisp/stack-mode")
     9 
     9 
    10 ;; Load haskell-mode from source
    10 ;; Load haskell-mode from source
    11 ;; (add-to-list 'load-path "~/Code/elisp/haskell-mode/")
    11 ;; (add-to-list 'load-path "~/Code/elisp/haskell-mode/")
    39 (add-hook
    39 (add-hook
    40  'haskell-mode-hook
    40  'haskell-mode-hook
    41  (lambda ()
    41  (lambda ()
    42    ;; (imenu-add-menubar-index)
    42    ;; (imenu-add-menubar-index)
    43    (flycheck-mode)
    43    (flycheck-mode)
    44    (flycheck-haskell-setup)
       
    45    (flycheck-disable-checker 'haskell-ghc)
       
    46    ;; (haskell-indentation-mode t)
    44    ;; (haskell-indentation-mode t)
    47    (stack-mode)
    45    (stack-mode)
    48    (subword-mode)
    46    (subword-mode)
    49    (electric-indent-mode 0)
    47    (electric-indent-mode 0)
    50    (structured-haskell-mode t)
    48    (structured-haskell-mode t)
    52    (interactive-haskell-mode t)))
    50    (interactive-haskell-mode t)))
    53 
    51 
    54 (custom-set-variables
    52 (custom-set-variables
    55  '(capitalized-words-mode t)
    53  '(capitalized-words-mode t)
    56  '(haskell-stylish-on-save t)
    54  '(haskell-stylish-on-save t)
    57 
       
    58  '(haskell-indentation-layout-offset 4)
    55  '(haskell-indentation-layout-offset 4)
    59  '(haskell-indentation-left-offset 4)
    56  '(haskell-indentation-left-offset 4)
    60 
       
    61  '(haskell-interactive-mode-eval-pretty t)
       
    62  '(haskell-interactive-mode-scroll-to-bottom t)
       
    63  '(haskell-interactive-mode-eval-mode 'haskell-mode)
       
    64 
    57 
    65  '(haskell-notify-p t)
    58  '(haskell-notify-p t)
    66  '(haskell-align-imports-pad-after-name t)
    59  '(haskell-align-imports-pad-after-name t)
    67  '(haskell-ask-also-kill-buffers nil)
    60  '(haskell-ask-also-kill-buffers nil)
    68  '(haskell-import-mapping t)
    61  '(haskell-import-mapping t)
    69 
    62 
    70  '(shm-use-presentation-mode t)
    63  '(shm-use-presentation-mode t)
    71  '(shm-auto-insert-skeletons t)
    64  '(shm-auto-insert-skeletons t)
    72  '(shm-auto-insert-bangs t))
    65  '(shm-auto-insert-bangs t)
    73 
    66 
       
    67  '(haskell-interactive-mode-eval-pretty t)
       
    68  '(haskell-interactive-mode-scroll-to-bottom t)
       
    69  '(haskell-interactive-mode-eval-mode 'haskell-mode)
       
    70  '(haskell-interactive-popup-errors nil)
       
    71  '(haskell-process-type 'stack-ghci)
       
    72  '(haskell-process-auto-import-loaded-modules t)
       
    73  '(haskell-process-log t))
    74 
    74 
    75 ;;  ;; '(haskell-process-type 'cabal-repl)
    75 ;; keys
    76 ;;  ;; ;; '(haskell-process-args-cabal-repl '("--ghc-option=-ferror-spans" "--with-ghc=ghci-ng")) ;; ghci-ng
    76 (define-key haskell-mode-map (kbd "M-,") 'haskell-who-calls)
    77 ;;  ;; ;; '(haskell-process-path-ghci "ghci-ng") ;; ghci-ng
    77 (define-key haskell-mode-map (kbd "C-c i") 'haskell-navigate-imports)
    78 ;;  ;; '(haskell-process-args-ghci "-ferror-spans")
    78 (define-key haskell-mode-map (kbd "C-c C-d") 'haskell-describe)
    79 ;;  ;; '(haskell-process-suggest-remove-import-lines t)
    79 (define-key haskell-mode-map (kbd "C-c C-c") 'haskell-process-load-or-reload)
    80 ;;  ;; '(haskell-process-auto-import-loaded-modules t)
    80 (define-key haskell-mode-map (kbd "C-`") 'haskell-interactive-bring)
    81 ;;  ;; '(haskell-process-log t)
    81 (define-key haskell-cabal-mode-map (kbd "C-`") 'haskell-interactive-bring)
    82 ;;  ;; '(haskell-process-reload-with-fbytecode nil)
    82 (define-key haskell-interactive-mode-map (kbd "C-c C-i") 'haskell-process-do-info)
    83 ;;  ;; '(haskell-process-use-presentation-mode t)
    83 (define-key haskell-interactive-mode-map (kbd "C-c C-t") 'haskell-process-do-type)
    84 ;;  ;; '(haskell-process-suggest-haskell-docs-imports t)
       
    85 ;;  ;; '(haskell-process-suggest-hoogle-imports t)
       
    86 ;;  ;; '(haskell-process-generate-tags nil)
       
    87 ;;  ;; '(haskell-process-show-debug-tips nil)
       
    88 
    84 
    89 
    85 ;; keys shm
    90 
       
    91 ;; ;; haskell-interactive-mode keybindings
       
    92 ;; (define-key interactive-haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-or-reload)
       
    93 ;; (define-key interactive-haskell-mode-map (kbd "M-,") 'haskell-who-calls)
       
    94 ;; (define-key interactive-haskell-mode-map (kbd "M-.") 'haskell-mode-goto-loc)
       
    95 ;; (define-key interactive-haskell-mode-map (kbd "C-?") 'haskell-mode-find-uses)
       
    96 ;; (define-key interactive-haskell-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build)
       
    97 ;; (define-key interactive-haskell-mode-map (kbd "C-c C-t") 'haskell-mode-show-type-at)
       
    98 ;; (define-key interactive-haskell-mode-map (kbd "C-`") 'haskell-interactive-bring)
       
    99 ;; (define-key interactive-haskell-mode-map (kbd "C-c C-k") 'haskell-process-clear)
       
   100 ;; (define-key interactive-haskell-mode-map (kbd "C-c c") 'haskell-process-cabal)
       
   101 
       
   102 ;; (define-key haskell-interactive-mode-map (kbd "C-c C-i") 'haskell-process-do-info)
       
   103 ;; (define-key haskell-interactive-mode-map (kbd "C-<left>") 'haskell-interactive-mode-error-backward)
       
   104 ;; (define-key haskell-interactive-mode-map (kbd "C-<right>") 'haskell-interactive-mode-error-forward)
       
   105 ;; (define-key haskell-interactive-mode-map (kbd "C-c c") 'haskell-process-cabal)
       
   106 
       
   107 ;; ;; haskell-mode
       
   108 ;; (define-key haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-or-reload)
       
   109 ;; (define-key haskell-mode-map (kbd "C-`") 'haskell-interactive-bring)
       
   110 ;; (define-key haskell-mode-map (kbd "C-c C-t") 'haskell-process-do-type)
       
   111 ;; (define-key haskell-mode-map (kbd "C-c i") 'haskell-navigate-imports)
       
   112 ;; (define-key haskell-mode-map (kbd "C-c C-i") 'haskell-process-do-info)
       
   113 ;; (define-key haskell-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build)
       
   114 ;; (define-key haskell-mode-map (kbd "C-c C-d") 'haskell-describe)
       
   115 ;; (define-key haskell-mode-map (kbd "C-c C-k") 'haskell-process-clear)
       
   116 ;; (define-key haskell-mode-map (kbd "C-c c") 'haskell-process-cabal)
       
   117 ;; (define-key haskell-mode-map (kbd "SPC") 'haskell-mode-contextual-space)
       
   118 
       
   119 ;; ;; cabal
       
   120 ;; (define-key haskell-cabal-mode-map (kbd "C-`") 'haskell-interactive-bring)
       
   121 ;; (define-key haskell-cabal-mode-map (kbd "C-c C-k") 'haskell-process-clear)
       
   122 ;; (define-key haskell-cabal-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build)
       
   123 ;; (define-key haskell-cabal-mode-map (kbd "C-c c") 'haskell-process-cabal)
       
   124 
       
   125 ;; shm
       
   126 (define-key shm-map (kbd "C-c C-p") 'shm/expand-pattern)
    86 (define-key shm-map (kbd "C-c C-p") 'shm/expand-pattern)
   127 (define-key shm-map (kbd "C-c C-s") 'shm/case-split)
    87 (define-key shm-map (kbd "C-c C-s") 'shm/case-split)
   128 (define-key shm-map (kbd "C-\\") 'shm/goto-last-point)
    88 (define-key shm-map (kbd "C-\\") 'shm/goto-last-point)
   129 
    89 
   130 (message "Loading haskell-init...done")
    90 (message "Loading haskell-init...done")