What’s new and noteworthy in Eclipse Photon M6?
Eclipse Photon is speeding closer and closer to general availability. What does Photon M6 have in store for developers? Lots of improved coloring for the dark theme, it seems!
Eclipse Photon has been racing along the release schedule at the speed of light. Earlier this year, Eclipse Photon M5 arrived with a number of impressive new features. Now, Photon M6 follows the trend and has shown up earlier than planned with even more features and functionality. Things are looking good for the future of Eclipse Photon.
What does Eclipse have in store for developers in this latest milestone release? Photon is due in June; the big focus this time has been improved usability and performance for the Eclipse platform. Head on over to the changelog for the full accounting of everything that belongs in M6.
Compared to last time, there are an awful lot of changes in this release. Developers interested in modifying the project natures can do so with the Project Properties dialogue, which now features a page to add or remove natures on a project. However, modifying natures is an advanced operation and can lead to some inconsistencies for cases that are not properly handled.
You can make your text editor more aesthetically pleasing with the new configuration to change the colors and fonts for the range indicator color. The default dark theme for Eclipse also includes styling for the text editor’s range indicator as well. In general, there are improved text operation icons, improved popup dialogues, and improved text color for the dark theme. This makes it easier to read things in the dark theme.
This update also makes it possible for developers to build projects in parallel. The workspace preference page allows developers to build independent projects in parallel under some safe circumstances. In those cases, the maximum number of jobs and threads that can run build in parallel is regulated by this preference. Using a value of 1 will show that build won’t be parallelized, keeping the legacy behavior. In any case, the optimal value depends on your machine and workspace project specifics. Eclipse recommends that you try relatively low values (like 4) to start; this should save time without risking CPU overload.
More changes in the JDT for Photon M6!
- There is now additional support for running Java annotation processors on test sources.
- Photon M6 also offers @NonNullByDefault
- The “generate…” dialogs for the Java tools have been adapted to use verbs instead of OK.
- Improved coloring for links in the code element information as well as the JDT’s Quick Outline in the dark theme
- Developers can also sort library entries alphabetically in the Package Explorer. (The default for this preference is OFF, though.)
- The formatter can now align names and/or descriptions in the Javadoc tags.
As for the PDE, there are a few changes here and there. In Photon M6, the sources folders in plug-in projects whose project name ends with “.test” or “.tests”, or contains “.tests.”, are now marked to contain test sources when using Plug-in Tools > Update Classpath…, so the related filtering options in various tools can be used. The exact name matching rule can be configured as regular expression in Preference > Plug-In Development in the group Test plug-in detection. Setting it to an empty value disables this mechanism.
There is also a new command to update IU versions from repositories on the right-click context menu with the
.target file source editors. This updates the version attribute of all unites to the newest available version.
And, of course, there’s improved coloring of the target file editor in the dark theme. Legibility is important!
Eclipse Photon M6 has a new API at org.eclipse.e4.core.di. This package has a number of useful things, including:
- InjectionException: When using the ContextInjectionFactory to manually trigger dependency injection, all methods eventually throw an InjectionException. By making org.eclipse.e4.core.di API, this InjectionException becomes API, too and can therefore be processed properly.
- IInjector: To manually trigger dependency injection on a more fine-grained level, e.g. without using the IEclipseContext as an ObjectSupplier.
- InjectorFactory: To create an instance of IInjector.
Additionally, a new API,
getAverageCharacterWidth, has been added in
FontMetrics. There’s also a localization option for dare and time formatting. And finally, the
IWorkspaceDescription has received a new API method
setMaxConcurrentBuilds(int n) which allows to configure throttling of how many threads/jobs will be used in case workspace can build independent projects in parallel.
These features are just the ones that are new since the previous milestone build (M5).