Cider: Especifique o alias de deps.edn

Criado em 2 ago. 2018  ·  5Comentários  ·  Fonte: clojure-emacs/cider

Comportamento esperado

Que posso definir facilmente uma coleção padrão de aliases de deps.edn para usar quando executo cider-jack-in

Comportamento real

Não consigo definir uma coleção padrão de aliases para usar com cider-jack-in

Passos para reproduzir o problema

Eu tenho um deps.edn assim:

{: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"]}}}

Para evitar o carregamento de deps do servidor durante a construção do código do lado do cliente, tive que movê-los para seu próprio alias e deixar o mapa deps de nível superior em branco.

Eu gostaria de poder especificar de alguma forma um conjunto de apelidos para usar com este projeto em particular, de forma que cider-jack-in executasse clojure com -A:server:client:dev adicionado a ele.

Informação de ambiente e versão

Informação da versão CIDER

CIDER 0.18.0snapshot (pacote: 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

Versão Lein / Boot

N / D

Versão Emacs

Emacs 25.3.1

Sistema operacional

macOS 10.12.16

Comentários muito úteis

Para projetos, basta colocar a configuração específica do projeto em um arquivo .dir-locals.el . Esse é o mecanismo padrão do Emacs para ter configuração específica do projeto. Consulte http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html

Todos 5 comentários

Eu simplesmente colocaria isso em cider-clojure-cli-global-options :

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

A propósito, invocar cider-jack-in com um prefixo arg também solicitará qualquer parâmetro extra (por exemplo, C-u C-c C-x j j ).

Obrigado, acho que o prefixo arg ( SPACE u SPACE m ' em spacemacs) é o que vou usar.

Ainda acho que ter alguma maneira de indicar isso para um projeto (talvez uma chave em deps.edn?) Seria bom, mas adicionar -A:server:client:dev não é irracional.

Para projetos, basta colocar a configuração específica do projeto em um arquivo .dir-locals.el . Esse é o mecanismo padrão do Emacs para ter configuração específica do projeto. Consulte http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html

Tentei fazer isso em a89b694cc3cec0294d84bf9dbe1163ad2373e8db e recebi o erro:
Wrong type argument: listp, "-A:dev" . Também tentei (setq cider-clojure-cli-global-options '("-A:dev")) mas falhou com um erro semelhante: (wrong-type-argument listp cider-clojure-cli-global-options)

@ ro6 você pode encontrar exemplos na natureza usando grep.app: https://grep.app/search?q=cider-clojure-cli-global-options

Acabei de verificar com o seguinte arquivo dir-locals.el:

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

e a conexão me dá acesso ao alias assíncrono, conforme verificado por:

;; 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> 

Eu também verifiquei o commit que você listou a89b694 e tudo funcionou bem para mim lá também. Finalmente tentei (setq cider-clojure-cli-global-options "A:cljs") e também consegui iniciar com sucesso com o alias:

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

Você pode seguir mais etapas do que está tentando?

Esta página foi útil?
0 / 5 - 0 avaliações