2013-08-31 7 views
11

Ich habe einige Clojure-Funktionen, die ich vorinstalliert haben möchte, wenn ich die Clojure REPL starte. Die Funktionen sind nicht sehr nützlich, es sei denn, Sie verwenden sie im Kontext einer REPL.Wie lädt man eine Clojure-Datei im Leiningen repl auf?

Wenn es hilft, benutze ich normalerweise leiningen, um eine clojure REPL für mich zu starten.

Wie kann ich Clojure (oder Leiningen, wenn es nicht über Flat Clojure verfügbar ist) sagen, eine Clojure-Datei mit diesen Definitionen für mich vorab zu laden?

Antwort

11

Es gibt mehrere Möglichkeiten, dies in the leiningen sample project einer meiner Lieblings beschriebenen Methoden zu tun ist, um den Code setzen Sie in der Standard-repl Namespace wollen in

/path/to/project/dev/user.clj:

(ns user) 
(def foo 42) 

und eine Zeile wie diese in die project.clj Datei hinzufügen:

(defproject hello "0.1.0-SNAPSHOT" 
    :description "FIXME: write description" 
    :url "http://example.com/FIXME" 
    :license {:name "Eclipse Public License" 
      :url "http://www.eclipse.org/legal/epl-v10.html"} 
    :dependencies [[org.clojure/clojure "1.5.1"]] 
    :source-paths ["dev"]) 

Dies macht deutlich, dass dies für Entwickler, während s bis es in den Standard-Namespace geladen wird.

; nREPL 0.1.6 
user> foo 
42 
+3

+1 für den hervorragenden Link:

Wenn Sie nrepl-jack-in Form Emacs oder "lein repl" bildet den Shell ausführen, sollten Sie mit Ihrem Code geladen mit einem user> Namespace begrüßt. Könnten Sie in Ihrer Antwort auch einen Weg finden, dies für jedes Projekt zu tun (zB mit '~/.lein/profiles.clj') und auch annehmen, dass ich keine emacs verwende (dh kein 'nrepl-jack-in ', nur der normale Terminalbildschirm)? – djhaskin987

+2

Ein Teil davon wurde anwser hinzugefügt, und für Einstellungen, die global verwendet werden können, ist es vorzuziehen: repl-options: init in einem Profil in Ihrer .lein/profiles.clj zu verwenden, indem man einen User-Namespace definiert. –

+1

Ich denke, es wäre passender, wenn Sie den zusätzlichen Eintrag ': source-paths' in ein Profil einfügen. Das ': dev' Profil wäre meiner Meinung nach besonders geeignet. Wie die Antwort lautet, steht welcher Code unter "dev", während er immer noch im Projekt enthalten ist. – Geoff

Verwandte Themen