clojure – CIDER, cómo corregir el error "No hay REPL de cljs en la sesión actual"

Pregunta:

Estoy editando un archivo ClojureScript y tengo un ClojureScript REPL en otro búfer. Pero cuando trato de evaluar un formulario en mi archivo ui.cljs , con Cc Cc , recibo un pitido y un mensaje en el mini-búfer que dice

No hay REPL de cljs en la sesión actual "MyProjectDir / MyProject: localhost: 59437

Realmente no entiendo lo que eso significa, pero parece que mi archivo ui.cljs se asoció con el REPL incorrecto: el REPL de Clojure, no el REPL de CLJS.

CIDER Sessions:

1: MyProjectDir/MyProject:localhost:59437  
    linked-to: buf(ui.cljs)  
      objects: *cider-repl %s(clj)*  

2: MyProjectDir/MyProject:localhost:60016
    linked-to: >proj(~/Workspace/MyProjectDir/MyProject/)  
      objects: *cider-repl %s(cljs:weasel)*  

Intento "desvincularlo" ejecutando el sesman-unlink en el búfer ui.cljs . Pero solo recibo un pitido y un mensaje de error críptico en el minibúfer:

Argumento de tipo incorrecto: stringp, # <buffer ui.cljs>

¿Cómo asociar ese archivo / búfer ui.cljs con el REPL correcto?

Emacs 25.3.1 en macOS. SIDRA 0.19.0

Respuesta:

Hay una comparación detallada de los diferentes repls de cljs hasta la fecha en lambdaisland

Tomando prestados de esta fuente rica y confiable, aquí están los bits de código que necesita tener configurado para ejecutar weasel :

Servidor (Clojure)

(cljs.repl/repl (weasel.repl.websocket/repl-env :ip "0.0.0.0" :port 9001))

Cliente (ClojureScript)

(ns main
  (:require [weasel.repl :as repl]))

(when-not (repl/alive?)
  (repl/connect "ws://localhost:9001"))

Recomiendo usar figwheel repl. Aquí hay un video (también de Arne de LambdaIsland) que Figwheel la configuración de Figwheel with Cider : enlace a youtube

Alternativamente, shadow-cljs es una solución completa de enfoque diferente que es fácil de configurar, responder y todo.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım