I've been reading Mikael Sundberg's Getting started with compojure [1] and been wondering how to reload a function "display" (without Emacs and swank) so I don't have to restart repl. I'd love to update the function while running lein repl. Is it possible?* How?
I'm not sure if this is the question you are asking, but to reload a namespace in a repl, depending on whether you are use-ing the ns or require-ing it, there are :reload and :reload-all keyword arguments accepted:
> I've been reading Mikael Sundberg's Getting started with compojure [1] > and been wondering how to reload a function "display" (without Emacs > and swank) so I don't have to restart repl. I'd love to update the > function while running lein repl. Is it possible?* How?
> -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscribe@googlegroups.com<clojure%2Bunsubscribe@googlegroups.com > > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en
On Tue, Aug 31, 2010 at 4:44 PM, Mark Rathwell <mark.rathw...@gmail.com> wrote:
> I'm not sure if this is the question you are asking, but to reload a > namespace in a repl, depending on whether you are use-ing the ns or > require-ing it, there are :reload and :reload-all keyword arguments > accepted: > (require '[foo.something :as something] :reload) > (require '[foo.something :as something] :reload-all)
Thanks! That was it.
As we're at it, how does people reload functions while connected to a remote Clojure app from within Emacs? Do they also (require...:reload)? Is there a tutorial/article about it?
On 31 August 2010 16:52, Jacek Laskowski <ja...@laskowski.net.pl> wrote:
> As we're at it, how does people reload functions while connected to a > remote Clojure app from within Emacs? Do they also > (require...:reload)? Is there a tutorial/article about it?
One possibility is to open the remote file wherein the function in question is defined, modify it as appropriate, then either enter (require :reload ...) at the REPL or press C-c C-k (a SLIME / Swank binding) in the buffer with the modified code. (Or press C-c C-c with point inside the top-level form in question.)
Another possibility -- which is open even if the app has been packaged as a .jar / .war file -- is to switch to the appropriate namespace at the REPL and evaluate the appropriate defn; or maybe stay in the user namespace and use clojure.core/intern / alter-var-root / .bindRoot to replace the root binding of the Var holding the function.
> On 31 August 2010 16:52, Jacek Laskowski <ja...@laskowski.net.pl> wrote: >> As we're at it, how does people reload functions while connected to a >> remote Clojure app from within Emacs? Do they also >> (require...:reload)? Is there a tutorial/article about it?
> One possibility is to open the remote file wherein the function in > question is defined, modify it as appropriate, then either enter > (require :reload ...) at the REPL or press C-c C-k (a SLIME / Swank > binding) in the buffer with the modified code. (Or press C-c C-c with > point inside the top-level form in question.)
> Another possibility -- which is open even if the app has been packaged > as a .jar / .war file -- is to switch to the appropriate namespace at > the REPL and evaluate the appropriate defn; or maybe stay in the user > namespace and use clojure.core/intern / alter-var-root / .bindRoot to > replace the root binding of the Var holding the function.
> Sincerely, > Michał
> -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your first post. > To unsubscribe from this group, send email to > clojure+unsubscribe@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en