كيفية إزالة اسم مساحة الاسم من سوبليميريبل (كلوجور) موجه?

StackOverflow https://stackoverflow.com//questions/22009370

سؤال

أنا باستخدام كلوجور سوبليمريبل وأود أن أعرف ما إذا كان يمكنني إزالة اسم مساحة الاسم من موجه

حاليا بلدي موجه يشبه هذا:

foo.core=>

في كثير من الأحيان لسبب ما تضاعف:

foo.core=>foo.core=>

أود أن أكون قادرا على الحصول على هذا فقط:

>

لا يمكنني العثور على المكان الذي يتم فيه تعريف هذا السلوك في حزمة سوبليميريبل

أي مساعدة ترحيب

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

المحلول

بقدر ما أستطيع أن أقول,lein repl يعترف أي حجة لوضع موجه.علاوة على ذلك ، فإن المعيار tools.nrepl, ، كما تستخدم من قبل lein repl, ، لديه القدرة على ضبط الموجه ، لكنه مخفي داخل وظيفة خاصة في cmdline.clj ولا يتعرض لأي وظيفة عامة.لذا فإن الكشف عن هذه الوظيفة يعني تعديل كل من لينينغنت والأدوات.نريبل.

بدلا من ذلك ، فإن الطريقة التي يمكن الوصول إليها حاليا لتعيين المطالبة هي كوسيطة للدالة clojure.main/repl.لم يتم إعداد سامية للتفاعل مباشرة مع هذا ، لأنه تم إعداده لاستخدام nrepl بروتوكول للتواصل مع كلوجور.

لذلك ، إلا إذا كنت في عداد المفقودين شيء ، خياراتك هي:

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

نصائح أخرى

أعلم أن هذا سؤال قديم ، لكن هناك إجابة أفضل من الإجابة المقبولة.في الخاص بك project.clj ملف ، يمكنك تعيين :repl-options مثل ذلك:

(defproject my-stuff "0.1.0"
  :description "Leiningen Tutorial Project"
  :url "http://example.com/FIXME"
  :license {:name "MIT"
            :url "http://opensource.org/licenses/MIT"}
  :dependencies [[org.clojure/clojure "1.8.0"]]
  :main ^:skip-aot my-stuff.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}}
  :repl-options {
    ;; custom prompt
    prompt (fn [ns] (str "> " ))
  }
)

في حالتك ، استبدل prompt (fn [ns] (str "> " )) مع prompt (str "> " ) ويجب أن تكون كل مجموعة.

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