是否可以从emacs / cider中同时使用clj + cljs REPL两种方式?

问题描述 投票:0回答:2

[作为Clojurian的初学者,我可能需要一些帮助,以了解是否有任何方法可以解决使用苹果酒REPL的痛苦点。

上下文:我有一个全栈应用程序(后端上的limunius +前端上的re-agent / figwheel)。我从emacs / Cider Repl启动服务器,并且可以从该REPL访问正在运行的服务器的所有名称空间(非常方便)。

在另一个标签中,我运行:

lein figwheel
Figwheel: Cutting some fruit, just a sec ...
Figwheel: Validating the configuration found in project.clj
Figwheel: Configuration Valid ;)
Figwheel: Starting server at http://0.0.0.0:3449
Figwheel: Watching build - app
Compiling build :app to "target/cljsbuild/public/js/app.js" from ["src/cljs" "src/cljc" "env/dev/cljs"]...
Successfully compiled build :app to "target/cljsbuild/public/js/app.js" in 4.113 seconds.
Figwheel: Starting CSS Watcher for paths  ["resources/public/css"]
Figwheel: Starting nREPL server on port: 7002
Launching ClojureScript REPL for build: app

所有cljs命名空间都可从此figwheel REPL / tab访问,但未连接到Cider / emacs,所以我只能在其中复制和粘贴。

是否有一种简单的方法将两个REPL都包含在emacs中并在它们之间快速切换?

或者您的典型工作流程是什么?您是否同时使用后端和前端REPL?抱歉,我只是在学习,所以我都需要:)

emacs clojure clojurescript cider figwheel
2个回答
0
投票

您绝对可以使用CIDER同时连接CLJ和CLJS。检查CIDER文档中的Managing Connections部分。 TL; DR:您可以使用C-c C-x c m呼叫cider-connect-clj&cljs

话虽如此,对于CLJS来说,我通常是一个懒惰者,我在保存时离开了figwheel来重新编译,我检查前端是否看起来像我要执行的操作。

Edit:我的设置通常是两个垂直框架,左侧为代码,右侧为REPL,大多数情况下,评估与C-c C-e内联的表达式,如果我需要跨越多行的内容,则可以编写它在名称空间末尾的(comment ,,,)块上。我不经常使用C-C C-z在代码和REPL之间切换。

[另外:我在最小的设置下就使用了Ubuntu 18.04中的普通Emacs 25,但是我遇到了使用Spacemacs拥有更为复杂的工作流程的人们。


0
投票

当然可以!首先通过在端口7002(cider-connect-clj)上打开的Figwheel: Starting nREPL server on port: 7002连接到repl,然后在弹出的repl迷你缓冲区中运行(figwheel-sidecar.repl-api/cljs-repl)。然后,您将具有与clj repl一起运行的功能齐全的cljs repl-您可以使用cider-switch-to-repl-buffer在它们之间切换(在clj文件中将被带到clj repl,在cljs文件中将被带到cljs repl)

© www.soinside.com 2019 - 2024. All rights reserved.