Come rimuovere il nome dello spazio dei nomi dal prompt di Sublimerepl (Clojure)?
-
21-12-2019 - |
Domanda
Sto usando Clojure Sublimerepl e vorrei sapere se posso rimuovere il nome dello spazio dei nomi dal prompt
Attualmente il mio prompt è simile a questo:
foo.core=>
.
Più spesso per qualche motivo è raddoppiato:
foo.core=>foo.core=>
.
Vorrei essere in grado di avere solo questo:
>
.
Non riesco a trovare il luogo in cui questo comportamento è definito nel pacchetto SublimerePL
Qualsiasi aiuto Benvenuto
Soluzione
Per quanto posso dire, lein repl
non riconosce alcun argomento per l'impostazione del prompt. Inoltre, il tools.nrepl
standard, come utilizzato da lein repl
, ha la possibilità di impostare il prompt, ma è nascosto all'interno di una funzione privata in cmdline.clj
e non è esposto a alcuna funzione pubblica. Quindi esporre questa funzionalità significherebbe modificare sia lepinenti che strumenti. Dentropl.
In alternativa, il modo attualmente accessibile per impostare il prompt è come argomento alla funzione clojure.main/repl
. Sublime non è impostato per interagire direttamente con questo, poiché è impostato per utilizzare il protocollo nrepl
per comunicare con Clojure.
Quindi, a meno che non mi manchi qualcosa, le tue opzioni sono:
- .
- Accetta che non è possibile modificare il prompt
- Modifica Leiningen e Tools.Nrepl Quindi entrambi espongono un'opzione prompt
- cambia sublime in modo che possa usare clojure.main / repl direttamente
Altri suggerimenti
So che questa è una vecchia domanda, ma c'è una risposta migliore rispetto a quella accettata.Nel tuo file project.clj
, è possibile impostare :repl-options
come:
(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 "> " ))
}
)
.
Nel tuo caso, sostituire prompt (fn [ns] (str "> " ))
con prompt (str "> " )
e dovresti essere tutto impostato.