Skip to content

NonJavaLanguages

Evgeny Mandrikov edited this page Jan 12, 2019 · 2 revisions

This page deals with the issues in supporting JVM languages in Eclipse that are not Java.

Groovy

  • The IDE tooling for Groovy is quite advanced
  • Mixed Java and Groovy projects are possible
  • Split isn't by package fragment root, but by individual class (a package can contain Groovy and Java code at the same time)
  • There is no Groovy compiler, so I assume groovy asks JDT to compile the code
  • Groovy tooling depends on JDT (so a Groovy project is a Java project)
  • Groovy types appear as part of the Java Model
  • Groovy Compilation Units (source files) do have their own type, but methods, classes, etc re-use JDT classes
  • Source and line number information seems to be available

AspectJ:

  • Exposes native AspectJ concepts (Aspects)

Outstanding issues

What is the correct way to present packages where they contain Java and non Java entities? For cases like Groovy you could argue that a groovy defined class should show up in the class counters, but not for language like Jython (packages might also need to be presented as 'namespaces' in some languages). To make things a bit more interesting, Groovy classes end up compiled in the same output folder as the Java classes, so would show up in a straight java view (which may not be wanted). I think the best solution would be to try and split the languages out at the highest level instead of trying to show them in the same view.

How do we link a session to one or more languages? Right now a session is just a wrap-up of class locations and execution data. There is nothing to mention what language (or languages) were used to create those class files. We could derive the languages from any linked projects, but i think we should probably store something on the session (to possibly support loading sessions that are not linked to any projects)