Comment supprimer le nom de l'espace de noms de l'invite sublimeREPL (clojure) ?
-
21-12-2019 - |
Question
J'utilise Clojure sublimeREPL et j'aimerais savoir si je peux supprimer le nom de l'espace de noms de l'invite
Actuellement, mon invite ressemble à ceci :
foo.core=>
Le plus souvent, pour une raison quelconque, il est doublé :
foo.core=>foo.core=>
J'aimerais pouvoir avoir juste ceci :
>
Je ne trouve pas l'endroit où ce comportement est défini dans le package sublimeREPL
Toute aide est la bienvenue
La solution
Pour autant que je sache,lein repl
ne reconnaît aucun argument pour définir l'invite.De plus, la norme tools.nrepl
, tel qu'utilisé par lein repl
, a la capacité de définir l'invite, mais elle est cachée dans une fonction privée dans cmdline.clj
et il n'est exposé à aucune fonction publique.Donc exposer cette fonctionnalité signifierait modifier à la fois Leiningent et tools.nrepl.
Alternativement, la manière actuellement accessible de définir l'invite consiste à utiliser un argument pour la fonction clojure.main/repl
.Sublime n'est pas configuré pour interagir directement avec cela, car il est configuré pour utiliser le nrepl
protocole pour communiquer avec Clojure.
Donc, à moins que quelque chose ne me manque, vos options sont :
- acceptez que vous ne pouvez pas modifier l'invite
- changez Leiningen et tools.nrepl pour que les deux exposent une option d'invite
- changez Sublime pour qu'il puisse utiliser clojure.main/repl directement
Autres conseils
Je sais que c'est une vieille question, mais il existe une meilleure réponse que celle acceptée.Dans ton project.clj
fichier, vous pouvez définir :repl-options
ainsi:
(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 "> " ))
}
)
Dans votre cas, remplacez prompt (fn [ns] (str "> " ))
avec prompt (str "> " )
et vous devriez être prêt.