This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/contrib/ibuffer/funcs.el

48 lines
1.7 KiB
EmacsLisp
Raw Normal View History

;;; funcs.el --- ibuffer Layer extensions File for Spacemacs
2015-04-20 17:44:44 +00:00
;;
;; Copyright (c) 2012-2014 Sylvain Benner
;; Copyright (c) 2015 Aleksandr Guljajev & Contributors
;;
;; Author: Aleksandr Guljajev <gulj.aleks@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(defun spacemacs//ibuffer-get-major-modes-ibuff-rules-list (mm-list result-list)
2015-04-20 17:44:44 +00:00
(if mm-list
(let* ((cur-mm (car mm-list))
(next-res-list-el `(,(symbol-name cur-mm) (mode . ,cur-mm))))
(spacemacs//ibuffer-get-major-modes-ibuff-rules-list
(cdr mm-list) (cons next-res-list-el result-list)))
2015-04-20 17:44:44 +00:00
result-list))
(defun spacemacs//ibuffer-get-major-modes-list ()
2015-04-20 17:44:44 +00:00
(mapcar
(function (lambda (buffer)
(buffer-local-value 'major-mode (get-buffer buffer))))
2015-04-20 17:44:44 +00:00
(buffer-list (selected-frame))))
(defun spacemacs//ibuffer-create-buffs-group ()
2015-04-20 17:44:44 +00:00
(interactive)
(let* ((ignore-modes '(Buffer-menu-mode
compilation-mode
minibuffer-inactive-mode
ibuffer-mode
magit-process-mode
messages-buffer-mode
fundamental-mode
completion-list-mode
help-mode
Info-mode))
(cur-bufs
(list (cons "Home"
(spacemacs//ibuffer-get-major-modes-ibuff-rules-list
(cl-set-difference
(remove-duplicates
(spacemacs//ibuffer-get-major-modes-list))
ignore-modes) '())))))
2015-04-20 17:44:44 +00:00
(setq ibuffer-saved-filter-groups cur-bufs)
(ibuffer-switch-to-saved-filter-groups "Home")))