Eclipse Project Neon (4.6) M5 - New and Noteworthy

Here are some of the more noteworthy things available in the Neon milestone build M5 which is now available for download.
We also recommend to read the Tips and Tricks, either via Help > Tips and Tricks... or online for Platform, JDT, and PDE.

Platform
Directly start previously selected workspaces in the launcher The workspace selection dialog now allows you to start a previously selected workspace directly via a link. The path to the workspace is shortened. The full path is available if you hover over the link.

You can remove existing entries via the context menu.

Selecting the text editor for unassociated file types On the Preferences > General > Editors > File Association page, you can now define an editor selection strategy for unassociated file types. Three strategies are proposed out-of-the-box:
  • System Editor; if none: Text Editor (default) will open the system editor associated with the file, if available. If no system editor is associated with the given file, fall back to the Eclipse Text Editor
  • Text Editor will always open Eclipse's Text Editor on unassociated file types
  • Ask via pop-up will open the same dialog as using Open With > Other... on a file and let you choose which editor to use (inside or outside the IDE)

Keep in mind that in any case, it's possible to assign an editor for an unassociated file type either via this same preference page, or via the Open With > Other... context-menu on the file.

The implementation comes with a new extension-point org.eclipse.ui.ide.unknownEditorStrategy that allows external contributions of additional strategies.

Note: Problems were found with the Ask via pop-up strategy. We'll fix them in M6.

Improvements in the Mac default theme The look of the toolbar in the Mac default theme was adjusted to align with other Mac applications.

Old styling:

New toolbar styling:

Perspective names hidden by default To save space in the toolbar, the perspective switcher has been changed to show only the icons of perspectives by default. You can show the text again via the context menu.

New default:

Old default:

'date' template variable with custom format The 'date' variable, supported in editor and code templates, now allows you to specify which format to use when inserting the current date (or time).

Example: ${d:date('EEEE dd MM yyyy HH:mm:ss', 'fr_CH')}

JDT
Content Assist highlights matched characters The Content Assist popup now highlights the matched characters in proposals.

Substring code completion Content Assist now supports substring patterns. Enter any part of the desired proposal's text, and Content Assist will find it! For example, completing on selection proposes all results containing selection as a substring.

Popup with proposals like addSelectionListener(..), getSelection(), etc.

This feature can be disabled using the Show substring matches option on the Java > Editor > Content Assist preference page.

Problem decorator for Info severity A new decorator () has been added to indicate information severity problems detected by the Eclipse Java Compiler.

Quick Fix to configure problem severity You can now configure the severity of a compiler problem by invoking the new Quick Fix (Ctrl+1) which opens the Java > Compiler > Errors/Warnings preference page and highlights the configurable problem.

The Quick Fix icon may look familiar to you. In older Eclipse versions, this was a toolbar button in enriched hovers (i.e., you had to press F2 or move the mouse into the hover to see it).
Multiple sets of null annotations You can now configure annotation-based null analysis to use multiple sets of annotation types. This is relevant if your project uses 3rd party libraries that already use null annotations in their API, where the annotations used in a library may be different from those used in the current project.

Please open the dialog for configuring null annotation types from the project properties at Java Compiler > Errors/Warnings > Null analysis:

In the dialog that opens, only one primary set of annotations is supported — these are the annotations which JDT actively uses in Quick Fixes, error messages etc. These annotations must be present on the project's build path.

You can now add an arbitrary number of secondary null annotation types, to be evaluated when reading class files external to the project. Within the configuration dialog, Content Assist is offered based on accessible annotation types, but for secondary annotation types unresolved names will be tolerated. This avoids the need to bloat the build path with transitive compile-time dependencies.

PDE
Product launch prompts for unsaved features In case you have an unsaved feature included in your product configuration file, PDE will prompt you to save it before the launch.

Platform Developers
API to get the structured selection The org.eclipse.ui.handlers.HandlerUtil#getCurrentStructuredSelection(event) API has been added to allow easy access to an IStructuredSelection from a handler. Compared to HandlerUtil#getCurrentSelection(event) this removes the need to cast and check for null.
ListenerList generified org.eclipse.core.runtime.ListenerList has been generified and now implements Iterable<E>.

Due to Java type system constraints, ListenerList#getListeners() still returns Object[]. Clients should not only add type arguments to the ListenerList, but also convert usages of #getListeners() to an enhanced for loop, thereby taking advantage of the type-safe #iterator().

Old:

ListenerList fInputChangeListeners = new ListenerList();
...
Object[] listeners= fInputChangeListeners.getListeners();
for (int i= 0; i < listeners.length; i++) {
	((IInputChangedListener) listeners[i]).inputChanged(fInput);
}

New:

ListenerList<IInputChangedListener> fInputChangeListeners = new ListenerList<>();
...
for (IInputChangedListener listener : fInputChangeListeners) {
	listener.inputChanged(fInput);
}
SWT Control and Custom Control Examples support setting the text direction Options to specify the text direction were added to the SWT Control and Custom Control Examples. Support for the AUTO text direction for SWT widgets was introduced in the Eclipse 4.6 M4 milestone.

The above features are just the ones that are new since the previous milestone build. Summaries for earlier Neon milestone builds: