On Nov 3, 10:52 pm, Chas Emerick <cemer...@snowtide.com> wrote:
> Joost,
>
> This looks great.  I think I might have been vaguely aware of 
> clojure-refactoring before, but I'm glad to have been reminded of it.
>
> Q: how much of it is Emacs/SLIME specific?
>
> I ask because I'd love to see the advertised functionality rolled into 
> Counterclockwise (and any other Clojure tooling out there).  Such common 
> tooling libraries were contemplated here, FWIW:
>
> http://dev.clojure.org/display/design/IDE+tooling+backend
>
> …though there's no refactoring section there (yet, *hint* ;-)

I was sort of expecting this question :)

Much of the code is actually editor-agnostic; the real refactoring
code is all pure clojure and implements its own parser/generator. The
main API requires an interface that can recognize clojure expressions/
def forms and pass them as strings.

The actual communication with the editor is done over the SLIME
protocol, but aside from the global rename refactoring, which needs to
touch files all over a project, it doesn't seem to be too complex
(mostly because it's sending the code as strings instead of trying to
be clever with s-expressions).

As far as I can see, it's definitely possible to split out the editor-
agnostic parts of the code into its own package, and I expect that
would be useful for more than just refactoring tools too; automated
code formatting would be another possible use for one.

I'd be willing to put some work into making the code more accessible
to other editors/programs, but I'm not personally motivated to develop
and maintain any bindings for editors other than Emacs right now. I
don't have the time to learn how to use them or to test any issues
that may turn up on those systems.

In other words; somebody else has to be willing to take up the work of
binding the basic refactoring code to their editor of choice (and
maintain the bindings!) but if someone is willing to do that, I'm
willing to make their usage of the clojure-refactoring code as
painless as reasonable.

Joost.

By the way; any patches on the refactoring code are welcome; it's not
perfect, yet. - *hint* ;-)

-- 
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

Reply via email to