Upcoming Elements features and documentation

Here’s a list of features for the upcoming release you might be interested in:

  • Updated Documentation, a work in progress but already a huge improvement over the old wiki documentation.
  • Shared Projects: Share code easily between .net, java and cocoa with a shared project, no need to use links to add files between the different projects, just reference the shared project and it wil become part of your project. Files in a shared projects also have a conditional property, that you can use to make a file only be compiled on some platforms/projects with conditionals.
  • EUnit: Cross platform unit testing
  • Operator support on Cocoa and Java
  • Overloading methods by their type in Cocoa
  • Lazy properties; properties that are initialized once but only when you first access them.
  • Extract method refactoring
  • managed structs on Cocoa: Structs that can hold strong types.
  • not nullable types, types that are not allowed to have the null/nil value Oxy C#
  • Generic type aliases
  • Lots of improvements for the Fire IDE.
  • Much more …

And of course work for the release after that has already been started. If there’s any feature you’d like to see that is currently missing, make sure to post a feature request.

2 Likes

Carlo,
This is very good news. :smiley:
Thanks,
Best regards,
Jose A.

1 Like

The new Documentation looks fabulous! Well done!

Can’t wait to try out Shared Projects as well. Awesome work!

3 Likes

Yes the documentation looks really good.

Are there any plans to promote lazy to a full keyword in oxygene ?

2 Likes

Yeah. The release should have this as a flag too on Oxygene. c# will keeps using the aspect.

Wow.
As always, made from the best. :wink:
For this feature list I am missing the right words … except , thank you .

I’ve two little wishes for the new Docu .

A “recently added/updated page” would be nice , to quicker find new (beta) features and modified articles.

As 2nd, would you like to add a link to the “Elements community examples” to the tutorials section? So this repo should become a bit more popular and I get hopefully some more Android starter projects for me . :slight_smile:

It would be nice to have an easy printable version of the documentation in one file like pdf or chm.

1 Like

@arturredzko: I considered that. If I put everything in a single page ( http://docs.elementscompiler.com/index_all.html ) it ends up being more than 1600 pages when printed. That said we do plan on an offline readable version.

1 Like

Yes, it should be shorter if you e.g. remove detailed API doc for Sugar and Cirrus.

1 Like

@jensw_2000: Agree re updated but that won’t make much sense till it’s “done”.

Community samples: good idea.

@arturredzko: like http://docs.elementscompiler.com/index.pdf ? (Work in progress )

1 Like

Yes, great. Thank you.

Carlo,
It might be interesting to include a resources shared folder on a shared project to be included in the compilation and could be recovered with a magical function regardless of platform, so they could include images, text or other shared resources among all projects easily.
Best regards,
Jose A.

Carlo,
In the documentation, each command, function, types or feature of each language supported by Elements should CLEARLY indicate whether it is available on all platforms (Echoes, Cooper, Nougat) and languages (Oxygene , C#, Swift) or indicate any observations of use for a particular platform or language.

For example, at the topic foot include:
partial
Platforms: .NET , Java , Cocoa
Languages: Oxygene, C#, Swift (__partial)

Best regards,
Jose A.

That’s the plan, yes. We’re currently in the process of thoroughly review if all the docs.

New feature:
When a class inherits from an interface would be very interesting that the ‘Complete Class’ option will create the definition of the methods in the class and in implementation.
Thanks,
Best regards,
Jose A.

You mean like the exiting “Implement missing interface methods” already does? :wink:

1 Like

Marc,
Glub … hahaha … I had to place the cursor over the name of the interface, not on the class name. :blush:
Thanks,
Best regards,
Jose A.