 ;;   evals EXPRS after loading package-name)		  ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-
-
 (use-package benchmark-init
   ;; benchmarking require and load functions
   ;; for finding out where time is being spent

	     try-expand-line
	     try-expand-line-all-buffers
	     try-expand-whole-kill) t))
    (bind-keys ("<tab>" . hippie-expand)
	       ;; sometimes tab gets shadowed
	       ("<M-tab>" . hippie-expand)
	       ("M-/" . crazy-hippie-expand))))

(use-package yasnippet
  ;; I use <C-tab> for yas and <tab> for hippie-expand
  ;; cuz I use the later more often
  ;; defer loading until <C-tab> is calld
  :init (setq yas-snippet-dirs '(yas-installed-snippets-dir))
  :bind ("<C-tab>" . yas-global-mode)
  :config (diminish 'yas-minor-mode " Y")
  (unbind-key "<C-tab>" global-map)
  (bind-key "<C-tab>" 'yas-expand yas-minor-mode-map))

(use-package auto-complete-config
  ;; de/activate ac mode with <S-tab>
  ;; when ac pops up, use <S-tab> for selection
  ;; defer loading until <S-tab> is called
  ;; :ensure auto-complete
  :bind ("<S-tab>" . global-auto-complete-mode)
  :config (ac-config-default)
  (bind-key "<S-tab>" 'ac-next ac-mode-map))

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



;;;;;;;;;;;;;;;;;;;;;;
;; custom functions ;;

	     ;; overrides backward-up-list, raise up!
	     ("C-M-u" . sp-splice-sexp-killing-around)
	     ;; navigation via parentheses
	     ;; overrides default navigation with selection behavior
	     ("C-S-f" . sp-down-sexp)
	     ("C-S-b" . sp-backward-down-sexp)
	     ("C-S-a" . sp-backward-up-sexp)
