Version 3.4.0 of package Inf-Clojure has just been released in NonGNU ELPA. You can now find it in M-x list-packages RET.
Inf-Clojure describes itself as: ===================================== Basic interaction with a Clojure REPL ===================================== More at https://elpa.nongnu.org/nongnu/inf-clojure.html ## Summary: This package provides basic interaction with a Clojure subprocess (REPL). It's based on ideas from the popular `inferior-lisp` package. `inf-clojure` has two components - a nice Clojure REPL (`inf-clojure-mode`) and a minor mode (`inf-clojure-minor-mode`), which extends `clojure-mode` with commands to evaluate forms directly in the REPL. `inf-clojure` provides a set of essential features for interactive Clojure/ClojureScript/ClojureCLR development: * REPL * Interactive code evaluation * Code completion * Definition lookup * Documentation lookup * ElDoc * Apropos * Macroexpansion * Namespace reloading * Connecting to socket REPLs It supports many Clojure runtimes including Clojure (JVM), ClojureScript, ClojureCLR, babashka, Planck, and Joker. ## Recent NEWS: # Changelog ## master (unreleased) ## 3.4.0 (2026-02-27) ### New features - [#57](https://github.com/clojure-emacs/inf-clojure/issues/57): Add `inf-clojure-show-var-meta` command (`C-c C-S-m`) to display a var's metadata. - [#205](https://github.com/clojure-emacs/inf-clojure/issues/205): Add `inf-clojure-eval-ns-aware` option for namespace-aware evaluation. ### Changes - Unify `reload` and `reload-all` forms with `inf-clojure-repl-features`, enabling per-REPL-type dispatch. The standalone `inf-clojure-reload-form` and `inf-clojure-reload-all-form` defcustoms have been removed. - Deduplicate Clojure-family REPL feature definitions via a shared base alist. - [#143](https://github.com/clojure-emacs/inf-clojure/issues/143): `inf-clojure-show-arglists` now displays results in the REPL buffer instead of the minibuffer. - Drop support for `lein-clr` (abandonware). - Use the modern `eldoc-documentation-functions` hook instead of the deprecated `eldoc-documentation-function`. - Remove unused `inf-clojure-chomp` function. ### Bugs fixed - Fix `inf-clojure-connected-p` to check for a live process. - Fix truncated autoload cookie on `inf-clojure-connect`. - Fix `prefix-arg` vs `current-prefix-arg` in REPL startup. - Fix `inf-clojure--clojure-buffer-p` to work on Emacs 28-29 (`derived-mode-p` does not accept a list before Emacs 30). - [#219](https://github.com/clojure-emacs/inf-clojure/issues/219): Fix `project-root` error when no project is detected (e.g. Squint REPL outside a project). - [#136](https://github.com/clojure-emacs/inf-clojure/issues/136): Fix preoutput filter to handle chunked comint output correctly, preventing spurious newlines (#153) and improving reliability of output filtering. - Fix node-babashka auto-detection by adding its startup form entry. - [#149](https://github.com/clojure-emacs/inf-clojure/issues/149): Show confirmation message after `inf-clojure-set-ns`. ## 3.3.0 (2025-05-25) ### New features - [#202](https://github.com/clojure-emacs/inf-clojure/issues/202): Add ClojureCLR support. - [#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. - [#217](https://github.com/clojure-emacs/inf-clojure/pull/217): Add `clojure-ts-mode` support. ### Changes - Improve support for multiple forms in the same line by replacing `beginning-of-defun` fn. - [#204](https://github.com/clojure-emacs/inf-clojure/issues/204): Scroll repl buffer on insert commands - [#208](https://github.com/clojure-emacs/inf-clojure/pull/208) Display message after setting REPL. - Require Emacs 28. - Drop support for Lumo. ## 3.2.1 (2022-07-22) ### Bugs fixed - Address some small issues with NonGNU ELPA (e.g. missing maintainer metadata). ## 3.2.0 (2022-07-15) ### New features - [#168](https://github.com/clojure-emacs/inf-clojure/pull/197): New helper function `inf-clojure-switch-to-recent-buffer` to select the last buffer an inf-clojure process buffer was swapped to from. - [#187](https://github.com/clojure-emacs/inf-clojure/pull/197): New defcustom `inf-clojure-enable-eldoc` to disable eldoc interaction. ### Bugs fixed - [#185](https://github.com/clojure-emacs/inf-clojure/issues/185): Improve cmd string splitting. - [#193](https://github.com/clojure-emacs/inf-clojure/pull/193): Set syntax table in REPL buffer. - Fix `inf-clojure-display-version` (it wasn't extracting properly the package version). ## 3.1.0 (2021-07-23) ### New features - [#190](https://github.com/clojure-emacs/inf-clojure/pull/190): Helper function `inf-clojure-set-repl` to select inf-clojure process buffer. - Auto-enable `inf-clojure-minor-mode` after invoking `inf-clojure`. This behaviour is controlled via `inf-clojure-auto-mode`. - Include the project name automatically in the REPL buffer name. ### Bugs fixed - [#152](https://github.com/clojure-emacs/inf-clojure/issues/152): Sanitize should only remove whitespace at the end of a command. - [#188](https://github.com/clojure-emacs/inf-clojure/pull/188): Handle newlines between forms for `inf-clojure-eval-buffer`. ... ...
