Que je peux facilement définir une collection par défaut d'alias deps.edn à utiliser lorsque j'exécute cider-jack-in
Je ne parviens pas à définir une collection par défaut d'alias à utiliser avec cider-jack-in
J'ai un deps.edn comme ceci :
{: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"]}}}
Pour éviter de charger les deps du serveur lors de la création du code côté client, j'ai dû les déplacer vers leur propre alias et laisser la carte des deps de niveau supérieur vide.
J'aimerais pouvoir spécifier en quelque sorte un ensemble d'alias à utiliser avec ce projet particulier, afin que cider-jack-in
exécute clojure
avec -A:server:client:dev
ajouté.
CIDRE 0.18.0 instantané (colis : 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
Je mettrais simplement ceci dans cider-clojure-cli-global-options
:
(setq cider-clojure-cli-global-options "-A:server:client:dev")
.
Btw, invoquer cider-jack-in
avec un préfixe arg vous demandera également des paramètres supplémentaires (par exemple C-u C-c C-x j j
).
Merci, je pense que le préfixe arg ( SPACE u SPACE m '
dans spacemacs) est ce que je vais utiliser.
Je pense toujours qu'avoir un moyen de l'indiquer pour un projet (peut-être une clé dans deps.edn ?) serait bien, mais ajouter le -A:server:client:dev
n'est pas déraisonnable.
Pour les projets, placez simplement la configuration spécifique au projet dans un fichier .dir-locals.el
. C'est le mécanisme standard d'Emacs pour avoir une configuration spécifique au projet. Voir http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html
J'ai essayé ceci sur a89b694cc3cec0294d84bf9dbe1163ad2373e8db et j'ai obtenu l'erreur :
Wrong type argument: listp, "-A:dev"
. J'ai également essayé (setq cider-clojure-cli-global-options '("-A:dev"))
mais cela a échoué avec une erreur similaire : (wrong-type-argument listp cider-clojure-cli-global-options)
@ro6, vous pouvez trouver des exemples dans la nature en utilisant grep.app : https://grep.app/search?q=cider-clojure-cli-global-options
Je viens de vérifier avec le fichier dir-locals.el suivant :
((nil
(cider-clojure-cli-global-options . "-A:async")))
et la connexion me donne accès à l'alias asynchrone tel que vérifié par :
;; 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>
J'ai également vérifié le commit que vous avez listé a89b694
et tout a bien fonctionné pour moi là-bas également. Enfin, j'ai essayé (setq cider-clojure-cli-global-options "A:cljs")
et j'ai également réussi à démarrer avec l'alias :
;; Startup: /usr/local/bin/clojure -A:cljs -Sdeps ...
Pouvez-vous aller dans plus d'étapes de ce que vous essayez?
Commentaire le plus utile
Pour les projets, placez simplement la configuration spécifique au projet dans un fichier
.dir-locals.el
. C'est le mécanisme standard d'Emacs pour avoir une configuration spécifique au projet. Voir http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html