Skip to content

Commit 7d91b92

Browse files
committed
Add clojure-ts-mode support
Add support to `clojure-ts-mode`, a Clojure major mode that uses tree-sitter. For more details on `clojure-ts-mode`, consult its repository [0]. [0]: https://github.com/clojure-emacs/clojure-ts-mode.
1 parent 9aea501 commit 7d91b92

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

CHANGELOG.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
* [#202](https://github.com/clojure-emacs/inf-clojure/issues/202): Add ClojureCLR support.
66
* [#204](https://github.com/clojure-emacs/inf-clojure/issues/204): Scroll repl buffer on insert commands
77
* [#208](https://github.com/clojure-emacs/inf-clojure/pull/208) Display message after setting repl.
8-
* [#210](https://github.com/clojure-emacs/inf-clojure/pull/210) Include `inf-clojure-socket-repl` to create a socket REPL and connect to it from inside Emacs.
9-
8+
* [#210](https://github.com/clojure-emacs/inf-clojure/pull/210) Include `inf-clojure-socket-repl` to create a socket REPL and connect to it from inside Emacs.
9+
* [#215](https://github.com/clojure-emacs/inf-clojure/pull/215) Add support to `clojure-ts-mode`, a Clojure major mode that uses tree-sitter. For more details on `clojure-ts-mode`, consult its [repository](https://github.com/clojure-emacs/clojure-ts-mode).
1010

1111
## 3.2.1 (2022-07-22)
1212

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ If the installation doesn't work try refreshing the package list:
9898
`M-x inf-clojure`. You can disable this behavior by setting `inf-clojure-auto-mode` to
9999
`nil`.
100100

101+
**Note:** `inf-clojure` supports `clojure-ts-mode`, the Clojure major mode that uses
102+
tree-sitter. In order to use it, replace `clojure-mode` by `clojure-ts-mode` in all
103+
instructions below.
104+
101105
You can also add the following to your Emacs config to enable
102106
`inf-clojure-minor-mode` for Clojure source buffers, regardless of whether there's an `inf-clojure` REPL running:
103107

inf-clojure.el

+13-3
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@
6464
;;; Code:
6565

6666
(require 'comint)
67-
(require 'clojure-mode)
67+
(require 'clojure-mode nil 'no-error)
68+
(require 'clojure-ts-mode nil 'no-error)
6869
(require 'eldoc)
6970
(require 'thingatpt)
7071
(require 'ansi-color)
@@ -616,17 +617,26 @@ All buffers in `clojure-mode' will automatically be in
616617
:safe #'booleanp
617618
:package-version '(inf-clojure . "3.1.0"))
618619

620+
(defun inf-clojure--clojure-buffer-p ()
621+
"Return t if the current buffer is derived from `clojure-mode' or
622+
`clojure-ts-mode'."
623+
(or (derived-mode-p 'clojure-mode)
624+
(derived-mode-p 'clojure-ts-mode)))
625+
619626
(defun inf-clojure--clojure-buffers ()
620627
"Return a list of all existing `clojure-mode' buffers."
621628
(cl-remove-if-not
622-
(lambda (buffer) (with-current-buffer buffer (derived-mode-p 'clojure-mode)))
629+
(lambda (buffer) (with-current-buffer buffer (inf-clojure--clojure-buffer-p)))
623630
(buffer-list)))
624631

625632
(defun inf-clojure-enable-on-existing-clojure-buffers ()
626633
"Enable inf-clojure's minor mode on existing Clojure buffers.
627634
See command `inf-clojure-minor-mode'."
628635
(interactive)
629-
(add-hook 'clojure-mode-hook #'inf-clojure-minor-mode)
636+
(when (featurep 'clojure-mode)
637+
(add-hook 'clojure-mode-hook #'inf-clojure-minor-mode))
638+
(when (featurep 'clojure-ts-mode)
639+
(add-hook 'clojure-ts-mode-hook #'inf-clojure-minor-mode))
630640
(dolist (buffer (inf-clojure--clojure-buffers))
631641
(with-current-buffer buffer
632642
(inf-clojure-minor-mode +1))))

0 commit comments

Comments
 (0)