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))

Reply via email to