Fix +ivy/switch-buffer when buffer-list is empty

This commit is contained in:
Henrik Lissner 2017-06-16 02:08:43 +02:00
parent 0574ba2d84
commit 9ccffc718e
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -3,37 +3,38 @@
;; Show more information in ivy-switch-buffer; and only display ;; Show more information in ivy-switch-buffer; and only display
;; workgroup-relevant buffers. ;; workgroup-relevant buffers.
(defun +ivy--get-buffers (&optional buffer-list) (defun +ivy--get-buffers (&optional buffer-list)
(let* ((buffer-list (or buffer-list (doom-buffer-list))) (when-let (buffer-list (or buffer-list (doom-buffer-list)))
(min-name (let* ((buffer-list (or buffer-list (doom-buffer-list)))
(+ 5 (cl-loop for buf in buffer-list (min-name
maximize (length (buffer-name buf))))) (+ 5 (cl-loop for buf in buffer-list
(min-mode maximize (length (buffer-name buf)))))
(+ 5 (cl-loop for buf in buffer-list (min-mode
maximize (length (symbol-name (buffer-local-value 'major-mode buf))))))) (+ 5 (cl-loop for buf in buffer-list
(cl-loop maximize (length (symbol-name (buffer-local-value 'major-mode buf)))))))
with project-root = (doom-project-root) (cl-loop
for buf in buffer-list with project-root = (doom-project-root)
collect for buf in buffer-list
(destructuring-bind (type mode path) collect
(with-current-buffer buf (destructuring-bind (type mode path)
(list (concat (with-current-buffer buf
(let ((buffer-name (buffer-name buf))) (list (concat
(propertize (let ((buffer-name (buffer-name buf)))
buffer-name (propertize
'face (cond ((string-match-p "^ ?\\*" buffer-name) buffer-name
'font-lock-comment-face) 'face (cond ((string-match-p "^ ?\\*" buffer-name)
((not (string= project-root (doom-project-root))) 'font-lock-comment-face)
'warning) ((not (string= project-root (doom-project-root)))
(buffer-read-only 'warning)
'error)))) (buffer-read-only
(when (and buffer-file-name (buffer-modified-p)) 'error))))
(propertize "[+]" 'face 'doom-modeline-buffer-modified))) (when (and buffer-file-name (buffer-modified-p))
(propertize (symbol-name major-mode) 'face 'font-lock-constant-face) (propertize "[+]" 'face 'doom-modeline-buffer-modified)))
(when buffer-file-name (propertize (symbol-name major-mode) 'face 'font-lock-constant-face)
(abbreviate-file-name (when buffer-file-name
(file-name-directory buffer-file-name))))) (abbreviate-file-name
(format (format "%%-%ds %%-%ds %%s" min-name min-mode) (file-name-directory buffer-file-name)))))
type mode (or path "")))))) (format (format "%%-%ds %%-%ds %%s" min-name min-mode)
type mode (or path "")))))))
(defun +ivy--select-buffer-action (buffer) (defun +ivy--select-buffer-action (buffer)
(ivy--switch-buffer-action (ivy--switch-buffer-action