 (add-to-list 'auto-mode-alist '( "\\.?cron\\(tab\\)?\\'" . crontab-mode))
 
 ;; mark stuff like FIXME
-(setup "fic-mode"
-  (add-hook 'prog-mode-hook 'fic-mode)
-  ;; misbehaving modes
-  (add-hook 'enh-ruby-mode-hook 'fic-mode)
-  (add-hook 'js2-mode-hook 'fic-mode))
+(setup-lazy '(fic-mode) "fic-mode")
+(add-hook 'prog-mode-hook 'fic-mode)
+;; misbehaving modes
+(add-hook 'enh-ruby-mode-hook 'fic-mode)
+(add-hook 'js2-mode-hook 'fic-mode)
 
 ;; csv
 (setup-lazy '(csv-mode) "csv-mode"

    (define-key enh-ruby-mode-map (kbd "C-c ?") 'yari)) 
  (setup "ruby-block" ; show what block an end belongs to
    (ruby-block-mode t)
    (setq ruby-block-highlight-toggle t)
    (setq ruby-indent-level tab-width)
    (setq enh-ruby-bounce-deep-indent t)
    (setq enh-ruby-deep-indent-paren nil))
  ;; erb
  (setup "rhtml-mode"
    (add-to-list 'auto-mode-alist '("\\.erb$" . rhtml-mode))))

;; Sometimes you have to
(setup "php-mode"
  (add-to-list 'auto-mode-alist '("\\.php$" . php-mode)))

;; javascript
(setup "js2-mode"
  (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode)))

;; lua
(setup "lua-mode"
  (setq lua-indent-level 2))

;; (s)css
(setq scss-compile-at-save nil)
(setq css-indent-level 2)

;; eldoc, ie function signatures in the minibuffer
(setup-lazy '(turn-on-eldoc-mode) "eldoc"

  (define-key haskell-mode-map (kbd "C-c C-?") 'haskell-process-do-info))

;; ruby ;;
;; replace normal ruby mode
(defalias 'ruby-mode 'enh-ruby-mode)
;; enhanced ruby mode
(setup-lazy '(ruby-mode enh-ruby-mode) "enh-ruby-mode"
  (setq enh-ruby-program "~/.rbenv/shims/ruby")
  (add-to-list 'interpreter-mode-alist '("ruby" . enh-ruby-mode))
  ;; replace normal ruby mode
