如何让cljs文件通过fighter.vim与figwheel repl一起工作?

vdgimpew  于 2022-11-11  发布在  其他
关注(0)|答案(3)|浏览(124)

我有一个关于ClojureScript的项目,我使用vim进行代码编辑,所以我想在编辑器中访问repl,这是可以使用fireplace. vim访问的。
如果你有一个全新的平面项目,它会很好地工作--你只需打开目录,启动clojure repl,在同一目录中打开vim,创建一个表达式,并使用cpp对它求值。
https://youtu.be/vHDLDNoAdLE
但是当我使用figwheel项目时,我想连接到figwheel repl以便从cljs文件中计算一些东西,所以我启动了一个figwheel,它最终在端口7888上启动repl,并使用:Connect命令连接到带有firewall的repl,它只适用于clj文件,不适用于cljs。
https://youtu.be/ue42Yh0v6UQ
当我试图计算.cljs文件firewall中的一个表达式时,抛出以下错误:
处理函数37_printop 1时检测到错误..37_opfunc[35].. firewall #客户端:第10行:E605:未捕获异常:发生异常错误:无法找到类
有没有人知道如何使它工作(壁炉+ .cjls文件)?

nmpmafwu

nmpmafwu1#

这个问题是在壁炉。vim插件
在firest.vim中的第323行

let response = connection.eval("((or (resolve 'cider.piggieback/cljs-repl)"

必须是行:

let response = connection.eval("((or (resolve 'cider.piggieback/wrap-cljs-repl)"

因为cider.piggieback在第299行定义了wrap-cljs-repl函数:

(defn wrap-cljs-repl [handler]
mw3dktmi

mw3dktmi2#

您是否“Piggiebacked”(“在nREPL会话之上启用ClojureScript REPL”)将Fireplace连接到Figwheel REPL?

:Piggieback (figwheel-sidecar.repl-api/repl-env)

请访问https://github.com/bhauman/lein-figwheel/wiki/Using-the-Figwheel-REPL-with-Vim#still-in-vim-piggieback-on-clojurescript
ClassNotFound Exception cemmerick.piggieback相关:
您必须将cemerick.piggieback包含在您的project.cljprofiles.clj中。请参阅https://github.com/nrepl/piggieback

:profiles {:dev {:dependencies [[com.cemerick/piggieback "0.2.1"]
                                [figwheel-sidecar "0.5.18"]]
                 :repl-options {:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}}}
4ngedf3f

4ngedf3f3#

下面是我采取了一系列步骤,使工作figwheel REPL与vim壁炉:
1.将这些依赖项添加到/home/{username}/.clojure/deps.edn

...
  :aliases {:nrepl
            {:extra-deps
             {nrepl/nrepl {:mvn/version "0.6.0"}
              cider/cider-nrepl {:mvn/version "0.23.0"}
              cider/piggieback {:mvn/version "0.4.2"}}}}
...

1.将这些项目添加到项目中:

...
 :deps  {com.bhauman/figwheel-main {:mvn/version "0.2.3"}
         figwheel-sidecar          {:mvn/version "0.5.19"}}
...

1.使用下面的命令从终端运行项目:

clj -R:nrepl -m nrepl.cmdline --middleware "[cider.nrepl/cider-middleware cider.piggieback/wrap-cljs-repl]"

1.使用以下命令从vim连接到nREPL:

:Connect nrepl://localhost:{port}

1.启动figwheel REPL并连接到它:

:CljEval (do (require 'figwheel.main.api) (figwheel.main.api/start "dev"))
:CljEval (do (use 'figwheel.main.api) (figwheel.main.api/cljs-repl "dev"))

相关问题