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