2

nrepl-middleware wrap-javadocの api docsでは、「ローカルパスをスペースで区切ったパスのリストを受け入れる」と書かれています

これを設定するにはどうすればよいですか?

私は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 ミドルウェアが得られません

4

1 に答える 1

1

githubページのnrepl-middlewareの例を見ると、sbould:nrepl-middlewareのベクトルはミドルウェア関数のベクトルであり、文字列パスを渡すと、例外「Stringをキャストできません」であることがわかります。 IFn」。

local-pathsに関する限り、これはjava-docリクエスト自体でnreplクライアントによって送信されるものです。Emacsでローカルパスを設定するには、次のコマンドを呼び出します。

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

于 2013-03-04T09:02:21.733 に答える