运行“全部刷新”后Clojure REPL环境丢失
我正在入侵我用运行“全部刷新”后Clojure REPL环境丢失,clojure,leiningen,Clojure,Leiningen,我正在入侵我用lein新建应用程序incojure创建的Clojure应用程序。每次启动REPL时,我都想预加载一些东西,因此我创建了一个dev/user.clj文件,并将其源代码放在我的项目中。clj: (defproject inclojure "0.1.0-SNAPSHOT" :description "FIXME: write description" :url "http://example.com/FIXME" :license {:name "Eclipse Publi
lein新建应用程序incojure
创建的Clojure应用程序。每次启动REPL时,我都想预加载一些东西,因此我创建了一个dev/user.clj
文件,并将其源代码放在我的项目中。clj
:
(defproject inclojure "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]]
:main ^:skip-aot inclojure.core
:target-path "target/%s"
:profiles {:uberjar {:aot :all}
:dev {:source-paths ["dev"]}})
该文件主要只需要一堆废话,因此我可以使用速记:
(ns inclojure.core
(:require [clojure.java.io :as io]
[clojure.tools.namespace.repl :refer (refresh-all)])
(:use [clojure.reflect :only [reflect]]
[clojure.pprint :only [pprint print-table pp]]))
(defn r
"inspect all of the properties in a java object, optionally by specifying a
pattern"
([o] (r o "."))
([o prefix]
(->> (reflect o :ancestors true)
:members
(filter #(re-find (re-pattern (str "(?i)" prefix)) (str (:name %))))
(pprint))))
这一切都是可行的,但当我运行(全部刷新)
时,它会丢失dev/user.clj
中的所有内容。是否有一种方法可以让我从中(全部刷新)
,并保留或重新加载dev/user.clj
中的所有内容
似乎我可能想在dev/user.clj
中创建一个REPL特定的命名空间,如incrojure.REPL
,然后将其作为REPL的名称空间