On Sun, Sep 12, 2010 at 4:22 PM, Brian Marick wrote:
> In my test framework, Midje, http://github.com/marick/Midje, a test written
> in the most heavily syntactically-sugared form might look like this:
>
> (facts
> (complicated-function ...some-integer...) => 5
> (provided
> (simple-function ...some-integer...) => 2
> (other-function ...some-integer...) => 3
> ...some-integer... => even?)
> ...)
>
> A test failure could be associated with any point where there's an arrow.
> Because (fact) is a macro, the straightforward way of getting the line number
> gets the line number of the very beginning of the form. Is there a clever way
> to get the line number of the arrows? (There's no hook into the reader, is
> there?)
>
> What I'm going to do unless you save me is two things:
>
> 1) the failure messages will tell you the failure is associated with, say,
> the 3rd arrow.
>
> 2) When emacs sends the form down to the interpreter, I'll have it annotate
> it with the correct line numbers. That way, a simple keyboard gesture will
> take me to the failing line.
>
> Better ideas for fallbacks?
In your macro, try printing out your input forms with *print-meta* on.
(defmacro print-meta [& args]
(binding [*print-meta* true]
(prn args)))
I think you'll find some useful data in there. There won't be line
numbers on your arrows, but will be on the preceding forms.
--Chouser
http://joyofclojure.com/
--
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+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en