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