2

A)我遇到了一个问题,Cider 不能cider-connect-clj(或cider-connect-cljs)连接到我在我的应用程序代码中启动的nREPL 服务器。草书也不行。它必须是需要包含的简单配置或中间件。但我一直在看这段代码太久了。我错过了什么?

我有一个看起来像这样的 Clojure 文件。

(ns some.namespace
  (:require nrepl.server
            cider.nrepl))

(nrepl.server/start-server
  :port 1234
  :handler
  (fn [_]
    (nrepl.server/default-handler cider.nrepl/cider-middleware)))

nrepl.server/start-server开始正常。在 Emacs 中,我可以通过调用cider-connect-clj(或cider-connect-cljs)进行连接。但随后 REPL 无法根据“同步”请求进行初始化。

一世。Emacs 控制台

[nREPL] Direct connection to localhost:6776 established
nrepl-send-sync-request: Sync nREPL request timed out (op clone id 1 time-stamp 2021-02-04 23:13:46.789763000)

ii. nREPL 控制台

[WARNING] No nREPL middleware descriptor in metadata of null, see nrepl.middleware/set-descriptor!

B)我实际上正在运行Figwheel-Main并连接一个 nREPL,用于 Clojurescript 连接。全部在我的 Clojure 应用程序中。

;; λ clj -A:dev -m some.namespace
:dev
{:extra-paths ["dev" "test"]
 :extra-deps {org.clojure/clojure       {:mvn/version "1.10.0"}
              org.clojure/clojurescript {:mvn/version "1.10.520"}
              com.bhauman/figwheel-main {:mvn/version "0.2.0"}
              nrepl/nrepl               {:mvn/version "0.8.3"}
              cider/cider-nrepl         {:mvn/version "0.25.8"}
              cider/piggieback          {:mvn/version "0.4.2"}}}

我认为 Figwheel 部分不会影响苹果酒的连接尝试。但我将它包括在内只是为了上下文。

(defn -main [& args]

  ;; Start Figwheel Server
  (figwheel.main.api/start
    {:mode :serve} "dev")


  ;; Start nREPL
  (def server (nrepl.server/start-server
                :port 1234
                :handler
                (fn [_]
                  (nrepl.server/default-handler cider.nrepl/cider-middleware))))


  ;; Start Figwheel REPL
  (fig/cljs-repl "dev"))
4

1 回答 1

2

似乎您正在端口 1234 上启动 nREPL,但随后 Emacs 试图连接到端口 6776。这可能是原因吗?

运行时,cider-connect-clj 您可以选择要连接的端口。尝试将默认端口更改为 1234,看看是否有帮助。

于 2021-02-12T06:47:32.193 回答