Как удалить имя пространства имен из приглашения sublimeREPL (clojure)?
-
21-12-2019 - |
Вопрос
Я использую Clojure SublimeREPL и хотел бы знать, могу ли я удалить имя пространства имен из приглашения.
В настоящее время мое приглашение выглядит так:
foo.core=>
Чаще почему-то его удваивают:
foo.core=>foo.core=>
Я хотел бы иметь возможность иметь только это:
>
Я не могу найти место, где это поведение определяется в пакете sublimeREPL.
Любая помощь приветствуется
Решение
Насколько я могу судить,lein repl
не распознает аргументов для установки подсказки.Более того, стандарт tools.nrepl
, как используется lein repl
, имеет возможность установить подсказку, но она скрыта внутри частной функции в cmdline.clj
и он не выполняет никаких общественных функций.Таким образом, раскрытие этой функциональности будет означать изменение как Leiningent, так и Tools.nrepl.
В качестве альтернативы, доступный в настоящее время способ установки приглашения — это аргумент функции. clojure.main/repl
.Sublime не настроен для прямого взаимодействия с этим, поскольку он настроен на использование nrepl
протокол для связи с Clojure.
Итак, если я что-то не упустил, ваши варианты:
- согласитесь, что вы не можете изменить подсказку
- измените Leiningen иtools.nrepl, чтобы оба отображали опцию подсказки
- измените Sublime, чтобы он мог напрямую использовать clojure.main/repl
Другие советы
Я знаю, что это старый вопрос, но есть лучший ответ, чем принятый.В вашей project.clj
файл, вы можете установить :repl-options
вот так:
(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 "> " ))
}
)
В вашем случае замените prompt (fn [ns] (str "> " ))
с prompt (str "> " )
и у вас должно быть все готово.