diff options
| author | gcv <gepardcv@gmail.com> | 2021-11-21 21:08:05 -0800 |
|---|---|---|
| committer | gcv <gepardcv@gmail.com> | 2021-11-21 21:10:10 -0800 |
| commit | 248b4e96400b64cbaf8a431c437e6424a7665624 (patch) | |
| tree | 0d332296815c23add9de4912d747a13aa5654e54 | |
| parent | 672d02dde0c2f8c951e3032e21050e1375a2692e (diff) | |
Put last-buffer kill check behind a feature flag.
| -rw-r--r-- | perspective.el | 11 | ||||
| -rw-r--r-- | test/test-perspective.el | 3 |
2 files changed, 12 insertions, 2 deletions
diff --git a/perspective.el b/perspective.el index bc8d5bc..8bf4572 100644 --- a/perspective.el +++ b/perspective.el @@ -113,6 +113,11 @@ save state when exiting Emacs." :group 'perspective-mode :type 'file) +(defcustom persp-feature-flag-prevent-killing-last-buffer-in-perspective nil + "Experimental feature flag: prevent killing the last buffer in a perspective." + :group 'perspective-mode + :type 'boolean) + ;;; --- implementation @@ -1009,7 +1014,8 @@ perspective and no others are killed." (run-hooks 'persp-killed-hook) (mapc 'persp-remove-buffer (persp-current-buffers)) (setf (persp-killed (persp-curr)) t)) - (add-hook 'kill-buffer-query-functions 'persp-maybe-kill-buffer) + (when persp-feature-flag-prevent-killing-last-buffer-in-perspective + (add-hook 'kill-buffer-query-functions 'persp-maybe-kill-buffer)) (remhash name (perspectives-hash)) (when (boundp 'persp--xref-marker-ring) (remhash name persp--xref-marker-ring)) (persp-update-modestring) @@ -1277,7 +1283,8 @@ named collections of buffers and window configurations." (add-hook 'after-make-frame-functions 'persp-init-frame) (add-hook 'delete-frame-functions 'persp-delete-frame) (add-hook 'ido-make-buffer-list-hook 'persp-set-ido-buffers) - (add-hook 'kill-buffer-query-functions 'persp-maybe-kill-buffer) + (when persp-feature-flag-prevent-killing-last-buffer-in-perspective + (add-hook 'kill-buffer-query-functions 'persp-maybe-kill-buffer)) (setq read-buffer-function 'persp-read-buffer) (mapc 'persp-init-frame (frame-list)) (setf (persp-current-buffers) (buffer-list)) diff --git a/test/test-perspective.el b/test/test-perspective.el index f581a9a..d5a7005 100644 --- a/test/test-perspective.el +++ b/test/test-perspective.el @@ -22,6 +22,9 @@ (set-frame-height (selected-frame) 80) (set-frame-width (selected-frame) 160) +;; Set feature flag(s): +(customize-set-variable 'persp-feature-flag-prevent-killing-last-buffer-in-perspective t) + (defun persp-test-interesting-buffer? (buf) "Return t if BUF is a non-temporary buffer (i.e., lacks tell-tale leading '*' characters)." |
