   (use-package clojure-mode-extra-font-locking)
 
   (use-package clojure-cheatsheet
+    ;; defer til the mode is called
     :bind ("C-c C-h" . clojure-cheatsheet))
 
+  (with-eval-after-load 'flycheck
+    (use-package flycheck-clojure
+      :config (flycheck-clojure-setup)))
+
   (use-package cider
-    :diminish cider-mode "cider"
+    :diminish "cider"
     :config (setq cider-repl-history-file "~/.emacs.d/cider-history")
     (bind-keys :map cider-mode-map
-	       ("<C-return>" . cider-eval-last-sexp)
-	       ("<M-return>" . cider-eval-print-last-sexp)
-	       ("<S-return>" . cider-eval-last-sexp-and-replace)
-	       ("<C-M-return>" . cider-eval-defun-at-point)
-	       ("<C-S-return>" . cider-eval-region)
-	       ("<M-S-return>" . cider-eval-buffer)
-	       ("<C-M-S-return>" . cider-load-file))))
+               ("<C-return>" . cider-eval-last-sexp)
+               ("<M-return>" . cider-eval-print-last-sexp)
+               ("<S-return>" . cider-eval-last-sexp-and-replace)
+               ("<C-M-return>" . cider-eval-defun-at-point)
+               ("<C-S-return>" . cider-eval-region)
+               ("<M-S-return>" . cider-eval-buffer)
+               ("<C-M-S-return>" . cider-load-file))))
 
 (use-package js2-mode
-  ;; defer until the mode is needed
+  ;; defer til the mode is needed
   :mode ("\\.js\\'" . js2-mode))
 
 (use-package ess-site
-  ;; defer until the main function is called
+  ;; defer til the main function is called
   :ensure ess
   :commands R)
 
 (use-package tex
-  ;; defer until the mode is needed
+  ;; defer til the mode is needed
   :ensure auctex
   :mode
   ("\\.hva\\'" . latex-mode)


  (use-package flx-ido
    :config (flx-ido-mode 1)
    (setq ido-use-faces nil) ;; meaning flx-ido-use-faces t
    (setq gc-cons-threshold 20000000))

  (use-package recentf
    :init (setq recentf-max-saved-items 30)
    :config (recentf-mode 1)))

(use-package smex
  ;; slow to load, mainly because smex has to load ido first
  ;; defer until main functions are called
  :bind ("M-x" . smex) ("M-X" . smex-major-mode-commands))

(use-package ace-jump-mode
  ;; defer until main functions are called
  :bind ("C-c j" . ace-jump-mode)
  ("C-x j" . ace-jump-mode-pop-mark)
  :config (ace-jump-mode-enable-mark-sync))

(use-package projectile
  ;; defer loading until the mode is called
  :bind ("C-c C-p" . projectile-mode)
  ("C-x p" . projectile-global-mode))

;;;;;;;;;;;;;
;; editing ;;
;;;;;;;;;;;;;

(use-package rainbow-delimiters
  ;; lightweight and fun, why not
  :config (add-hook 'prog-mode-hook #'rainbow-delimiters-mode-enable))

(use-package smartparens-config
  ;; defer loading til idle for one sec---although these editing aids

           ("<S-down>" . decrease-window-height)
           ("<S-right>" . increase-window-width)
           ("<S-left>" . decrease-window-width))
