solarized-emacs

a fork of Bozhidar Batsov's solarized-emacs
git clone https://git.trogloxene.org/solarized-emacs.git
Log | Files | Refs | README

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)