init.el
changeset 68 ccf07713aeee
parent 67 6034a5ace9af
child 69 b3baf25406f8
equal deleted inserted replaced
67:6034a5ace9af 68:ccf07713aeee
   118 ;; install packages
   118 ;; install packages
   119 (let ((ensure-installed
   119 (let ((ensure-installed
   120        (lambda (name)
   120        (lambda (name)
   121          (unless (package-installed-p name) (package-install name))))
   121          (unless (package-installed-p name) (package-install name))))
   122       (packages '(ac-js2 auto-complete exec-path-from-shell expand-region
   122       (packages '(ac-js2 auto-complete exec-path-from-shell expand-region
   123                   flymake-easy flymake-hlint ghc ghci-completion haskell-mode
   123                   ghc ghci-completion haskell-mode
   124                   js2-mode multiple-cursors rainbow-delimiters rainbow-mode
   124                   js2-mode multiple-cursors rainbow-delimiters rainbow-mode
   125                   skewer-mode solarized-theme visual-regexp yasnippet
   125                   skewer-mode solarized-theme visual-regexp yasnippet
   126                   zencoding-mode json-mode markdown-mode)))
   126                   zencoding-mode json-mode markdown-mode)))
   127   (mapc ensure-installed packages))
   127   (mapc ensure-installed packages))
   128 
   128 
   157 
   157 
   158 ;;; yasnippets
   158 ;;; yasnippets
   159 (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets
   159 (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets
   160 (setq-default yas-snippet-dirs '("~/.emacs.d/snippets"))
   160 (setq-default yas-snippet-dirs '("~/.emacs.d/snippets"))
   161 (yas-global-mode t)
   161 (yas-global-mode t)
       
   162 
       
   163 ;;; gradle-mode
       
   164 (add-to-list 'auto-mode-alist '("\\.gradle$'" . groovy-mode))
   162 
   165 
   163 ;;; js2-mode
   166 ;;; js2-mode
   164 (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))
   167 (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))
   165 (add-hook 'js2-mode-hook 'ac-js2-mode)
   168 (add-hook 'js2-mode-hook 'ac-js2-mode)
   166 (setq-default ac-js2-evaluate-calls t)
   169 (setq-default ac-js2-evaluate-calls t)
   199 (autoload 'ghc-init "ghc" nil t)
   202 (autoload 'ghc-init "ghc" nil t)
   200 (add-hook
   203 (add-hook
   201  'haskell-mode-hook
   204  'haskell-mode-hook
   202  (lambda ()
   205  (lambda ()
   203    (ghc-init)
   206    (ghc-init)
   204    (flymake-mode t)
       
   205    (capitalized-words-mode t)
   207    (capitalized-words-mode t)
   206    (turn-on-hi2)
   208    (turn-on-hi2)
   207    (turn-on-haskell-doc-mode)
       
   208    (turn-on-haskell-decl-scan)
       
   209    (imenu-add-menubar-index)
   209    (imenu-add-menubar-index)
   210    (local-set-key (kbd "C-c i") 'haskell-navigate-imports) ; go to imports. prefix to return
   210    (local-set-key (kbd "C-c i") 'haskell-navigate-imports) ; go to imports. prefix to return
       
   211    (local-set-key (kbd "M-p") 'move-line-up) ; need to override default M-p function
       
   212    (local-set-key (kbd "M-n") 'move-line-down)
       
   213    (local-set-key (kbd "C-1") 'ghc-display-errors)
       
   214    (local-set-key (kbd "C-.") 'ghc-goto-next-error)
       
   215    (local-set-key (kbd "C-,") 'ghc-goto-prev-error)
   211    (setq
   216    (setq
   212     ghc-ghc-options '("-isrc")
   217     ghc-ghc-options '("-isrc")
   213     haskell-font-lock-haddock t
   218     haskell-program-name "cabal repl"
   214     haskell-stylish-on-save t
   219     haskell-stylish-on-save t
   215     hi2-layout-offset 4
   220     hi2-layout-offset 4
   216     hi2-left-offset 4
   221     hi2-left-offset 4
   217     haskell-doc-chop-off-context nil
       
   218     haskell-doc-show-global-types t
       
   219     whitespace-line-column 78)))
   222     whitespace-line-column 78)))
   220 
   223 
   221 ;;; ghci-mode
   224 ;;; ghci-mode
   222 (add-hook 'inferior-haskell-mode-hook 'turn-on-ghci-completion)
   225 (add-hook 'inferior-haskell-mode-hook 'turn-on-ghci-completion)
   223 
   226 
   224 ;;; expand-region
   227 ;;; expand-region
   225 (global-set-key (kbd "C-=") 'er/expand-region)
   228 (global-set-key (kbd "C-=") 'er/expand-region)
   226 
       
   227 ;;; flymake-mode
       
   228 (add-hook
       
   229  'flymake-mode-hook
       
   230  (lambda ()
       
   231    (local-set-key (kbd "M-p") 'move-line-up) ; need to override default M-p function
       
   232    (local-set-key (kbd "M-n") 'move-line-down)
       
   233    (local-set-key (kbd "C-1") 'flymake-display-err-menu-for-current-line)
       
   234    (local-set-key (kbd "C-.") 'flymake-goto-next-error)
       
   235    (local-set-key (kbd "C-,") 'flymake-goto-prev-error)
       
   236    ))
       
   237 
   229 
   238 ;;; move-line
   230 ;;; move-line
   239 (global-set-key (kbd "M-p") 'move-line-up)
   231 (global-set-key (kbd "M-p") 'move-line-up)
   240 (global-set-key (kbd "M-n") 'move-line-down)
   232 (global-set-key (kbd "M-n") 'move-line-down)
   241 
   233