Skip to content

Commit ee3b619

Browse files
committed
Check for tree-sitter before activating clojure-ts-mode
1 parent eab7dc3 commit ee3b619

File tree

1 file changed

+24
-21
lines changed

1 file changed

+24
-21
lines changed

clojure-ts-mode.el

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -993,27 +993,30 @@ See `clojure-ts--font-lock-settings' for usage of MARKDOWN-AVAILABLE."
993993
(add-to-list 'auto-mode-alist '("\\.cljd\\'" . clojure-ts-clojuredart-mode))
994994
(add-to-list 'auto-mode-alist '("\\.jank\\'" . clojure-ts-jank-mode)))
995995

996-
;; Redirect clojure-mode to clojure-ts-mode if clojure-mode is present
997-
(if (require 'clojure-mode nil 'noerror)
998-
(progn
999-
(add-to-list 'major-mode-remap-alist '(clojure-mode . clojure-ts-mode))
1000-
(add-to-list 'major-mode-remap-alist '(clojurescript-mode . clojure-ts-clojurescript-mode))
1001-
(add-to-list 'major-mode-remap-alist '(clojurec-mode . clojure-ts-clojurec-mode))
1002-
(clojure-ts--register-novel-modes))
1003-
;; Clojure-mode is not present, setup auto-modes ourselves
1004-
;; Regular clojure/edn files
1005-
;; I believe dtm is for datomic queries and datoms, which are just edn.
1006-
(add-to-list 'auto-mode-alist
1007-
'("\\.\\(clj\\|dtm\\|edn\\)\\'" . clojure-ts-mode))
1008-
(add-to-list 'auto-mode-alist '("\\.cljs\\'" . clojure-ts-clojurescript-mode))
1009-
(add-to-list 'auto-mode-alist '("\\.cljc\\'" . clojure-ts-clojurec-mode))
1010-
;; boot build scripts are Clojure source files
1011-
(add-to-list 'auto-mode-alist '("\\(?:build\\|profile\\)\\.boot\\'" . clojure-ts-mode))
1012-
;; babashka scripts are Clojure source files
1013-
(add-to-list 'interpreter-mode-alist '("bb" . clojure-ts-mode))
1014-
;; nbb scripts are ClojureScript source files
1015-
(add-to-list 'interpreter-mode-alist '("nbb" . clojure-ts-clojurescript-mode))
1016-
(clojure-ts--register-novel-modes))
996+
(if (treesit-available-p)
997+
;; Redirect clojure-mode to clojure-ts-mode if clojure-mode is present
998+
(if (require 'clojure-mode nil 'noerror)
999+
(progn
1000+
(add-to-list 'major-mode-remap-alist '(clojure-mode . clojure-ts-mode))
1001+
(add-to-list 'major-mode-remap-alist '(clojurescript-mode . clojure-ts-clojurescript-mode))
1002+
(add-to-list 'major-mode-remap-alist '(clojurec-mode . clojure-ts-clojurec-mode))
1003+
(clojure-ts--register-novel-modes))
1004+
;; When Clojure-mode is not present, setup auto-modes ourselves
1005+
(progn
1006+
;; Regular clojure/edn files
1007+
;; I believe dtm is for datomic queries and datoms, which are just edn.
1008+
(add-to-list 'auto-mode-alist
1009+
'("\\.\\(clj\\|dtm\\|edn\\)\\'" . clojure-ts-mode))
1010+
(add-to-list 'auto-mode-alist '("\\.cljs\\'" . clojure-ts-clojurescript-mode))
1011+
(add-to-list 'auto-mode-alist '("\\.cljc\\'" . clojure-ts-clojurec-mode))
1012+
;; boot build scripts are Clojure source files
1013+
(add-to-list 'auto-mode-alist '("\\(?:build\\|profile\\)\\.boot\\'" . clojure-ts-mode))
1014+
;; babashka scripts are Clojure source files
1015+
(add-to-list 'interpreter-mode-alist '("bb" . clojure-ts-mode))
1016+
;; nbb scripts are ClojureScript source files
1017+
(add-to-list 'interpreter-mode-alist '("nbb" . clojure-ts-clojurescript-mode))
1018+
(clojure-ts--register-novel-modes)))
1019+
(message "Clojure TS Mode is not activated as tree-sitter support is missing."))
10171020

10181021
(defvar clojure-ts--find-ns-query
10191022
(treesit-query-compile

0 commit comments

Comments
 (0)