Que puedo configurar fácilmente una colección predeterminada de alias deps.edn para usar cuando ejecuto cider-jack-in
No puedo configurar una colección predeterminada de alias para usar con cider-jack-in
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.
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
N / A
Emacs 25.3.1
macOS 10.12.16
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?
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