Cider: Deps.edn-Alias ​​angeben

Erstellt am 2. Aug. 2018  ·  5Kommentare  ·  Quelle: clojure-emacs/cider

Erwartetes Verhalten

Dass ich leicht eine Standardsammlung von deps.edn-Aliasen festlegen kann, die verwendet werden sollen, wenn ich cider-jack-in ausführe

Tatsächliches Verhalten

Ich kann keine Standardsammlung von Aliasen für die Verwendung mit cider-jack-in festlegen

Schritte zum Reproduzieren des Problems

Ich habe eine deps.edn wie folgt:

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

Um das Laden von Server-Deps beim Erstellen des clientseitigen Codes zu vermeiden, musste ich sie in ihren eigenen Alias ​​verschieben und die Top-Level-Deps-Map leer lassen.

Ich möchte in der Lage sein, irgendwie eine Reihe von Aliasnamen anzugeben, die mit diesem speziellen Projekt verwendet werden sollen, sodass cider-jack-in clojure mit hinzugefügtem -A:server:client:dev ausführen würde.

Umgebungs- und Versionsinformationen

CIDER-Versionsinformationen

CIDER 0.18.0Schnappschuss (Paket: 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

Lein/Boot-Version

N / A

Emacs-Version

Emacs 25.3.1

Betriebssystem

macOS 10.12.16

Hilfreichster Kommentar

Für Projekte legen Sie einfach die projektspezifische Konfiguration in eine .dir-locals.el Datei. Das ist der Standardmechanismus von Emacs, um eine projektspezifische Konfiguration zu haben. Siehe http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html

Alle 5 Kommentare

Ich würde das einfach in cider-clojure-cli-global-options :

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

Übrigens, wenn Sie cider-jack-in mit einem Präfix arg aufrufen, werden Sie auch nach zusätzlichen Parametern gefragt (zB C-u C-c C-x j j ).

Danke, ich denke, das Präfix arg ( SPACE u SPACE m ' in spacemacs) ist das, was ich verwenden werde.

Ich denke immer noch, dass es schön wäre, dies für ein Projekt anzugeben (vielleicht ein Schlüssel in deps.edn?), aber das Hinzufügen von -A:server:client:dev ist nicht unvernünftig.

Für Projekte legen Sie einfach die projektspezifische Konfiguration in eine .dir-locals.el Datei. Das ist der Standardmechanismus von Emacs, um eine projektspezifische Konfiguration zu haben. Siehe http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html

Ich habe dies auf a89b694cc3cec0294d84bf9dbe1163ad2373e8db versucht und den Fehler erhalten:
Wrong type argument: listp, "-A:dev" . Ich habe auch (setq cider-clojure-cli-global-options '("-A:dev")) versucht, aber das ist mit einem ähnlichen Fehler fehlgeschlagen: (wrong-type-argument listp cider-clojure-cli-global-options)

@ro6 Beispiele in freier Wildbahn finden Sie mit grep.app: https://grep.app/search?q=cider-clojure-cli-global-options

Ich habe gerade mit der folgenden dir-locals.el-Datei nachgesehen:

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

und das Einstecken gibt mir Zugriff auf den asynchronen Alias, wie überprüft durch:

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

Ich habe mir auch das Commit angesehen, das Sie a89b694 aufgelistet haben, und auch dort hat alles gut funktioniert. Schließlich habe ich (setq cider-clojure-cli-global-options "A:cljs") ausprobiert und konnte auch erfolgreich mit dem Alias ​​starten:

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

Können Sie weitere Schritte von dem ausführen, was Sie versuchen?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen