Wie entferne ich den Namespace-Namen von der SublimeREPL (clojure) -Eingabeaufforderung?
-
21-12-2019 - |
Frage
Ich verwende clojure SublimeREPL und würde gerne wissen, ob ich den Namespace-Namen aus der Eingabeaufforderung entfernen kann
Derzeit sieht meine Aufforderung so aus:
foo.core=>
Häufiger wird es aus irgendeinem Grund verdoppelt:
foo.core=>foo.core=>
Ich würde gerne genau das haben können:
>
Ich kann den Ort, an dem dieses Verhalten im SublimeREPL-Paket definiert ist, nicht finden
Jede Hilfe willkommen
Lösung
Soweit ich das beurteilen kann,lein repl
erkennt kein Argument zum Setzen der Eingabeaufforderung.Darüber hinaus ist der Standard tools.nrepl
, wie von verwendet lein repl
, hat die Fähigkeit, die Eingabeaufforderung zu setzen, aber sie ist in einer privaten Funktion in versteckt cmdline.clj
und es ist keiner öffentlichen Funktion ausgesetzt.Das Freilegen dieser Funktionalität würde also bedeuten, sowohl Leiningens als auch Werkzeuge zu modifizieren.nr.
Alternativ ist die derzeit verfügbare Möglichkeit, die Eingabeaufforderung festzulegen, ein Argument für die Funktion clojure.main/repl
.Sublime ist nicht dafür eingerichtet, direkt damit zu interagieren, da es für die Verwendung des nrepl
protokoll zur Kommunikation mit Clojure.
Also, wenn mir nichts fehlt, sind Ihre Möglichkeiten:
- akzeptieren Sie, dass Sie die Eingabeaufforderung nicht ändern können
- Leiningen und Werkzeuge wechseln.nrepl also beide eine Eingabeaufforderungsoption verfügbar machen
- ändern Sie Sublime so, dass es clojure verwenden kann.haupt- / repl direkt
Andere Tipps
Ich weiß, dass dies eine alte Frage ist, aber es gibt eine bessere Antwort als die akzeptierte.In Ihrem project.clj
datei können Sie einstellen :repl-options
wie so:
(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 "> " ))
}
)
Ersetzen Sie in Ihrem Fall prompt (fn [ns] (str "> " ))
mit prompt (str "> " )
und du solltest bereit sein.