cider-connect-clj не может подключиться к nrepl.server/start-server

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"))

person Nutritioustim    schedule 05.02.2021    source источник


Ответы (1)


Похоже, вы запускаете nREPL на порту 1234, но затем Emacs пытается подключиться к порту 6776. Может ли быть причина в этом?

При запуске cider-connect-clj вы можете выбрать порт, к которому хотите подключиться. Попробуйте изменить порт по умолчанию на 1234 и посмотрите, поможет ли это.

person rap1ds    schedule 12.02.2021