branch: elpa/inf-clojure
commit 80681e1097264d23c78b84c55e42e8ae71caa790
Author: Bozhidar Batsov <[email protected]>
Commit: Bozhidar Batsov <[email protected]>
Use inf-clojure--merge-repl-features for all REPL types
cljs, planck, and joker now merge overrides onto the shared base
instead of listing all features manually. This removes duplicate
reload/reload-all entries and ensures new base features propagate
automatically. Use nil to explicitly exclude unsupported features
(e.g. load for cljs, source/apropos/ns-vars for joker).
---
inf-clojure.el | 72 +++++++++++++++++++++++++++++++---------------------------
1 file changed, 38 insertions(+), 34 deletions(-)
diff --git a/inf-clojure.el b/inf-clojure.el
index 82deeb9084..289f9dd1c3 100644
--- a/inf-clojure.el
+++ b/inf-clojure.el
@@ -101,45 +101,49 @@ Individual REPL types override specific entries (e.g.
`arglists')
via `inf-clojure--merge-repl-features'.")
(defvar inf-clojure-repl-features
- `((cljs . ((doc . "(cljs.repl/doc %s)")
- (source . "(cljs.repl/source %s)")
- (arglists . "(try (->> '%s cljs.core/resolve cljs.core/meta
:arglists) (catch :default _ nil))")
- (apropos . "(cljs.repl/apropos \"%s\")")
- (ns-vars . "(cljs.repl/dir %s)")
- (set-ns . "(in-ns '%s)")
- (macroexpand . "(cljs.core/macroexpand '%s)")
- (macroexpand-1 . "(cljs.core/macroexpand-1 '%s)")
- (reload . "(require '%s :reload)")
- (reload-all . "(require '%s :reload-all)")
- (var-meta . "(cljs.core/meta (cljs.core/resolve '%s))")))
- (planck . ((load . "(load-file \"%s\")")
- (doc . "(planck.repl/doc %s)")
- (source . "(planck.repl/source %s)")
- (arglists . "(planck.repl/get-arglists \"%s\")")
- (apropos . "(doseq [var (sort (planck.repl/apropos \"%s\"))]
(println (str var)))")
- (ns-vars . "(planck.repl/dir %s)")
- (set-ns . "(in-ns '%s)")
- (macroexpand . "(macroexpand '%s)")
- (macroexpand-1 . "(macroexpand-1 '%s)")
- (completion . "(seq (js->clj (#'planck.repl/get-completions
\"%s\")))")
- (reload . "(require '%s :reload)")
- (reload-all . "(require '%s :reload-all)")
- (var-meta . "(cljs.core/meta (cljs.core/resolve '%s))")))
- (joker . ((load . "(load-file \"%s\")")
- (doc . "(joker.repl/doc %s)")
- (arglists .
- "(try
+ `((cljs . ,(inf-clojure--merge-repl-features
+ inf-clojure--clojure-repl-base-features
+ '((load . nil)
+ (doc . "(cljs.repl/doc %s)")
+ (source . "(cljs.repl/source %s)")
+ (arglists . "(try (->> '%s cljs.core/resolve cljs.core/meta
:arglists) (catch :default _ nil))")
+ (apropos . "(cljs.repl/apropos \"%s\")")
+ (ns-vars . "(cljs.repl/dir %s)")
+ (set-ns . "(in-ns '%s)")
+ (macroexpand . "(cljs.core/macroexpand '%s)")
+ (macroexpand-1 . "(cljs.core/macroexpand-1 '%s)")
+ (var-meta . "(cljs.core/meta (cljs.core/resolve '%s))"))))
+ (planck . ,(inf-clojure--merge-repl-features
+ inf-clojure--clojure-repl-base-features
+ '((load . "(load-file \"%s\")")
+ (doc . "(planck.repl/doc %s)")
+ (source . "(planck.repl/source %s)")
+ (arglists . "(planck.repl/get-arglists \"%s\")")
+ (apropos . "(doseq [var (sort (planck.repl/apropos \"%s\"))]
(println (str var)))")
+ (ns-vars . "(planck.repl/dir %s)")
+ (set-ns . "(in-ns '%s)")
+ (macroexpand . "(macroexpand '%s)")
+ (macroexpand-1 . "(macroexpand-1 '%s)")
+ (completion . "(seq (js->clj (#'planck.repl/get-completions
\"%s\")))")
+ (var-meta . "(cljs.core/meta (cljs.core/resolve '%s))"))))
+ (joker . ,(inf-clojure--merge-repl-features
+ inf-clojure--clojure-repl-base-features
+ '((load . "(load-file \"%s\")")
+ (doc . "(joker.repl/doc %s)")
+ (source . nil)
+ (apropos . nil)
+ (ns-vars . nil)
+ (arglists .
+ "(try
(:arglists
(joker.core/meta
(joker.core/resolve
(joker.core/read-string \"%s\"))))
(catch Error _ nil))")
- (set-ns . "(in-ns '%s)")
- (macroexpand . "(macroexpand '%s)")
- (macroexpand-1 . "(macroexpand-1 '%s)")
- (reload . "(require '%s :reload)")
- (reload-all . "(require '%s :reload-all)")
- (var-meta . "(joker.core/meta (joker.core/resolve '%s))")))
+ (set-ns . "(in-ns '%s)")
+ (macroexpand . "(macroexpand '%s)")
+ (macroexpand-1 . "(macroexpand-1 '%s)")
+ (var-meta . "(joker.core/meta (joker.core/resolve '%s))"))))
(babashka . ,(copy-alist inf-clojure--clojure-repl-base-features))
(node-babashka . ,(copy-alist inf-clojure--clojure-repl-base-features))
(clojure . ,(copy-alist inf-clojure--clojure-repl-base-features))