Como remover o nome de espaço de nomes a partir de sublimeREPL (clojure) linha de comandos?
-
21-12-2019 - |
Pergunta
Eu estou usando clojure sublimeREPL e gostaria de saber se eu posso remover o nome de espaço de nomes a partir da linha de comandos
Atualmente o meu prompt parecido com este:
foo.core=>
Mais, muitas vezes, por alguma razão, ela é duplicada:
foo.core=>foo.core=>
Eu gostaria de ser capaz de ter apenas esta:
>
Eu não posso encontrar o lugar onde este comportamento é definido no sublimeREPL pacote
Qualquer ajuda bem-vindo
Solução
Tanto quanto eu posso dizer,lein repl
reconhece nenhum argumento para definir a linha de comandos.Além disso, o padrão tools.nrepl
, como utilizado lein repl
, tem a capacidade para definir a linha de comandos, mas ele está escondido dentro de uma função particular no cmdline.clj
e ele não está exposta a qualquer função pública.Expondo esta funcionalidade significaria modificar Leiningent e ferramentas.nrepl.
Alternativamente, atualmente acessível, de modo a definir a linha de comandos é como um argumento para a função clojure.main/repl
.O Sublime não está configurado para interagir diretamente com isso, porque ele é configurado para usar o nrepl
protocolo para se comunicar com Clojure.
Então, a menos que eu estou faltando alguma coisa, as suas opções são:
- aceite que você não pode alterar a linha de comandos
- alteração de Leiningen e ferramentas.nrepl para expor uma opção de linha de comandos
- alterar Sublime, de modo que ele pode usar clojure.principal/repl diretamente
Outras dicas
Eu sei que essa é uma velha pergunta, mas há uma resposta melhor do que o aceitou uma.Em seu project.clj
arquivo, você pode definir :repl-options
assim:
(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 "> " ))
}
)
No seu caso, substitua prompt (fn [ns] (str "> " ))
com prompt (str "> " )
e você deve estar preparado.