2012-09-09 8 views
11

Bei der Verwendung der Leiningen REPL, gibt es eine Möglichkeit, eine Datei oder ns automatisch in den repl on file save zu laden. Zur Zeit lade ich die ns neu, indem ich folgendes in das repl - (use 'sample.ns :reload-all) schreibe.So laden Sie einen Namespace bei Dateispeicherung in Leiningen REPL

Kann ich es aber automatisch beim Speichern von Dateien neu laden lassen?

+3

Verwenden Sie Emacs? Denn wenn dies der Fall ist, ist dies ein unterstütztes Feature von Slime/Swank: http://stackoverflow.com/questions/2596222/how-to-reload-files-upon-save-when-using-swankleiningenemacs – noahlz

Antwort

0

Clojure-Watch Bibliothek tut, was Sie brauchen. Es beobachtet eine Datei und führt einige Aktionen aus. In Ihrem Fall wäre eine Aktion das erneute Laden eines Namespace aus dieser Datei. Außerdem muss ein Anfangscode geschrieben werden, um den Beobachter zu starten.

Dieser Weg scheint mir ein bisschen kompliziert. Plain REPL direkt von Lein gestartet ist kein effektiver Weg, um zu entwickeln. Verwenden Sie lieber einen Clojure-freundlichen Editor wie Emacs oder Lightable.

0

Die meisten gängigen Editoren unterstützen benutzerdefinierte Hotkey-Bindungen und verfügen über ein Clojure-Plugin, mit dem Sie sich über das Netzwerk (über "nREPL") mit der aktiven REPL verbinden können. Persönlich benutze ich vim und verwende deshalb vim-fireplace für diesen Zweck.

Dies bedeutet, dass Sie einen benutzerdefinierten Hotkey zum erneuten Laden der Datei haben können, die Sie bearbeiten, während Sie sie bearbeiten. Von dort ist es in der Regel trivial, einen benutzerdefinierten On-Save-Hook hinzuzufügen, der das Neuladen durchführt.