summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2024-05-23 11:42:19 +0100
committerSean Whitton <spwhitton@spwhitton.name>2024-05-23 12:07:19 +0100
commite4c9aa114b21d15fe602291fc30c1ce2f4e69bb9 (patch)
treeb8ba96092b8c4f8e678f4b3bbc8b08d6b5c95dac
parent4cc0e52b24f24d080ebf5d53e93de9b70e2d638c (diff)
downloaddotfiles-master.tar.gz
replace call to files-x's read-file-local-variable-modeHEADmaster
-rw-r--r--.emacs.d/init.el12
1 files changed, 10 insertions, 2 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el
index 8264c693..0416b366 100644
--- a/.emacs.d/init.el
+++ b/.emacs.d/init.el
@@ -1434,8 +1434,16 @@ the non-side windows deleted by `delete-other-windows' will also reappear."
(defun spw/clone-indirect-buffer-set-mode ()
(when (memq this-command '(clone-indirect-buffer
clone-indirect-buffer-other-window))
- (require 'files-x)
- (when-let* ((mode (read-file-local-variable-mode)))
+ (let* ((default (and (symbolp major-mode)
+ (symbol-name major-mode)))
+ (pred (lambda (sym)
+ (and (fboundp sym)
+ (not (memq sym minor-mode-list))
+ (let ((name (symbol-name sym)))
+ (and (string-suffix-p "-mode" name)
+ (not (string-suffix-p "-minor-mode" name)))))))
+ (mode (intern (completing-read (format-prompt "Major mode" default)
+ obarray pred t nil nil default))))
(unless (eq major-mode mode)
(funcall mode)))))
(add-hook 'clone-indirect-buffer-hook #'spw/clone-indirect-buffer-set-mode)