Cider: Especifique el alias deps.edn

Creado en 2 ago. 2018  ·  5Comentarios  ·  Fuente: clojure-emacs/cider

Comportamiento esperado

Que puedo configurar fácilmente una colección predeterminada de alias deps.edn para usar cuando ejecuto cider-jack-in

Comportamiento real

No puedo configurar una colección predeterminada de alias para usar con cider-jack-in

Pasos para reproducir el problema

Tengo un deps.edn así:

{: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 cargar departamentos del servidor mientras se creaba el código del lado del cliente, tuve que moverlos a su propio alias y dejar el mapa de departamentos de nivel superior en blanco.

Me gustaría poder especificar de alguna manera un conjunto de alias para usar con este proyecto en particular, de modo que cider-jack-in ejecute clojure con -A:server:client:dev agregado.

Información de entorno y versión

Información de la versión de CIDER

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

Versión Lein / Boot

N / A

Versión de Emacs

Emacs 25.3.1

Sistema operativo

macOS 10.12.16

Comentario más útil

Para proyectos, simplemente coloque la configuración específica del proyecto en un archivo .dir-locals.el . Ese es el mecanismo estándar de Emacs para tener una configuración específica del proyecto. Consulte http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html

Todos 5 comentarios

Simplemente pondría esto en cider-clojure-cli-global-options :

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

Por cierto, la invocación de cider-jack-in con un prefijo arg también le solicitará parámetros adicionales (por ejemplo, C-u C-c C-x j j ).

Gracias, creo que el prefijo arg ( SPACE u SPACE m ' en spacemacs) es lo que usaré.

Sigo pensando que sería bueno tener alguna forma de indicar esto para un proyecto (¿tal vez una clave en deps.edn?), Pero agregar el -A:server:client:dev no es irrazonable.

Para proyectos, simplemente coloque la configuración específica del proyecto en un archivo .dir-locals.el . Ese es el mecanismo estándar de Emacs para tener una configuración específica del proyecto. Consulte http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html

Probé esto en a89b694cc3cec0294d84bf9dbe1163ad2373e8db y obtuve el error:
Wrong type argument: listp, "-A:dev" . También probé (setq cider-clojure-cli-global-options '("-A:dev")) pero falló con un error similar: (wrong-type-argument listp cider-clojure-cli-global-options)

@ ro6 puede encontrar ejemplos en la naturaleza usando grep.app: https://grep.app/search?q=cider-clojure-cli-global-options

Acabo de verificar con el siguiente archivo dir-locals.el:

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

y conectarme me da acceso al alias asíncrono 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> 

También revisé el compromiso que enumeraste a89b694 y todo funcionó bien para mí allí también. Finalmente probé (setq cider-clojure-cli-global-options "A:cljs") y también pude iniciar con éxito con el alias:

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

¿Puedes dar más pasos de lo que estás intentando?

¿Fue útil esta página
0 / 5 - 0 calificaciones