solarized-emacs

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

commit 1659e8d4484b4f293ad9c6a4b0e27634494a8ea0
parent fac531ce8890795850bc12bb3ca63526b5252a07
Author: Thomas Frössman <thomasf@jossystem.se>
Date:   Thu,  9 Jan 2020 17:43:37 +0100

split dev-emacs.d into multiple features

I want to be able to use the dev- features inside of my regular emacs conmfig.
It's not directly usable like this but it's enough for the moment.

Diffstat:
MMakefile | 2+-
Mdev-emacs.d/init.el | 162+++++--------------------------------------------------------------------------
Adev-emacs.d/lisp/solarized-dev-keys.el | 13+++++++++++++
Adev-emacs.d/lisp/solarized-dev.el | 148+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 172 insertions(+), 153 deletions(-)

diff --git a/Makefile b/Makefile @@ -37,7 +37,7 @@ test: elpa $(MAKE) run dev: clean elpa - $(MAKE) ARGS="dev-emacs.d/test-files/* dev-emacs.d/init.el *-theme.el solarized.el" run + $(MAKE) ARGS="dev-emacs.d/test-files/* dev-emacs.d/init.el *-theme.el solarized*.el" run dev-merge: clean elpa rm -rf dev-emacs.d/test-repo diff --git a/dev-emacs.d/init.el b/dev-emacs.d/init.el @@ -6,31 +6,6 @@ (setq user-emacs-directory (expand-file-name (file-name-directory load-file-name)))) -(defun dev-set-solarized-settings () - (interactive) - (setq-default - tooltip-delay 0.8 - ;;tooltip-hide-delay 10 - ;;tooltip-recent-seconds 1 - x-gtk-use-system-tooltips nil - - solarized-distinct-fringe-background nil - solarized-distinct-doc-face nil - solarized-use-variable-pitch t - solarized-use-less-bold t - solarized-use-more-italic t - solarized-emphasize-indicators t - solarized-high-contrast-mode-line nil - solarized-height-minus-1 0.8 - solarized-height-plus-1 1.1 - solarized-height-plus-2 1.15 - solarized-height-plus-3 1.2 - solarized-height-plus-4 1.3 - solarized-scale-org-headlines t - solarized-scale-outline-headlines t - ;; end - )) - (setq pop-up-frame-function nil inhibit-startup-screen t initial-scratch-message nil @@ -59,19 +34,22 @@ (debug) (message "make-frame suppressed; proceed at your own peril.") (selected-frame))) -;; (debug-make-frame) +;; (dev-debug-make-frame) +;; (toggle-debug-on-error) (when load-file-name (let* ((init-dir (file-name-as-directory (file-name-directory load-file-name))) (elisp-dir (expand-file-name ".." init-dir)) (childtheme-dir (expand-file-name "../child-theme-example" init-dir)) + (dev-lisp-dir (expand-file-name "lisp" init-dir)) (childtheme-themes-dir (expand-file-name "themes" childtheme-dir))) (defvar dev-project-root elisp-dir) (add-to-list 'load-path elisp-dir) (add-to-list 'load-path childtheme-dir) + (add-to-list 'load-path dev-lisp-dir) (setq custom-theme-load-path (list elisp-dir childtheme-themes-dir) package-user-dir (expand-file-name "elpa" init-dir) package-archives '(("gnu" . "https://elpa.gnu.org/packages/") @@ -80,131 +58,6 @@ (interactive) (find-file (expand-file-name "dev-emacs.d/test-repo/" dev-project-root))) -(defun dev-themes () - "get list of all themes" - (let ((themes nil)) - (setq themes (custom-available-themes)) - (setq themes (remove 'solarized themes)) - ;;(setq themes (cl-sort themes 'string-lessp :key '(lambda (v) (downcase (symbol-name v))))) - themes)) - -(defun dev-cycle-themes (&optional themes) - (interactive) - (let* ((themes (or themes (dev-themes))) - (current-theme-candidate (and custom-enabled-themes (car custom-enabled-themes))) - (current-theme (if (member current-theme-candidate themes) - current-theme-candidate - (car themes))) - (next-theme (if (not current-theme) - dev-default-theme - (nth (mod (+ 1 (seq-position themes current-theme)) - (length themes)) - themes)))) - (dev-disable-all-themes) - (message "loading theme: %s" next-theme) - (load-theme next-theme t))) -(global-set-key (kbd "<f7>") 'dev-cycle-themes) - -(defun dev-cycle-main-themes () - (interactive) - (dev-cycle-themes '(solarized-dark solarized-light))) - -(global-set-key (kbd "<f6>") 'dev-cycle-main-themes) -(global-set-key (kbd "<f8>") 'load-theme) - -(defun dev-disable-all-themes() - (interactive) - (dolist (v custom-enabled-themes) - (disable-theme v))) -(global-set-key (kbd "<f4>") 'dev-disable-all-themes) - -(defvar dev-reload-theme-last-setting nil) -(defun dev-reload-theme() - (interactive) - (unless dev-reload-theme-last-setting - (setq dev-reload-theme-last-setting (copy-sequence custom-enabled-themes))) - (dev-save-elisp-buffers) - (ignore-errors - (unload-feature 'solarized t)) - (ignore-errors - (unload-feature 'solarized-faces t)) - (ignore-errors - (unload-feature 'solarized-palettes t)) - (dev-set-solarized-settings) - (load-library "solarized") - (let ((themes (reverse (or dev-reload-theme-last-setting - custom-enabled-themes)))) - (dev-disable-all-themes) - (dolist (v themes) - (load-theme v t))) - (setq dev-reload-theme-last-setting nil)) -(global-set-key (kbd "<f5>") 'dev-reload-theme) - -(defun dev-save-elisp-buffers () - (interactive) - (save-some-buffers 'no-confirm - (lambda () - (and buffer-file-name - (eq major-mode 'emacs-lisp-mode) - (string-prefix-p dev-project-root buffer-file-name))))) - -(defun dev-switch-buffer-solarized () - (interactive) - (switch-to-buffer (get-buffer "solarized.el"))) -(global-set-key (kbd "<f9>") ' dev-switch-buffer-solarized) - -(defun dev-switch-buffer-current-theme () - (interactive) - (dolist - (p custom-theme-load-path) - (let* ( - (current-theme (and custom-enabled-themes (car custom-enabled-themes))) - (current-theme-filename (expand-file-name (concat (symbol-name current-theme) "-theme.el") p))) - (if (file-exists-p current-theme-filename) - (find-file current-theme-filename))))) -(global-set-key (kbd "<f10>") 'dev-switch-buffer-current-theme) - -(defvar dev-tf-current-buffer nil) -(defun dev-tf-switch-buffer (&optional backwards) - (let* ((cur (current-buffer)) - (all (seq-filter '(lambda (b) - (let ((filen (buffer-file-name b))) - (and - filen - (string-suffix-p "/test-files/" (file-name-directory filen))))) - (buffer-list))) - - (all-len (length all)) - (all-sorted (cl-sort all 'string-lessp :key '(lambda (b) (downcase (buffer-file-name b))))) - (cur-idx-pos (seq-position all-sorted cur)) - (next-idx-pos (cond - ((not cur-idx-pos) 0) - ((and backwards (= cur-idx-pos 0) ) (- all-len 1)) - ((and (not backwards) (= cur-idx-pos (- all-len 1))) 0) - (t (+ cur-idx-pos (if backwards -1 1))))) - (next-buf (if (and (not cur-idx-pos) - (bufferp dev-tf-current-buffer) - (buffer-live-p dev-tf-current-buffer)) - dev-tf-current-buffer - (elt all-sorted next-idx-pos)))) - - (setq dev-tf-current-buffer next-buf) - (switch-to-buffer next-buf))) - -(defun dev-tf-switch-buffer-next () - (interactive) - (dev-tf-switch-buffer)) -(global-set-key (kbd "<f11>") 'dev-tf-switch-buffer-next) - -(defun dev-tf-switch-buffer-prev () - (interactive) - (dev-tf-switch-buffer t)) -(global-set-key (kbd "<f12>") 'dev-tf-switch-buffer-prev) - - - -(dev-set-solarized-settings) - (require 'package) (package-initialize) @@ -243,13 +96,18 @@ (global-set-key (kbd "C-h h") 'ibuffer) (global-set-key (kbd "C-h g") 'magit)) - (setq projectile-sort-order 'recently-active projectile-completion-system 'ido projectile-switch-project-action 'projectile-dired projectile-verbose nil) + +(require 'solarized-dev) +(require 'solarized-dev-keys) + +(dev-set-solarized-settings) + (when load-file-name (dev-disable-all-themes) (load-theme 'my-solarized-dark t) diff --git a/dev-emacs.d/lisp/solarized-dev-keys.el b/dev-emacs.d/lisp/solarized-dev-keys.el @@ -0,0 +1,13 @@ +(require 'solarized-dev) + +(global-set-key (kbd "<f6>") 'dev-cycle-main-themes) +(global-set-key (kbd "<f8>") 'load-theme) +(global-set-key (kbd "<f7>") 'dev-cycle-themes) +(global-set-key (kbd "<f4>") 'dev-disable-all-themes) +(global-set-key (kbd "<f5>") 'dev-reload-theme) +(global-set-key (kbd "<f9>") ' dev-switch-buffer-solarized) +(global-set-key (kbd "<f10>") 'dev-switch-buffer-current-theme) +(global-set-key (kbd "<f11>") 'dev-tf-switch-buffer-next) +(global-set-key (kbd "<f12>") 'dev-tf-switch-buffer-prev) + +(provide 'solarized-dev-keys) diff --git a/dev-emacs.d/lisp/solarized-dev.el b/dev-emacs.d/lisp/solarized-dev.el @@ -0,0 +1,148 @@ +(defun dev-set-solarized-settings () + (interactive) + (setq-default + tooltip-delay 0.8 + ;;tooltip-hide-delay 10 + ;;tooltip-recent-seconds 1 + x-gtk-use-system-tooltips nil + + solarized-distinct-fringe-background nil + solarized-distinct-doc-face nil + solarized-use-variable-pitch t + solarized-use-less-bold t + solarized-use-more-italic t + solarized-emphasize-indicators t + solarized-high-contrast-mode-line nil + solarized-height-minus-1 0.8 + solarized-height-plus-1 1.1 + solarized-height-plus-2 1.15 + solarized-height-plus-3 1.2 + solarized-height-plus-4 1.3 + solarized-scale-org-headlines t + solarized-scale-outline-headlines t + ;; end + )) + + +(defun dev-themes () + "get list of all themes" + (let ((themes nil)) + (setq themes (custom-available-themes)) + (setq themes (remove 'solarized themes)) + ;;(setq themes (cl-sort themes 'string-lessp :key '(lambda (v) (downcase (symbol-name v))))) + themes)) + + +(defun dev-cycle-themes (&optional themes) + (interactive) + (let* ((themes (or themes (dev-themes))) + (current-theme-candidate (and custom-enabled-themes (car custom-enabled-themes))) + (current-theme (if (member current-theme-candidate themes) + current-theme-candidate + (car themes))) + (next-theme (if (not current-theme) + dev-default-theme + (nth (mod (+ 1 (seq-position themes current-theme)) + (length themes)) + themes)))) + (dev-disable-all-themes) + (message "loading theme: %s" next-theme) + (load-theme next-theme t))) + + +(defun dev-cycle-main-themes () + (interactive) + (dev-cycle-themes '(solarized-dark solarized-light))) + + +(defun dev-disable-all-themes() + (interactive) + (dolist (v custom-enabled-themes) + (disable-theme v))) + + +(defvar dev-reload-theme-last-setting nil) +(defun dev-reload-theme() + (interactive) + (unless dev-reload-theme-last-setting + (setq dev-reload-theme-last-setting (copy-sequence custom-enabled-themes))) + (dev-save-elisp-buffers) + (ignore-errors + (unload-feature 'solarized t)) + (ignore-errors + (unload-feature 'solarized-faces t)) + (ignore-errors + (unload-feature 'solarized-palettes t)) + (dev-set-solarized-settings) + (load-library "solarized") + (let ((themes (reverse (or dev-reload-theme-last-setting + custom-enabled-themes)))) + (dev-disable-all-themes) + (dolist (v themes) + (load-theme v t))) + (setq dev-reload-theme-last-setting nil)) + + +(defun dev-save-elisp-buffers () + (interactive) + (save-some-buffers 'no-confirm + (lambda () + (and buffer-file-name + (eq major-mode 'emacs-lisp-mode) + (string-prefix-p dev-project-root buffer-file-name))))) + +(defun dev-switch-buffer-solarized () + (interactive) + (switch-to-buffer (get-buffer "solarized.el"))) + + +(defun dev-switch-buffer-current-theme () + (interactive) + (dolist + (p custom-theme-load-path) + (let* ( + (current-theme (and custom-enabled-themes (car custom-enabled-themes))) + (current-theme-filename (expand-file-name (concat (symbol-name current-theme) "-theme.el") p))) + (if (file-exists-p current-theme-filename) + (find-file current-theme-filename))))) + + +(defvar dev-tf-current-buffer nil) +(defun dev-tf-switch-buffer (&optional backwards) + (let* ((cur (current-buffer)) + (all (seq-filter '(lambda (b) + (let ((filen (buffer-file-name b))) + (and + filen + (string-suffix-p "/test-files/" (file-name-directory filen))))) + (buffer-list))) + + (all-len (length all)) + (all-sorted (cl-sort all 'string-lessp :key '(lambda (b) (downcase (buffer-file-name b))))) + (cur-idx-pos (seq-position all-sorted cur)) + (next-idx-pos (cond + ((not cur-idx-pos) 0) + ((and backwards (= cur-idx-pos 0) ) (- all-len 1)) + ((and (not backwards) (= cur-idx-pos (- all-len 1))) 0) + (t (+ cur-idx-pos (if backwards -1 1))))) + (next-buf (if (and (not cur-idx-pos) + (bufferp dev-tf-current-buffer) + (buffer-live-p dev-tf-current-buffer)) + dev-tf-current-buffer + (elt all-sorted next-idx-pos)))) + + (setq dev-tf-current-buffer next-buf) + (switch-to-buffer next-buf))) + + +(defun dev-tf-switch-buffer-next () + (interactive) + (dev-tf-switch-buffer)) + + +(defun dev-tf-switch-buffer-prev () + (interactive) + (dev-tf-switch-buffer t)) + + +(provide 'solarized-dev)