¿Cómo eliminar el nombre del espacio de nombres del mensaje sublimeREPL (clojure)?
-
21-12-2019 - |
Pregunta
Estoy usando clojure sublimeREPL y me gustaría saber si puedo eliminar el nombre del espacio de nombres del mensaje.
Actualmente mi mensaje se ve así:
foo.core=>
Más a menudo, por alguna razón, se duplica:
foo.core=>foo.core=>
Me gustaría poder tener solo esto:
>
No encuentro el lugar donde se define este comportamiento en el paquete sublimeREPL
Cualquier ayuda bienvenida
Solución
Por lo que yo puedo decir,lein repl
no reconoce ningún argumento para configurar el mensaje.Además, la norma tools.nrepl
, como lo usa lein repl
, tiene la capacidad de configurar el mensaje, pero está oculto dentro de una función privada en cmdline.clj
y no está expuesto a ninguna función pública.Por lo tanto, exponer esta funcionalidad significaría modificar tanto Leiningent como tools.nrepl.
Alternativamente, la forma actualmente accesible de configurar el mensaje es como un argumento para la función clojure.main/repl
.Sublime no está configurado para interactuar directamente con esto, porque está configurado para usar el nrepl
Protocolo para comunicarse con Clojure.
Entonces, a menos que me falte algo, tus opciones son:
- aceptar que no se puede cambiar el mensaje
- cambie Leiningen y tools.nrepl para que ambos expongan una opción rápida
- cambie Sublime para que pueda usar clojure.main/repl directamente
Otros consejos
Sé que esta es una pregunta antigua, pero hay una mejor respuesta que la aceptada.En su archivo project.clj
, puede configurar :repl-options
, así:
(defproject my-stuff "0.1.0"
:description "Leiningen Tutorial Project"
:url "http://example.com/FIXME"
:license {:name "MIT"
:url "http://opensource.org/licenses/MIT"}
:dependencies [[org.clojure/clojure "1.8.0"]]
:main ^:skip-aot my-stuff.core
:target-path "target/%s"
:profiles {:uberjar {:aot :all}}
:repl-options {
;; custom prompt
prompt (fn [ns] (str "> " ))
}
)
En su caso, reemplace prompt (fn [ns] (str "> " ))
con prompt (str "> " )
y debe estar todo configurado.