Skip to content

Smoother repl start for sci based repls #3255

@benjamin-asdf

Description

@benjamin-asdf

I would like to do this:

(cider-register-cljs-repl-type 'nbb-or-scittle-or-joyride "(+ 1 2 3)")

(defun mm/cider-connected-hook ()
  (when (eq 'nbb-or-scittle-or-joyride cider-cljs-repl-type)
    (setq-local cider-show-error-buffer nil)
    (cider-set-repl-type 'cljs)))

(add-hook 'cider-connected-hook #'mm/cider-connected-hook)

(defun mm/cider-jack-in-nbb ()
  (interactive)
  (cider-jack-in-cljs
   '(:jack-in-cmd
     "nbb nrepl-server"
     :cljs-repl-type
     nbb-or-scittle-or-joyride)))

This almost works except that cider--check-cljs ends up throwing because "require 'cljs.core" in sci based repls throws an error.
Here is a proposal:

(defun cider-verify-clojurescript-is-present ()
  "Check whether ClojureScript is present."
  (unless
      (nrepl-dict-get (cider-sync-tooling-eval "cljs.core/inc") "value")
    (user-error "ClojureScript is not available.  See https://docs.cider.mx/cider/basics/clojurescript for details")))

checking cljs.core/inc should work everywhere. I already checked my nbb command and connecting to a shadow project repl.
Slack conversation:
https://clojurians.slack.com/archives/C029PTWD3HR/p1665687978090599

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions