Advertisement
Guest User

groups.el

a guest
Mar 8th, 2013
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.92 KB | None | 0 0
  1. (defvar current-group nil)
  2.  
  3. (defvar groups ())
  4.  
  5. (defvar buffer-list-snapshot (buffer-list))
  6.  
  7. (defun switch-group (group)
  8.   (interactive (list (completing-read "Group: " (mapcar #'car groups))))
  9.   (setq current-group group))
  10.  
  11. (defun create-group (group)
  12.   (interactive "sName: ")
  13.   (if (assoc group groups)
  14.       (error "Group already exists.")
  15.     (switch-group group)
  16.     (push (list group) groups)))
  17.  
  18. (defun group-new-buffers ()
  19.   (when (assoc current-group groups)
  20.     (dolist (buffer (set-difference (buffer-list) buffer-list-snapshot))
  21.       (push buffer (cdr (assoc current-group groups)))))
  22.   (setq buffer-list-snapshot (buffer-list)))
  23.  
  24. (add-hook 'buffer-list-update-hook #'group-new-buffers)
  25.  
  26. (defun kill-group (group)
  27.   (interactive (list (completing-read "Group: " (mapcar #'car groups))))
  28.   (mapc #'kill-buffer (cdr (assoc group groups)))
  29.   (setq groups (remove* group groups :test #'equal :key #'car)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement