init.el
changeset 58 c25a7ccd237a
parent 57 e35be98bd58c
child 59 f346d7591eac
equal deleted inserted replaced
57:e35be98bd58c 58:c25a7ccd237a
   130    (ibuffer-switch-to-saved-filter-groups "default")))
   130    (ibuffer-switch-to-saved-filter-groups "default")))
   131 
   131 
   132 
   132 
   133 ;;;; Requires and Packages ;;;;
   133 ;;;; Requires and Packages ;;;;
   134 
   134 
   135 ;;; custom inits
   135 ;;; packages
       
   136 (package-initialize)
       
   137 (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
       
   138 (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/") t)
       
   139 
       
   140 ;; install packages
       
   141 (let ((ensure-installed
       
   142        (lambda (name)
       
   143          (unless (package-installed-p name) (package-install name))))
       
   144       (packages '(ac-js2 auto-complete expand-region
       
   145        flymake-haskell-multi ghc ghci-completion haskell-mode
       
   146        iy-go-to-char js2-mode multiple-cursors rainbow-delimiters
       
   147        rainbow-mode skewer-mode solarized-theme yasnippet
       
   148        zencoding-mode)))
       
   149   (mapc ensure-installed packages))
       
   150 
       
   151 ;;; requires
   136 (require 'c-init)             ; c specific elisp
   152 (require 'c-init)             ; c specific elisp
   137 (require 'align-with-spaces)  ; use only spaces for alignment
   153 (require 'align-with-spaces)  ; use only spaces for alignment
   138 (require 'move-line)          ; move line up or down
   154 (require 'move-line)          ; move line up or down
   139 (require 'uniquify)           ; unique buffer names with dirs
   155 (require 'uniquify)           ; unique buffer names with dirs
       
   156 (require 'auto-complete-config)
       
   157 (require 'iy-go-to-char)
       
   158 
       
   159 ;;; auto-config-mode
       
   160 (ac-config-default)
   140 
   161 
   141 ;;; uniquify
   162 ;;; uniquify
   142 (setq
   163 (setq
   143  uniquify-buffer-name-style 'post-forward
   164  uniquify-buffer-name-style 'post-forward
   144  uniquify-separator ":")
   165  uniquify-separator ":")
   145 
   166 
   146 ;;; packages
       
   147 (package-initialize)
       
   148 (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
       
   149 (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/") t)
       
   150 
       
   151 ;; install
       
   152 (let ((ensure-installed
       
   153        (lambda (name)
       
   154          (unless (package-installed-p name) (package-install name))))
       
   155       (packages
       
   156        '(flymake-haskell-multi ghc ghci-completion haskell-mode js2-mode
       
   157          rainbow-delimiters rainbow-mode scion solarized-theme
       
   158          yasnippet zencoding-mode)))
       
   159   (mapc ensure-installed packages))
       
   160 
       
   161 ;;; color-theme
   167 ;;; color-theme
   162 (setq-default
   168 (setq-default
   163  custom-safe-themes
   169  custom-safe-themes
   164  '("8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4"
   170  '("8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4"
   165    "d677ef584c6dfc0697901a44b885cc18e206f05114c8a3b7fde674fce6180879" default))
   171    "d677ef584c6dfc0697901a44b885cc18e206f05114c8a3b7fde674fce6180879" default))
   168 ;;; yasnippets
   174 ;;; yasnippets
   169 (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets
   175 (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets
   170 (setq-default yas-snippet-dirs '("~/.emacs.d/snippets"))
   176 (setq-default yas-snippet-dirs '("~/.emacs.d/snippets"))
   171 (yas-global-mode t)
   177 (yas-global-mode t)
   172 
   178 
   173 ;;; java-mode
       
   174 (add-hook 'java-mode-hook (lambda () (setq whitespace-line-column 140)))
       
   175 
       
   176 ;;; js2-mode
   179 ;;; js2-mode
   177 (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))
   180 (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))
       
   181 (add-hook 'js2-mode-hook 'ac-js2-mode)
   178 (setq-default ac-js2-evaluate-calls t)
   182 (setq-default ac-js2-evaluate-calls t)
   179 
   183 
   180 ;;; zencoding-mode - html
   184 ;;; html-mode
   181 (add-hook 'sgml-mode-hook 'zencoding-mode) ; Auto-start on any markup modes
       
   182 (add-to-list 'auto-mode-alist '("\\.tpl\\'" . html-mode))
   185 (add-to-list 'auto-mode-alist '("\\.tpl\\'" . html-mode))
       
   186 (add-hook
       
   187  'html-mode-hook
       
   188  (lambda ()
       
   189    (local-set-key (kbd "C-c t") 'mc/mark-sgml-tag-pair)
       
   190    (zencoding-mode)
       
   191    (rainbow-mode)))
       
   192 
       
   193 ;;; css-mode
       
   194 (add-hook 'css-mode-hook 'rainbow-mode)
   183 
   195 
   184 ;;; coding-modes map
   196 ;;; coding-modes map
   185 (mapc
   197 (mapc
   186  (lambda (x)
   198  (lambda (x) (add-hook x
   187    (add-hook x 'linum-mode)
   199     (lambda ()
   188    (add-hook x 'rainbow-delimiters-mode))
   200       (linum-mode)
       
   201       (rainbow-delimiters-mode)
       
   202       (auto-complete-mode))
       
   203     t))
   189  '(text-mode-hook
   204  '(text-mode-hook
   190    c-mode-common-hook
   205    c-mode-common-hook
   191    python-mode-hook
   206    python-mode-hook
   192    haskell-mode-hook
   207    haskell-mode-hook
       
   208    js2-mode-hook
       
   209    html-mode-hook
       
   210    css-mode-hook
   193    clojure-mode-hook
   211    clojure-mode-hook
   194    emacs-lisp-mode-hook))
   212    emacs-lisp-mode-hook))
   195 
   213 
   196 ;;; haskell-mode
   214 ;;; haskell-mode
   197 (add-hook
   215 (add-hook
   198  'haskell-mode-hook
   216  'haskell-mode-hook
   199  (lambda ()
   217  (lambda ()
   200    ;; (ghc-init) ;; this breaks stuff
       
   201    (local-set-key (kbd "C-c i") 'haskell-navigate-imports) ; go to imports. prefix to return
   218    (local-set-key (kbd "C-c i") 'haskell-navigate-imports) ; go to imports. prefix to return
   202    (flymake-haskell-multi-load)
   219    (flymake-haskell-multi-load)
   203    (flymake-mode)
   220    (flymake-mode)
   204    (capitalized-words-mode)
   221    (capitalized-words-mode)
   205    (turn-on-haskell-indent)
   222    (turn-on-haskell-indent)
   207    (turn-on-haskell-decl-scan)
   224    (turn-on-haskell-decl-scan)
   208    (imenu-add-menubar-index)
   225    (imenu-add-menubar-index)
   209    (setq
   226    (setq
   210     haskell-font-lock-haddock t
   227     haskell-font-lock-haddock t
   211     haskell-stylish-on-save t
   228     haskell-stylish-on-save t
   212     ;; haskell-tags-on-save t
       
   213     haskell-program-name "ghci"
   229     haskell-program-name "ghci"
   214     haskell-indent-offset 4
   230     haskell-indent-offset 4
   215     whitespace-line-column 78)
   231     whitespace-line-column 78)
   216    ))
   232    ))
   217 
   233 
   218 ;;; ghci-mode
   234 ;;; ghci-mode
   219 (add-hook 'inferior-haskell-mode-hook 'turn-on-ghci-completion)
   235 (add-hook 'inferior-haskell-mode-hook 'turn-on-ghci-completion)
   220 
   236 
       
   237 ;;; expand-region
       
   238 (global-set-key (kbd "C-=") 'er/expand-region)
       
   239 
       
   240 ;;; iy-go-to-char
       
   241 (global-set-key (kbd "C-c f") 'iy-go-to-char)
       
   242 (global-set-key (kbd "C-c F") 'iy-go-to-char-backward)
       
   243 (global-set-key (kbd "C-c ;") 'iy-go-to-char-continue)
       
   244 (global-set-key (kbd "C-c ,") 'iy-go-to-char-continue-backward)
       
   245 
   221 ;;; flymake-mode
   246 ;;; flymake-mode
   222 (add-hook
   247 (add-hook
   223  'flymake-mode-hook
   248  'flymake-mode-hook
   224  (lambda ()
   249  (lambda ()
   225    (local-set-key (kbd "C-1") 'flymake-display-err-menu-for-current-line)
   250    (local-set-key (kbd "C-1") 'flymake-display-err-menu-for-current-line)
   226    (local-set-key (kbd "C-.") 'flymake-goto-next-error)
   251    (local-set-key (kbd "C-.") 'flymake-goto-next-error)
   227    (local-set-key (kbd "C-,") 'flymake-goto-prev-error)
   252    (local-set-key (kbd "C-,") 'flymake-goto-prev-error)
   228    ))
   253    ))
       
   254 
       
   255 ;;; multiple-cursors
       
   256 (global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
       
   257 (global-set-key (kbd "C->") 'mc/mark-next-like-this)
       
   258 (global-set-key (kbd "C-<") 'mc/mark-previous-like-this)
       
   259 (global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)