From 0596a0cb23d15eb0e3a2d392275e3a5122a7aaa2 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 17 Nov 2015 02:12:39 -0500 Subject: [PATCH] Refactor lib defuns --- core/lib/defuns-buffers.el | 28 ++++++++++++++++---------- core/lib/defuns-ui.el | 38 ++++-------------------------------- core/lib/defuns-workgroup.el | 9 +++++++-- 3 files changed, 29 insertions(+), 46 deletions(-) diff --git a/core/lib/defuns-buffers.el b/core/lib/defuns-buffers.el index d9888e047..5e73679d0 100644 --- a/core/lib/defuns-buffers.el +++ b/core/lib/defuns-buffers.el @@ -67,7 +67,9 @@ Inspired from http://demonastery.org/2013/04/emacs-evil-narrow-region/" ;;;###autoload (defun narf/get-buried-buffers (&optional buffer-list) "Get a list of buffers that are buried (i.e. not visible)" - (-remove 'get-buffer-window (or buffer-list (narf/get-buffers)))) + (let* ((buffers (or buffer-list (narf/get-buffers))) + (old-len (length buffers))) + (-remove 'get-buffer-window buffers))) ;;;###autoload (defun narf/get-matching-buffers (pattern &optional buffer-list) @@ -86,7 +88,10 @@ Inspired from http://demonastery.org/2013/04/emacs-evil-narrow-region/" (let ((bname (buffer-name))) (cond ((string-match-p "^\\*scratch\\*" bname) (erase-buffer)) - (t (kill-this-buffer)))) + (t + (when window-system + (mac-start-animation (get-buffer-window) :type 'fade-out :duration 0.3)) + (kill-this-buffer)))) (if (and (eq (current-buffer) popwin:popup-buffer) (popwin:popup-window-live-p)) (popwin:close-popup-window) @@ -101,15 +106,16 @@ Inspired from http://demonastery.org/2013/04/emacs-evil-narrow-region/" (real-buffers (narf/get-real-buffers all-buffers)) (kill-list (--filter (not (memq it real-buffers)) (narf/get-buried-buffers all-buffers)))) - (message "Cleaned up %s buffers" (length kill-list)) (mapc 'kill-buffer kill-list) - (narf:kill-process-buffers))) + (narf:kill-process-buffers) + (message "Cleaned up %s buffers" (length kill-list)))) ;;;###autoload (defun narf:kill-process-buffers () "Kill all buffers that represent running processes and aren't visible." (interactive) - (let ((buffer-list (narf/get-buffers))) + (let ((buffer-list (narf/get-buffers)) + (killed-processes 0)) (dolist (p (process-list)) (let* ((process-name (process-name p)) (assoc (assoc process-name narf-cleanup-processes-alist))) @@ -119,8 +125,9 @@ Inspired from http://demonastery.org/2013/04/emacs-evil-narrow-region/" (not (--any? (let ((mode (buffer-local-value 'major-mode it))) (eq mode (cdr assoc))) buffer-list))) - (message "Cleanup: killing %s" process-name) - (delete-process p)))))) + (delete-process p) + (incf killed-processes)))) + (message "Cleaned up %s processes" killed-processes))) ;;;###autoload (defun narf:kill-matching-buffers (regexp &optional buffer-list) @@ -188,9 +195,10 @@ left, create a scratch buffer." "Kill buried buffers and report how many it found." :repeat nil (interactive "") - (let ((buffers (narf/get-buried-buffers (if bang (projectile-project-buffers) (narf/get-buffers))))) - (message "Cleaned up %s buffers" (length buffers)) - (mapc 'kill-buffer buffers))) + (let ((buffers (narf/get-buried-buffers (if bang (projectile-project-buffers) (narf/get-buffers)))) + (affected 0)) + (mapc (lambda (b) (when (kill-buffer b) (incf affected))) buffers) + (message "Cleaned up %s buffers" affected))) ;;;###autoload (autoload 'narf:kill-all-buffers "defuns-buffers" nil t) (evil-define-command narf:kill-all-buffers (&optional bang) diff --git a/core/lib/defuns-ui.el b/core/lib/defuns-ui.el index 2e40a3ed6..383b7c8ac 100644 --- a/core/lib/defuns-ui.el +++ b/core/lib/defuns-ui.el @@ -17,37 +17,6 @@ (writeroom-mode (if writeroom-mode -1 1)) (set-frame-parameter nil 'fullscreen (if (not (frame-parameter nil 'fullscreen)) 'fullboth)))) -;;;###autoload -(defvar narf--write-mode nil) -(defun narf:toggle-write-mode () - (interactive) - (require 'writeroom-mode) - (let ((writeroom-width 100) - (writeroom-extra-line-spacing 12)) - (writeroom-mode (if writeroom-mode -1 1)) - (setq narf--write-mode writeroom-mode) - - ;; (setq truncate-lines (not narf--write-mode)) - ;; (setq word-wrap narf--write-mode) - (variable-pitch-mode narf--write-mode) - - (if narf--write-mode - (narf/load-theme 'solarized-light) - (narf/reset-theme)) - - (fringe-mode (if narf--write-mode 0 '(3 . 6))) - (auto-fill-mode (if narf--write-mode -1 +1)) - (text-scale-set (if narf--write-mode 2.5 0)) - (scroll-bar-mode (if narf--write-mode 1 -1)) - - (when IS-MAC - (setq ;; sane trackpad/mouse scroll settings - mac-mouse-wheel-smooth-scroll narf--write-mode - mouse-wheel-progressive-speed narf--write-mode)) - - (when (eq major-mode 'org-mode) - (org-indent-mode (if narf--write-mode -1 1))))) - (defvar narf--big-mode nil) ;;;###autoload (defun narf:toggle-big-mode () @@ -63,9 +32,10 @@ ;;;###autoload (defun narf/load-theme (theme) (interactive) - (mapc (lambda (th) - (when (custom-theme-enabled-p th) (disable-theme th))) - custom-enabled-themes) + (ignore-errors + (mapc (lambda (th) + (when (custom-theme-enabled-p th) (disable-theme th))) + custom-enabled-themes)) (load-theme theme t)) ;;;###autoload diff --git a/core/lib/defuns-workgroup.el b/core/lib/defuns-workgroup.el index 0362c915e..84a2c3bb2 100644 --- a/core/lib/defuns-workgroup.el +++ b/core/lib/defuns-workgroup.el @@ -100,8 +100,13 @@ ;;;###autoload (defun narf:switch-to-workgroup-at-index (index) (interactive) - (wg-switch-to-workgroup-at-index index) - (narf:workgroup-display)) + (narf:workgroup-display) + (let ((wgs (wg-workgroup-list-or-error))) + (unless (eq (nth index wgs) (wg-current-workgroup t)) + (when (and IS-MAC window-system) + (mac-start-animation (window-frame (get-buffer-window)) :type 'fade-out :duration 0.75)) + (wg-switch-to-workgroup-at-index index) + (narf:workgroup-display)))) (provide 'defuns-workgroup) ;;; defuns-workgroup.el ends here