Refactor lib defuns

This commit is contained in:
Henrik Lissner 2015-11-17 02:12:39 -05:00
parent 2b96795761
commit 0596a0cb23
3 changed files with 29 additions and 46 deletions

View file

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

View file

@ -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

View file

@ -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