يمكنني بسهولة تعيين مجموعة افتراضية من الأسماء المستعارة لـ 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 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
سأضع هذا ببساطة في 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 ...
هل يمكنك الخوض في المزيد من الخطوات لما تحاول؟
التعليق الأكثر فائدة
بالنسبة للمشاريع ، فقط ضع التكوين الخاص بالمشروع في ملف
.dir-locals.el
. هذه هي آلية Emacs القياسية للحصول على تكوين خاص بالمشروع. انظر http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html