diff options
| author | Craig Jennings <c@cjennings.net> | 2025-10-20 09:13:44 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2025-10-20 09:13:44 -0500 |
| commit | f041d7f355cdfeeee963553e98e0deea4306f1a9 (patch) | |
| tree | b941a216e3de74d3527f9b6bfc18759764869fb9 | |
| parent | cfcf2c4e43afbea074787cd103c518ae90c6dd67 (diff) | |
chore: undead-buffers: Update keybinding functions and docstrings
- Replace `global-set-key` with `keymap-global-set` for defining keybindings.
- Update docstrings to use single quotes instead of equal signs for code symbols.
- Remove ERT tests for cleanup and clarity (moved to tests/ in another PR)
| -rw-r--r-- | modules/undead-buffers.el | 117 |
1 files changed, 8 insertions, 109 deletions
diff --git a/modules/undead-buffers.el b/modules/undead-buffers.el index 428ed870..a7584476 100644 --- a/modules/undead-buffers.el +++ b/modules/undead-buffers.el @@ -32,10 +32,10 @@ (if (member (buffer-name) cj/buffer-bury-alive-list) (bury-buffer) (kill-buffer))))) -(global-set-key [remap kill-buffer] #'cj/kill-buffer-or-bury-alive) +(keymap-global-set "<remap> <kill-buffer>" #'cj/kill-buffer-or-bury-alive) (defun cj/undead-buffer-p () - "Predicate for =save-some-buffers= that skips buffers in =cj/buffer-bury-alive-list=." + "Predicate for `save-some-buffers' that skips buffers in `cj/buffer-bury-alive-list'." (let* ((buf (current-buffer)) (name (buffer-name buf))) (and @@ -44,8 +44,8 @@ (buffer-modified-p buf)))) (defun cj/save-some-buffers (&optional arg) - "Save some buffers, omitting those in =cj/buffer-bury-alive-list=. -ARG is passed to =save-some-buffers=." + "Save some buffers, omitting those in `cj/buffer-bury-alive-list'. +ARG is passed to `save-some-buffers'." (interactive "P") (save-some-buffers arg #'cj/undead-buffer-p)) @@ -55,7 +55,7 @@ ARG is passed to =save-some-buffers=." (let ((buf (current-buffer))) (delete-window) (cj/kill-buffer-or-bury-alive buf))) -(global-set-key (kbd "M-C") #'cj/kill-buffer-and-window) +(keymap-global-set "M-C" #'cj/kill-buffer-and-window) (defun cj/kill-other-window () "Delete the next window and kill or bury its buffer." @@ -65,7 +65,7 @@ ARG is passed to =save-some-buffers=." (unless (one-window-p) (delete-window)) (cj/kill-buffer-or-bury-alive buf))) -(global-set-key (kbd "M-O") #'cj/kill-other-window) +(keymap-global-set "M-O" #'cj/kill-other-window) (defun cj/kill-all-other-buffers-and-windows () "Kill or bury all other buffers, then delete other windows." @@ -74,108 +74,7 @@ ARG is passed to =save-some-buffers=." (delete-other-windows) (mapc #'cj/kill-buffer-or-bury-alive (delq (current-buffer) (buffer-list)))) -(global-set-key (kbd "M-M") #'cj/kill-all-other-buffers-and-windows) +(keymap-global-set "M-M" #'cj/kill-all-other-buffers-and-windows) (provide 'undead-buffers) -;;; undead-buffers.el ends here. - -;; --------------------------------- ERT Tests --------------------------------- -;; Run these tests with M-x ert RET t RET - -(require 'ert) -(require 'cl-lib) - -(ert-deftest undead-buffers/kill-or-bury-when-not-in-list-kills () - "cj/kill-buffer-or-bury-alive should kill a buffer not in `cj/buffer-bury-alive-list'." - (let* ((buf (generate-new-buffer "test-not-in-list")) - (orig (copy-sequence cj/buffer-bury-alive-list))) - (unwind-protect - (progn - (should (buffer-live-p buf)) - (cj/kill-buffer-or-bury-alive (buffer-name buf)) - (should-not (buffer-live-p buf))) - (setq cj/buffer-bury-alive-list orig) - (when (buffer-live-p buf) (kill-buffer buf))))) - -(ert-deftest undead-buffers/kill-or-bury-when-in-list-buries () - "cj/kill-buffer-or-bury-alive should bury (not kill) a buffer in the list." - (let* ((name "*dashboard*") ; an element already in the default list - (buf (generate-new-buffer name)) - (orig (copy-sequence cj/buffer-bury-alive-list)) - win-was) - (unwind-protect - (progn - (add-to-list 'cj/buffer-bury-alive-list name) - ;; show it in a temporary window so we can detect bury - (setq win-was (display-buffer buf)) - (cj/kill-buffer-or-bury-alive name) - ;; bury should leave it alive - (should (buffer-live-p buf)) - ;; note: Emacs’s `bury-buffer` does not delete windows by default, - ;; so we no longer assert that no window shows it. - ) - ;; cleanup - (setq cj/buffer-bury-alive-list orig) - (delete-windows-on buf) - (kill-buffer buf)))) - -(ert-deftest undead-buffers/kill-or-bury-adds-to-list-with-prefix () - "Calling `cj/kill-buffer-or-bury-alive' with a prefix arg should add the buffer to the list." - (let* ((buf (generate-new-buffer "test-add-prefix")) - (orig (copy-sequence cj/buffer-bury-alive-list))) - (unwind-protect - (progn - (let ((current-prefix-arg '(4))) - (cj/kill-buffer-or-bury-alive (buffer-name buf))) - (should (member (buffer-name buf) cj/buffer-bury-alive-list))) - (setq cj/buffer-bury-alive-list orig) - (kill-buffer buf)))) - -(ert-deftest undead-buffers/kill-buffer-and-window-removes-window () - "cj/kill-buffer-and-window should delete the current window and kill/bury its buffer." - (let* ((buf (generate-new-buffer "test-kill-and-win")) - (orig (copy-sequence cj/buffer-bury-alive-list))) - (split-window) ; now two windows - (let ((win (next-window))) - (set-window-buffer win buf) - (select-window win) - (cj/kill-buffer-and-window) - (should-not (window-live-p win)) - (unless (member (buffer-name buf) orig) - (should-not (buffer-live-p buf)))) - (setq cj/buffer-bury-alive-list orig))) - -(ert-deftest undead-buffers/kill-other-window-deletes-that-window () - "cj/kill-other-window should delete the *other* window and kill/bury its buffer." - (let* ((buf1 (current-buffer)) - (buf2 (generate-new-buffer "test-other-window")) - (orig (copy-sequence cj/buffer-bury-alive-list))) - (split-window) - (let* ((win1 (selected-window)) - (win2 (next-window win1))) - (set-window-buffer win2 buf2) - ;; stay on the original window - (select-window win1) - (cj/kill-other-window) - (should-not (window-live-p win2)) - (unless (member (buffer-name buf2) orig) - (should-not (buffer-live-p buf2)))) - (setq cj/buffer-bury-alive-list orig))) - -(ert-deftest undead-buffers/kill-all-other-buffers-and-windows-keeps-only-current () - "cj/kill-all-other-buffers-and-windows should delete other windows and kill/bury all other buffers." - (let* ((main (current-buffer)) - (extra (generate-new-buffer "test-all-others")) - (orig (copy-sequence cj/buffer-bury-alive-list))) - (split-window) - (set-window-buffer (next-window) extra) - (cj/kill-all-other-buffers-and-windows) - (should (one-window-p)) - ;; main buffer still exists - (should (buffer-live-p main)) - ;; extra buffer either buried or killed - (unless (member (buffer-name extra) orig) - (should-not (buffer-live-p extra))) - ;; cleanup - (setq cj/buffer-bury-alive-list orig) - (when (buffer-live-p extra) (kill-buffer extra)))) +;;; undead-buffers.el ends here |
