Cider: 指定 deps.edn 别名

创建于 2018-08-02  ·  5评论  ·  资料来源: clojure-emacs/cider

预期行为

当我执行cider-jack-in时,我可以轻松设置默认的 deps.edn 别名集合

实际行为

我无法设置要与cider-jack-in一起使用的默认别名集合

重现问题的步骤

我有一个像这样的 deps.edn:

{:deps {}

 :paths ["src" "resources"]

 :aliases
 {:server {:extra-deps {org.clojure/clojure {:mvn/version "1.9.0"}
                        mount {:mvn/version "0.1.12"}
                        clj-time {:mvn/version "0.14.2"}
                        tick {:mvn/version "0.3.5"}
                        ring/ring-jetty-adapter {:mvn/version "1.6.3"}
                        cheshire {:mvn/version "5.8.0"}
                        garden {:mvn/version "1.3.3"}
                        com.taoensso/timbre {:mvn/version "4.10.0"}
                        hiccup {:mvn/version "1.0.5"}
                        org.clojure/tools.reader {:mvn/version "1.3.0"}
                        clj-http {:mvn/version "3.7.0"}
                        ring/ring-core {:mvn/version "1.6.3"}
                        org.clojure/core.async {:mvn/version "0.4.474"}}}

  :client {:extra-deps {thheller/shadow-cljs {:mvn/version "2.4.24"}
                        com.taoensso/timbre {:mvn/version "4.10.0"}}}

  :client/build {:main-opts ["-m" "shadow.cljs.devtools.cli" "release" "client"]}

  :dev {:extra-deps {binaryage/devtools {:mvn/version "0.9.10"}}
        :extra-paths ["dev"]}}}

为了避免在构建客户端代码时加载服务器 deps,我不得不将它们移动到它们自己的别名并将顶级 deps 映射留空。

我希望能够以某种方式指定一组别名用于此特定项目,以便cider-jack-in将运行clojure并添加-A:server:client:dev

环境 & 版本信息

CIDER 版本信息

CIDER 0.18.0snapshot(包:20180731.1750)
Clojure 1.9.0

;; CIDER 0.12.0snapshot (package: 20160331.421), nREPL 0.2.12
;; Clojure 1.8.0, Java 1.8.0_31

Lein/引导版本

不适用

Emacs 版本

Emacs 25.3.1

操作系统

macOS 10.12.16

最有用的评论

对于项目,只需将项目特定的配置放在.dir-locals.el文件中。 这是具有项目特定配置的标准 Emacs 机制。 请参阅http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html

所有5条评论

我只是把它放在cider-clojure-cli-global-options

(setq cider-clojure-cli-global-options "-A:server:client:dev")

顺便说一句,调用带有前缀 arg 的cider-jack-in还会提示您输入任何额外的参数(例如C-u C-c C-x j j )。

谢谢,我认为我将使用前缀 arg(spacemacs 中的SPACE u SPACE m ' )。

我仍然认为用某种方式为项目指明这一点(也许是 deps.edn 中的一个键?)会很好,但添加-A:server:client:dev并不是不合理的。

对于项目,只需将项目特定的配置放在.dir-locals.el文件中。 这是具有项目特定配置的标准 Emacs 机制。 请参阅http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html

我在 a89b694cc3cec0294d84bf9dbe1163ad2373e8db 上试过这个,得到了错误:
Wrong type argument: listp, "-A:dev" 。 我也试过(setq cider-clojure-cli-global-options '("-A:dev"))但失败了,出现了类似的错误: (wrong-type-argument listp cider-clojure-cli-global-options)

@ro6您可以使用 grep.app 在野外找到示例: https ://grep.app/search = cider-clojure-cli-global-options

我刚刚检查了以下 dir-locals.el 文件:

((nil
  (cider-clojure-cli-global-options . "-A:async")))

和 jacking 使我可以访问由以下人员验证的异步别名:

;; Connected to nREPL server - nrepl://localhost:50518
;; CIDER 0.26.1 (Nesebar), nREPL 0.8.0
;; ...
;;  Startup: /usr/local/bin/clojure -A:async -Sdeps '{:deps {nrepl {:mvn/version "0.8.0"} cider/cider-nrepl {:mvn/version "0.25.3"}}}' -m nrepl.cmdline --middleware '["cider.nrepl/cider-middleware"]'
user> 

我还检查了你列出的提交a89b694并且一切对我来说也很好。 最后我尝试了(setq cider-clojure-cli-global-options "A:cljs")并且也能够成功启动别名:

;;  Startup: /usr/local/bin/clojure -A:cljs -Sdeps  ...

你能进入更多你正在尝试的步骤吗?

此页面是否有帮助?
0 / 5 - 0 等级