سؤال

عندما أبدأ Swank عبر Lininingen ، يقبل اتصال الوحل التالي ويذهب. أرغب حقًا في الاتصال بعدة حالات EMACs بنفس مثيل Swank. هل يمكنني فعل هذا؟ هل يمكنني القيام بذلك من خلال لينينينج؟

هل كانت مفيدة؟

المحلول

حسنًا ، يمكنك بدء الوحل الأول بشكل طبيعي ، ثم (require 'swank.swank) (أو ربما يكون ذلك مطلوبًا افتراضيًا ... لست متأكدًا) ، افعل (swank.swank/start-repl port) مع port تم استبداله ببعض أرقام المنفذ ويمكنك توصيل مثيل ثانٍ من الوحل إلى هذا الاستبدال الذي تم إنشاؤه حديثًا.

لقد فعلت ذلك الآن ، مع تواصل واحد من emacs بإصدار REPL lein swank, (swank.swank/start-repl 4006) في أول emacs ، MX Slime-Connect في EMACs الثانية (توفير 4006 كرقم المنفذ) ، ثم يمكنني القيام بذلك:

; first Emacs 
(def x 5)

; second Emacs
x ; evaluates to 5
(def y 1234)

; first Emacs
y ; evaluates to 1234

رائع ، لا؟ :-)

تحديث: أوه ، راجع للشغل - (swank.swank/start-repl) يبدأ الاسترداد الجديد في الخلفية و لا قم بحظر Reply الذي تستخدمه لتنفيذه. قيمة الإرجاع nil, ، لذلك لست متأكدًا من كيفية قتل الاستبدال الجديد ...

(تحديث 2: إزالة شيء لم أعد متأكدًا منه.)

تحديث 3: على الرغم من أن الطريقة أعلاه عامة تمامًا من حيث أنها تجعل من الممكن توصيل عميل إضافي بغض النظر عن كيفية بدء مثيل Swank الأصلي ، فقد يكون من المفيد بدء Swank مع الأمر

lein swank 4005 "localhost" :dont-close true

يجب ذكر وسيطات اسم المنفذ والاستضافة بشكل صريح إذا :dont-close true هو أن يتم تمريرها. 4005 و "localhost" هي القيم الافتراضية.

سيتيح ذلك الانفصال عن Swank وإعادة الاتصال لاحقًا ، ولكن أيضًا لتوصيل عدد من العملاء في وقت واحد.

(لاحظت للتو أن هذا ممكن أثناء الرد هذا السؤال الجديد حول كيفية تمكين إعادة التوصيل من Lininingen STARTED SWANK ؛ لقد حدث لي فجأة للتحقق إذا :dont-close من شأنه أن يتسبب أيضًا في قبول روابط متزامنة - وهي كذلك.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top