2013-03-03 32 views
2

在api文檔nrepl中間件wrap-javadoc它說,它'接受本地路徑空間單獨的路徑列表'我如何設置ritz.nrepl.middleware /包裹式的javadoc本地路徑?

我該如何設置?

我試着在我profiles.clj

{:user {:plugins [] 
    :jvm-opts ["-Xmx4G"] 
    :injections [(require 'clojure.repl)] 
    :warn-on-reflection true 
    :dependencies [[ritz/ritz-nrepl-middleware "0.7.0"]] 
    :repl-options {:nrepl-middleware 
        [ritz.nrepl.middleware.javadoc/wrap-javadoc :local-paths "/usr/local/share/javadocs/7/docs/api"] 
        }}} 

以下但這將導致以下異常,當我執行nrepl-jack-in

Starting nREPL server... 
Mark set 
error in process sentinel: nrepl-server-sentinel: Could not start nREPL server: Reflection warning, NO_SOURCE_PATH:1:483 - reference to field getLocalPort can't be resolved. 
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to clojure.lang.IFn 
    at clojure.core$comp$fn__4166.doInvoke(core.clj:2347) 
    at clojure.lang.RestFn.invoke(RestFn.java:408) 
    at clojure.tools.nrepl.server$default_handler.doInvoke(server.clj:89) 
    at clojure.lang.RestFn.invoke(RestFn.java:436) 
    at user$eval1192.invoke(NO_SOURCE_FILE:1) 
    at clojure.lang.Compiler.eval(Compiler.java:6619) 
    at clojure.lang.Compiler.eval(Compiler.java:6609) 
    at clojure.lang.Compiler.eval(Compiler.java:6582) 
    at clojure.core$eval.invoke(core.clj:2852) 
    at clojure.main$eval_opt.invoke(main.clj:308) 
    at clojure.main$initialize.invoke(main.clj:327) 
    at clojure.main$null_opt.invoke(main.clj:362) 
    at clojure.main$main$fn__6661.invoke(main.clj:440) 
    at clojure.main$main.doInvoke(main.clj:437) 
    at clojure.lang.RestFn.invoke(RestFn.java:421) 
    at clojure.lang.Var.invoke(Var.java:419) 
    at clojure.lang.AFn.applyToHelper(AFn.java:163) 
    at clojure.lang.Var.applyTo(Var.java:532) 
    at clojure.main.main(main.java:37) 
Subprocess failed 

如果我在一個地圖包:local-paths "..."我不得到任何的javadoc中間件

回答

1

如果你看一下它的GitHub頁面上的nrepl中間件的例子,你會發現,矢量:nrepl-middleware sbould是這裏因爲你是傳遞一個字符串路徑中間件功能的載體,這就是爲什麼例外「字符串不能轉換爲干擾素」。

至於本地路徑關注的是什麼東西這是由nrepl客戶端在java-doc的請求本身發送。你可以通過調用設置在Emacs本地路徑:

(setq nrepl-ritz-javadoc-local-paths (list "/usr/local/share/javadocs/7/docs/api"))

+0

,我不得不使用var''nrepl-Javadoc的本地paths''(即沒有 '麗茲'),但似乎是工作。我還沒有發生的事情,如果我''nrepl - 麗思插孔in''而不是''nrepl插孔-in''實驗。這是待辦事項列表... – sw1nn 2013-03-04 10:02:16

+0

麗思加強與像調試等功能的nrepl,所以如果你打的異常你得到一個斷點,並在每次調用等檢查本地變量 – Ankur 2013-03-04 10:59:25