solarized-dev.el (5635B)
1 (defun dev-set-solarized-settings () 2 (interactive) 3 (setq-default 4 tooltip-delay 0.8 5 ;;tooltip-hide-delay 10 6 ;;tooltip-recent-seconds 1 7 x-gtk-use-system-tooltips nil 8 9 solarized-distinct-fringe-background nil 10 solarized-distinct-doc-face nil 11 solarized-use-variable-pitch t 12 solarized-use-less-bold t 13 solarized-use-more-italic t 14 solarized-emphasize-indicators t 15 solarized-high-contrast-mode-line nil 16 solarized-height-minus-1 0.8 17 solarized-height-plus-1 1.1 18 solarized-height-plus-2 1.15 19 solarized-height-plus-3 1.2 20 solarized-height-plus-4 1.3 21 solarized-scale-org-headlines t 22 solarized-scale-outline-headlines t 23 ;; end 24 )) 25 26 (defun dev-setup-paths (dev-init-dir) 27 (let* ((init-dir dev-init-dir) 28 (elisp-dir (expand-file-name ".." init-dir)) 29 (childtheme-dir (expand-file-name "../child-theme-example" init-dir)) 30 (dev-lisp-dir (expand-file-name "lisp" init-dir)) 31 (childtheme-themes-dir (expand-file-name "themes" childtheme-dir))) 32 (defvar dev-project-root elisp-dir) 33 (add-to-list 'load-path elisp-dir) 34 (add-to-list 'load-path childtheme-dir) 35 (add-to-list 'load-path dev-lisp-dir) 36 (setq custom-theme-load-path (list elisp-dir childtheme-themes-dir) 37 package-user-dir (expand-file-name "elpa" init-dir) 38 package-archives '(("gnu" . "https://elpa.gnu.org/packages/") 39 ("melpa" . "https://melpa.org/packages/"))))) 40 (defun dev-themes () 41 "get list of all themes" 42 (let ((themes nil)) 43 (setq themes (custom-available-themes)) 44 (setq themes (remove 'solarized themes)) 45 ;;(setq themes (cl-sort themes 'string-lessp :key '(lambda (v) (downcase (symbol-name v))))) 46 themes)) 47 48 49 (defun dev-cycle-themes (&optional themes) 50 (interactive) 51 (let* ((themes (or themes (dev-themes))) 52 (current-theme-candidate (and custom-enabled-themes (car custom-enabled-themes))) 53 (current-theme (if (member current-theme-candidate themes) 54 current-theme-candidate 55 (car themes))) 56 (next-theme (if (not current-theme) 57 dev-default-theme 58 (nth (mod (+ 1 (seq-position themes current-theme)) 59 (length themes)) 60 themes)))) 61 (dev-disable-all-themes) 62 (message "loading theme: %s" next-theme) 63 (load-theme next-theme t))) 64 65 66 (defun dev-cycle-main-themes () 67 (interactive) 68 (dev-cycle-themes '(solarized-dark solarized-light))) 69 70 71 (defun dev-disable-all-themes() 72 (interactive) 73 (dolist (v custom-enabled-themes) 74 (disable-theme v))) 75 76 77 (defvar dev-reload-theme-last-setting nil) 78 (defun dev-reload-theme() 79 (interactive) 80 (unless dev-reload-theme-last-setting 81 (setq dev-reload-theme-last-setting (copy-sequence custom-enabled-themes))) 82 (dev-save-elisp-buffers) 83 (ignore-errors 84 (unload-feature 'solarized t)) 85 (ignore-errors 86 (unload-feature 'solarized-faces t)) 87 (ignore-errors 88 (unload-feature 'solarized-palettes t)) 89 (dev-set-solarized-settings) 90 (load-library "solarized") 91 (let ((themes (reverse (or dev-reload-theme-last-setting 92 custom-enabled-themes)))) 93 (dev-disable-all-themes) 94 (dolist (v themes) 95 (load-theme v t))) 96 (setq dev-reload-theme-last-setting nil)) 97 98 99 (defun dev-save-elisp-buffers () 100 (interactive) 101 (save-some-buffers 'no-confirm 102 (lambda () 103 (and buffer-file-name 104 (eq major-mode 'emacs-lisp-mode) 105 (string-prefix-p dev-project-root buffer-file-name))))) 106 107 (defun dev-switch-buffer-solarized () 108 (interactive) 109 (switch-to-buffer (get-buffer "solarized.el"))) 110 111 112 (defun dev-switch-buffer-current-theme () 113 (interactive) 114 (dolist 115 (p custom-theme-load-path) 116 (let* ( 117 (current-theme (and custom-enabled-themes (car custom-enabled-themes))) 118 (current-theme-filename (expand-file-name (concat (symbol-name current-theme) "-theme.el") p))) 119 (if (file-exists-p current-theme-filename) 120 (find-file current-theme-filename))))) 121 122 123 (defvar dev-tf-current-buffer nil) 124 (defun dev-tf-switch-buffer (&optional backwards) 125 (let* ((cur (current-buffer)) 126 (all (seq-filter '(lambda (b) 127 (let ((filen (buffer-file-name b))) 128 (and 129 filen 130 (string-suffix-p "/test-files/" (file-name-directory filen))))) 131 (buffer-list))) 132 133 (all-len (length all)) 134 (all-sorted (cl-sort all 'string-lessp :key '(lambda (b) (downcase (buffer-file-name b))))) 135 (cur-idx-pos (seq-position all-sorted cur)) 136 (next-idx-pos (cond 137 ((not cur-idx-pos) 0) 138 ((and backwards (= cur-idx-pos 0) ) (- all-len 1)) 139 ((and (not backwards) (= cur-idx-pos (- all-len 1))) 0) 140 (t (+ cur-idx-pos (if backwards -1 1))))) 141 (next-buf (if (and (not cur-idx-pos) 142 (bufferp dev-tf-current-buffer) 143 (buffer-live-p dev-tf-current-buffer)) 144 dev-tf-current-buffer 145 (elt all-sorted next-idx-pos)))) 146 147 (setq dev-tf-current-buffer next-buf) 148 (switch-to-buffer next-buf))) 149 150 151 (defun dev-tf-switch-buffer-next () 152 (interactive) 153 (dev-tf-switch-buffer)) 154 155 156 (defun dev-tf-switch-buffer-prev () 157 (interactive) 158 (dev-tf-switch-buffer t)) 159 160 161 (provide 'solarized-dev)