Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行“全部刷新”后Clojure REPL环境丢失_Clojure_Leiningen - Fatal编程技术网

运行“全部刷新”后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的名称空间