Hi,

As one of the core developers of an Eclipse plug-in for clojure (clojuredev
: http://code.google.com/p/clojure-dev/ ), I will try answering your
questions, in the less possible biaised way ;-) :

2009/3/30 Frank Gerhardt <frank.gerha...@gmail.com>

>
> Hi *,
>
> I just came back from EclipseCON 2009. There was a short talk about
> Clojure (that I unfortunaltely missed) but the slides are available
> here http://www.eclipsecon.org/2009/sessions?id=630, click though to
> gpublication.
>
> Interesting, two questions:
>
> 1. What is the state of the Eclipse plug-in? Does it offer an Emacs-
> like REPL?


As for its state, I would say it' usable, and decently well integrated with
java coding. Reports have been made by users using it productively on a
daily basis.

Among the existing functionalities :
 * integrates with a java project, adapts to the classpath defined by the
classic eclipse ways of defining jars, classes folders, ... dependencies. In
this respect, adding a clojure "feature" to your project is no more
difficult than adding clojure.jar as another dependency to your project, and
click "enable clojure support" in the context menu of the project.
 * editing support:
   * syntax coloring (a major new version will soon be released concerning
this, but there is already basic support right now),
   * top level s-expressions manipulation (go to next, go to previous, send
to REPL, select/highlight the top level s-expression),
   * other commands for interaction with a running REPL (compile currently
edited file, load currently edited file)
   * code completion: completion on clojure symbols and java instance and
class method names (dynamic: requires to first launch a REPL for the
project)
 * (auto)build support:
   * clojure files are automatically compiled whenever saved (if eclipse
"auto-build" mode is on), or on demand (if eclipse "auto-build" mode is
off). This is particularly useful if you have class generation : seamless
integration with java classes in your project that may depend classes
generated with clojure, and facilitates the launch of the java project by
not requiring as a manual prerequisite the compilation of the classes.
 * code browsing : clojuredev provides a so called "namespace browser" which
displays all namespaces and all symbols (sorted by namespace in a
hierarchical tree) of the currently shown REPL view. Docstrings of the
symbols are available as tooltips on the symbols, and code browsing is
available via double click on a symbol. Clojuredev is able to open source
code even on jar or external classes folders dependencies. If the source
code for a jar is provided as a "Source folder/archive", this will work too.

To be complete, here are the areas where clojuredev currently does not
provide help to the user :
 * code formatting : does not yet indent the code correctly when you hit
return, and does not yet implement the "format" command to globally reformat
a source file
 * configuration : certain features are not user configurable yet, and
currently suit first the need of clojuredev itself : clojure code is
compiled before java code. But it's coming, and here as everywhere else,
user contributions in terms of ideas/requirements/patches are very welcome !
:-)
 * debugging : not very well tested. But what' sure is that you have
out-of-the-box with eclipse the same debugging level you would have with
plain old java projects.
 * code completion : still a little bit experimental concerning the
completion on java methods (can be very long to get a list to the user,
since all methods on all types available in the classpath are used as the
initial list of candidate methods). We intend to improve this soon, though.
 * code browsing : it is currently possible to open the source code for any
symbol from the "namespace browser", but not yet from a symbol in the
editor.
 * and certainly many more that I don't (or won't ;-) remember now.



> 2. What is the status of the OSGi compatibility? I saw some
> discussions in the group archive but my question is where is this
> today?


If will answer on a subset of the subject, that is the subset of Eclipse's
OSGi use. For a general OSGi answer, I know of Gaetan Morice (the guy who
did the speech at EclipseCon) that have worked on the subject, too.

Clojuredev is currently written mainly in java, but that may soon change,
because of 2 factors:
1/ the problem of providing clojure as an independent eclipse plugin/bundle
seems to have been solved,
2/ and clojuredev is now mature enough so that we can "eat our own dogfood".

1/ has been solved by using a well known Eclipse extension to OSGi: "plugin
buddies". The clojure plugin itself registers with an Eclipse buddy of type
"registered". Plugins that want to use the clojure plugin must declare that
they are buddies of the Clojure plugin. And voila! Now the clojure plugin
can search classes not only in its own classloader, but also on the
classloaders of the plugins having declaratively been registered as buddies.

HTH,

-- 
Laurent

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