summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-08-30 16:46:48 -0500
committerCraig Jennings <c@cjennings.net>2025-08-30 16:46:48 -0500
commitc5dcf3e4739f629d707f3ab1ace11be970dbed16 (patch)
tree40e7d325ebffbdae88bbcc3274d04a31a4b9e452 /modules
parentdf3c433d957f0edb5876d85e2e830d9224845801 (diff)
downloaddotemacs-c5dcf3e4739f629d707f3ab1ace11be970dbed16.tar.gz
dotemacs-c5dcf3e4739f629d707f3ab1ace11be970dbed16.zip
add cj/buffer-same-mode for switching between mode buffers
Bind it to C-x B (capital) for ease of discovery/use/habit development
Diffstat (limited to 'modules')
-rw-r--r--modules/test-code.el12
1 files changed, 12 insertions, 0 deletions
diff --git a/modules/test-code.el b/modules/test-code.el
index 57046c18..cbccd105 100644
--- a/modules/test-code.el
+++ b/modules/test-code.el
@@ -14,6 +14,18 @@
(require 'user-constants)
+;; ------------------------------ Buffer Same Mode -----------------------------
+
+(defun cj/buffer-same-mode (&rest modes)
+ "Pop to a buffer with a mode among MODES, or the current one if not given."
+ (interactive)
+ (let* ((modes (or modes (list major-mode)))
+ (pred (lambda (b)
+ (let ((b (get-buffer (if (consp b) (car b) b))))
+ (member (buffer-local-value 'major-mode b) modes)))))
+ (pop-to-buffer (read-buffer "Buffer: " nil t pred))))
+(global-set-key (kbd "C-x B") 'cj/buffer-same-mode)
+
;; --------------------------------- Org Noter ---------------------------------
(use-package org-noter