Make ivy restrict buffers to layout
Also create separate non-restricted-buffer-list (`SPC B b`) for helm and ivy.
This commit is contained in:
parent
797b5b08b7
commit
0e1491c434
|
@ -175,6 +175,17 @@
|
||||||
(use-package ivy-hydra))
|
(use-package ivy-hydra))
|
||||||
|
|
||||||
(defun ivy/post-init-persp-mode ()
|
(defun ivy/post-init-persp-mode ()
|
||||||
|
;; based on https://gist.github.com/Bad-ptr/1aca1ec54c3bdb2ee80996eb2b68ad2d#file-persp-ivy-el
|
||||||
|
(add-hook 'ivy-ignore-buffers #'spacemacs//layout-not-contains-buffer-p)
|
||||||
|
(setq ivy-sort-functions-alist
|
||||||
|
(append ivy-sort-functions-alist
|
||||||
|
'((persp-kill-buffer . nil)
|
||||||
|
(persp-remove-buffer . nil)
|
||||||
|
(persp-add-buffer . nil)
|
||||||
|
(persp-switch . nil)
|
||||||
|
(persp-window-switch . nil)
|
||||||
|
(persp-frame-switch . nil))))
|
||||||
|
|
||||||
(ivy-set-actions
|
(ivy-set-actions
|
||||||
'spacemacs/ivy-spacemacs-layouts
|
'spacemacs/ivy-spacemacs-layouts
|
||||||
'(("c" persp-kill-without-buffers "Close layout(s)")
|
'(("c" persp-kill-without-buffers "Close layout(s)")
|
||||||
|
|
|
@ -34,6 +34,10 @@ Cancels autosave on exiting perspectives mode."
|
||||||
(cancel-timer spacemacs--layouts-autosave-timer)
|
(cancel-timer spacemacs--layouts-autosave-timer)
|
||||||
(setq spacemacs--layouts-autosave-timer nil))))
|
(setq spacemacs--layouts-autosave-timer nil))))
|
||||||
|
|
||||||
|
(defun spacemacs//layout-not-contains-buffer-p (buffer)
|
||||||
|
"Return non-nil if current layout doesn't contain BUFFER."
|
||||||
|
(not (persp-contain-buffer-p buffer)))
|
||||||
|
|
||||||
(defun spacemacs/jump-to-last-layout ()
|
(defun spacemacs/jump-to-last-layout ()
|
||||||
"Open the previously selected layout, if it exists."
|
"Open the previously selected layout, if it exists."
|
||||||
(interactive)
|
(interactive)
|
||||||
|
@ -49,11 +53,16 @@ current perspective."
|
||||||
(with-persp-buffer-list ()
|
(with-persp-buffer-list ()
|
||||||
(switch-to-buffer (other-buffer (current-buffer) t))))
|
(switch-to-buffer (other-buffer (current-buffer) t))))
|
||||||
|
|
||||||
(defun spacemacs-layouts/non-restricted-buffer-list ()
|
(defun spacemacs-layouts/non-restricted-buffer-list-helm ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((ido-make-buffer-list-hook (remove #'persp-restrict-ido-buffers ido-make-buffer-list-hook)))
|
(let ((ido-make-buffer-list-hook (remove #'persp-restrict-ido-buffers ido-make-buffer-list-hook)))
|
||||||
(helm-mini)))
|
(helm-mini)))
|
||||||
|
|
||||||
|
(defun spacemacs-layouts/non-restricted-buffer-list-ivy ()
|
||||||
|
(interactive)
|
||||||
|
(let ((ivy-ignore-buffers (remove #'spacemacs//layout-not-contains-buffer-p ivy-ignore-buffers)))
|
||||||
|
(ivy-switch-buffer)))
|
||||||
|
|
||||||
|
|
||||||
;; Persp transient-state
|
;; Persp transient-state
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
(setq spacemacs-layouts-packages
|
(setq spacemacs-layouts-packages
|
||||||
'(eyebrowse
|
'(eyebrowse
|
||||||
helm
|
helm
|
||||||
|
ivy
|
||||||
persp-mode
|
persp-mode
|
||||||
spaceline
|
spaceline
|
||||||
swiper))
|
swiper))
|
||||||
|
@ -94,10 +95,17 @@
|
||||||
|
|
||||||
(defun spacemacs-layouts/post-init-helm ()
|
(defun spacemacs-layouts/post-init-helm ()
|
||||||
(spacemacs/set-leader-keys
|
(spacemacs/set-leader-keys
|
||||||
|
"Bb" 'spacemacs-layouts/non-restricted-buffer-list-helm
|
||||||
"pl" 'spacemacs/helm-persp-switch-project))
|
"pl" 'spacemacs/helm-persp-switch-project))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defun spacemacs-layouts/post-init-ivy ()
|
||||||
|
(spacemacs/set-leader-keys
|
||||||
|
"Bb" 'spacemacs-layouts/non-restricted-buffer-list-ivy))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(defun spacemacs-layouts/init-persp-mode ()
|
(defun spacemacs-layouts/init-persp-mode ()
|
||||||
(use-package persp-mode
|
(use-package persp-mode
|
||||||
:diminish persp-mode
|
:diminish persp-mode
|
||||||
|
@ -208,8 +216,7 @@
|
||||||
(spacemacs/set-leader-keys
|
(spacemacs/set-leader-keys
|
||||||
"TAB" 'spacemacs/alternate-buffer-in-persp
|
"TAB" 'spacemacs/alternate-buffer-in-persp
|
||||||
"ba" 'persp-add-buffer
|
"ba" 'persp-add-buffer
|
||||||
"br" 'persp-remove-buffer
|
"br" 'persp-remove-buffer))))
|
||||||
"Bb" 'spacemacs-layouts/non-restricted-buffer-list))))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue