Cider: حدد الاسم المستعار deps.edn

تم إنشاؤها على ٢ أغسطس ٢٠١٨  ·  5تعليقات  ·  مصدر: clojure-emacs/cider

سلوك متوقع

يمكنني بسهولة تعيين مجموعة افتراضية من الأسماء المستعارة لـ deps.edn لاستخدامها عند تنفيذ cider-jack-in

السلوك الفعلي

لا يمكنني تعيين مجموعة افتراضية من الأسماء المستعارة لاستخدامها مع cider-jack-in

خطوات إعادة إنتاج المشكلة

لدي deps.edn مثل ذلك:

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

لتجنب تحميل أقسام الخادم أثناء إنشاء الكود من جانب العميل ، اضطررت إلى نقلهم إلى الاسم المستعار الخاص بهم وترك خريطة الأقسام ذات المستوى الأعلى فارغة.

أود أن أكون قادرًا بطريقة ما على تحديد مجموعة من الأسماء المستعارة لاستخدامها مع هذا المشروع المحدد ، بحيث يعمل cider-jack-in clojure مع إضافة -A:server:client:dev إليه.

معلومات البيئة والإصدار

معلومات إصدار CIDER

CIDER 0.18.0snapshot (الحزمة: 20180731.1750)
كلوجور 1.9.0

;; CIDER 0.12.0snapshot (package: 20160331.421), nREPL 0.2.12
;; Clojure 1.8.0, Java 1.8.0_31

نسخة لين / التمهيد

غير متاح

نسخة إيماكس

إيماكس 25.3.1

نظام التشغيل

macOS 10.12.16

التعليق الأكثر فائدة

بالنسبة للمشاريع ، فقط ضع التكوين الخاص بالمشروع في ملف .dir-locals.el . هذه هي آلية Emacs القياسية للحصول على تكوين خاص بالمشروع. انظر http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html

ال 5 كومينتر

سأضع هذا ببساطة في cider-clojure-cli-global-options :

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

راجع للشغل ، سيؤدي استدعاء cider-jack-in ببادئة arg إلى مطالبتك أيضًا بأية معلمات إضافية (على سبيل المثال ، C-u C-c C-x j j ).

شكرًا لك ، أعتقد أن البادئة arg ( SPACE u SPACE m ' في spacemacs) هي ما سأستخدمه.

ما زلت أعتقد أن وجود طريقة ما للإشارة إلى هذا لمشروع (ربما مفتاح في deps.edn؟) سيكون أمرًا رائعًا ولكن إضافة -A:server:client:dev ليس غير معقول.

بالنسبة للمشاريع ، فقط ضع التكوين الخاص بالمشروع في ملف .dir-locals.el . هذه هي آلية Emacs القياسية للحصول على تكوين خاص بالمشروع. انظر http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html

لقد جربت هذا على a89b694cc3cec0294d84bf9dbe1163ad2373e8db وحصلت على الخطأ:
Wrong type argument: listp, "-A:dev" . حاولت أيضًا استخدام (setq cider-clojure-cli-global-options '("-A:dev")) لكن ذلك فشل مع خطأ مشابه: (wrong-type-argument listp cider-clojure-cli-global-options)

@ ro6 يمكنك العثور على أمثلة في البرية باستخدام grep.app: https://grep.app/search؟

لقد راجعت للتو ملف dir-locals.el التالي:

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

ويتيح لي الاستيلاء الوصول إلى الاسم المستعار غير المتزامن كما تم التحقق منه بواسطة:

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

لقد تحققت أيضًا من الالتزام الذي أدرجته a89b694 وعمل كل شيء بشكل جيد بالنسبة لي هناك أيضًا. أخيرًا ، جربت (setq cider-clojure-cli-global-options "A:cljs") وتمكنت أيضًا من بدء التشغيل بنجاح بالاسم المستعار:

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

هل يمكنك الخوض في المزيد من الخطوات لما تحاول؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات