branch: elpa/clojure-ts-mode commit 7543284987889e410e27ea3af8254a2150cf1783 Author: Bozhidar Batsov <bozhi...@batsov.dev> Commit: Bozhidar Batsov <bozhi...@batsov.dev>
Use major-mode-remap-defaults instead of major-mode-remap-alist major-mode-remap-alist is meant to be configured by the end users, and major-mode-remap-defaults is meant to be configured from Elisp code (e.g. major modes). --- clojure-ts-mode.el | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/clojure-ts-mode.el b/clojure-ts-mode.el index ac89814d4a..a5e24f08fe 100644 --- a/clojure-ts-mode.el +++ b/clojure-ts-mode.el @@ -129,7 +129,10 @@ double quotes on the third column." '((clojure-mode . clojure-ts-mode) (clojurescript-mode . clojure-ts-clojurescript-mode) (clojurec-mode . clojure-ts-clojurec-mode)) - "Alist of entries to `major-mode-remap-alist'.") + "Alist of entries to `major-mode-remap-defaults'. + +See also `clojure-ts-activate-mode-remappings' and +`clojure-ts-definition-docstring-symbols'.") (defvar clojure-ts--debug nil "Enables debugging messages, shows current node in mode-line. @@ -1099,24 +1102,29 @@ See `clojure-ts--font-lock-settings' for usage of MARKDOWN-AVAILABLE." (add-to-list 'auto-mode-alist '("\\.cljd\\'" . clojure-ts-clojuredart-mode)) (add-to-list 'auto-mode-alist '("\\.jank\\'" . clojure-ts-jank-mode))) -(defun clojure-ts-activate () - "Redirect all `clojure-mode' buffers to use `clojure-ts-mode'." +(defun clojure-ts-activate-mode-remappings () + "Remap all `clojure-mode' file-specified modes to use `clojure-ts-mode'. + +Useful if you want to try out `clojure-ts-mode' without having to manually +update the mode mappings." (interactive) (dolist (entry clojure-ts-mode-remappings) - (add-to-list 'major-mode-remap-alist entry))) + (add-to-list 'major-mode-remap-defaults entry))) + +(defun clojure-ts-deactivate-mode-remappings () + "Undo `clojure-ts-mode' file-specified mode remappings. -(defun clojure-ts-deactivate () - "Revert the redirecting of of `clojure-mode' buffers to `clojure-ts-mode'." +Useful if you want to switch to the `clojure-mode's mode mappings." (interactive) (dolist (entry clojure-ts-mode-remappings) - (setq major-mode-remap-alist (remove entry major-mode-remap-alist)))) + (setq major-mode-remap-defaults (remove entry major-mode-remap-defaults)))) (if (treesit-available-p) ;; Redirect clojure-mode to clojure-ts-mode if clojure-mode is present (if (require 'clojure-mode nil 'noerror) (progn (when clojure-ts-auto-remap - (clojure-ts-activate)) + (clojure-ts-activate-mode-remappings)) (clojure-ts--register-novel-modes)) ;; When Clojure-mode is not present, setup auto-modes ourselves (progn