blob: e3ad08a253159e8175416fe23cd154d19ac7a642 [file] [log] [blame] [view]
JModel Example
==============
The JModel example (`o.e.handly.examples.jmodel*`) demonstrates a Handly-based
model for the Java language along the lines of the JDT's Java model.
As one would expect from an example, the model is somewhat contrived.
In particular:
* Only classpath entries of kind `CPE_SOURCE`, with paths of length 1
are considered (i.e. only source folders that are direct children
of the project resource);
* Inclusion/exclusion filters are ignored -- everything is included;
* Only default output location is supported, with path of length 1;
* Initializers and local/anonymous types are not represented in the model.
Some of these constraints may be relaxed in the future (especially
based on community feedback).
Besides the core model and tests, the following UI parts, which are based on
the example model for Java, are provided:
* Example Java editor, with Handly-based reconciling and outline;
* Example Java navigator view (kindly contributed by Ondrej Ilcik, Codasip).
To try it out, launch runtime Eclipse and open the `JNavigator` view (in
the `Handly Examples` category). The view shows the elements of the underlying
example model for Java. You can navigate the structure of the projects in your
workspace down to types, methods, and fields in Java source files. Select
a Java file and edit it with the `Java Editor (Handly JModel Example)`.
See how changes to the inner structure of the source file are reflected
in both the JNavigator and the Outline view.
Please note that the UI functionality is necessarily very much contrived.
In particular, the example Java editor is based on a simple text editor
with no syntax coloring, content assist, or reporting problems as you type.
The goal has been to keep the example code comprehensible while demonstrating
the relevant Handly-related functionality such as reconciling and outline.
Similarly, the above-stated constraints of the example model are revealed
in earnest in the JNavigator view. Also, the view provides no actions for
manipulating the model -- you can use the standard Package Explorer for that --
but changes in the underlying model will, of course, be reflected in the view.
It is hoped that this example is sufficiently real-world despite
the inevitable simplifications vs. the full-fledged JDT implementation,
and will be useful to Handly adopters. Feedback is most welcome
and can be directed to the project's forum:
- <http://eclipse.org/forums/eclipse.handly>
or right to the developer mailing list:
- <https://dev.eclipse.org/mailman/listinfo/handly-dev>