 ;;   :ensure package-name				  ;;
 ;;   installs package-name if missing			  ;;
 ;; 							  ;;
-;;   :diminish mode-name				  ;;
-;;   hides mode-name in mode line			  ;;
+;;   :diminish mode-name &optional name-string		  ;;
+;;   reduces mode-name to name-string in mode line	  ;;
 ;; 							  ;;
 ;;   :init &rest EXPRS					  ;;
 ;;   evals EXPRS before loading package-name		  ;;

(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))
;; uncomment all lines with the word "ensure" for automatic installation
;; but of course not all of them
;; you know what I mean
;; hopefully
;; (setq use-package-always-ensure t)
(eval-when-compile (require 'use-package))
(use-package diminish)
(use-package bind-key)
;; for checking when which package is loaded
;; (setq use-package-verbose t)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; usage:						  ;;

  ;; 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))

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

(use-package smartparens-config
  ;; defer loading til idle for one sec
  :ensure smartparens
  :defer 1
  :config
  (set-face-attribute 'sp-show-pair-match-face nil
