Skip to content

Commit 0366a33

Browse files
committed
Add defcustom for major-mode remapping
1 parent 842ddd6 commit 0366a33

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

clojure-ts-mode.el

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,18 @@ double quotes on the third column."
119119
:safe #'booleanp
120120
:package-version '(clojure-ts-mode . "0.2.3"))
121121

122+
(defcustom clojure-ts-auto-redirect t
123+
"When non-nil, redirect all `clojure-mode' buffers to `clojure-ts-mode'."
124+
:safe #'booleanp
125+
:type 'boolean
126+
:package-version '(clojure-ts-mode . "0.2.4"))
127+
128+
(defvar clojure-ts-mode-remappings
129+
'((clojure-mode . clojure-ts-mode)
130+
(clojurescript-mode . clojure-ts-clojurescript-mode)
131+
(clojurec-mode . clojure-ts-clojurec-mode))
132+
"Alist of entries to `major-mode-remap-alist'.")
133+
122134
(defvar clojure-ts--debug nil
123135
"Enables debugging messages, shows current node in mode-line.
124136
Only intended for use at development time.")
@@ -1087,13 +1099,24 @@ See `clojure-ts--font-lock-settings' for usage of MARKDOWN-AVAILABLE."
10871099
(add-to-list 'auto-mode-alist '("\\.cljd\\'" . clojure-ts-clojuredart-mode))
10881100
(add-to-list 'auto-mode-alist '("\\.jank\\'" . clojure-ts-jank-mode)))
10891101

1102+
(defun clojure-ts-activate ()
1103+
"Redirect all `clojure-mode' buffers to use `clojure-ts-mode'."
1104+
(interactive)
1105+
(dolist (entry clojure-ts-mode-remappings)
1106+
(add-to-list 'major-mode-remap-alist entry)))
1107+
1108+
(defun clojure-ts-deactivate ()
1109+
"Revert the redirecting of of `clojure-mode' buffers to `clojure-ts-mode'."
1110+
(interactive)
1111+
(dolist (entry clojure-ts-mode-remappings)
1112+
(setq major-mode-remap-alist (remove entry major-mode-remap-alist))))
1113+
10901114
(if (treesit-available-p)
10911115
;; Redirect clojure-mode to clojure-ts-mode if clojure-mode is present
10921116
(if (require 'clojure-mode nil 'noerror)
10931117
(progn
1094-
(add-to-list 'major-mode-remap-alist '(clojure-mode . clojure-ts-mode))
1095-
(add-to-list 'major-mode-remap-alist '(clojurescript-mode . clojure-ts-clojurescript-mode))
1096-
(add-to-list 'major-mode-remap-alist '(clojurec-mode . clojure-ts-clojurec-mode))
1118+
(when clojure-ts-auto-redirect
1119+
(clojure-ts-activate))
10971120
(clojure-ts--register-novel-modes))
10981121
;; When Clojure-mode is not present, setup auto-modes ourselves
10991122
(progn

0 commit comments

Comments
 (0)