Cider: Spécifiez l'alias deps.edn

Créé le 2 août 2018  ·  5Commentaires  ·  Source: clojure-emacs/cider

Comportement prévisible

Que je peux facilement définir une collection par défaut d'alias deps.edn à utiliser lorsque j'exécute cider-jack-in

Comportement réel

Je ne parviens pas à définir une collection par défaut d'alias à utiliser avec cider-jack-in

Étapes pour reproduire le problème

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é.

Informations sur l'environnement et la version

Informations sur la version du CIDRE

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

Version Lein/Botte

N / A

Version Emacs

Emacs 25.3.1

Système opérateur

macOS 10.12.16

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

Tous les 5 commentaires

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?

Cette page vous a été utile?
0 / 5 - 0 notes