Here are some of the more noteworthy things available in the Neon milestone build M7
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.
|Improved interactive performance and reduced memory consumption||This and earlier milestones contain a multitude of fixes to enhance interactive and startup performance of the Eclipse IDE, and to reduce overall memory consumption.|
A new Import Projects wizard is available via the File > Open Projects... menu and via the general
Import... command under General > Projects from Folder or Archive.
Compared to other ways to import or create projects, this wizard aims at being a universal wizard that, from a source directory or archive, can detect and configure various kinds of projects.
This wizard relies on an extensible set of strategies that look at the content of the import source to detect file types, project layout patterns, or even look into some files in order to deduct which folders should be turned into projects and how those should be configured. Configuration usually involves setting up project natures and preferences.
The import strategies are contributed via the new extension point
|Link widget background color can be styled via CSS||
You can now style the background color of the SWT Link widget. This is used in
the default dark theme provided by Eclipse.
|Themed scroll bar enabled for editors in dark theme||
It's now possible to replace the native scroll bar of a StyledText by a styled overlay. This is enabled
by default in the dark theme on Windows.
This feature can be disabled in the Windows dark theme by setting the
Note that it may be added through css to any theme (see
properties available for customization and a css example)
-- the user may always override the theme setting by using the
Caveats: We're aware that the themed scroll bar is not currently available for all elements (such as trees and tables), and some places where the scroll bar was invisible (such as compare editors) may now show a scroll bar. These will only be fixed for Eclipse 4.7.
|Advanced capabilities preferences are now displayed in place (no extra dialog)||
Previously, the entries in the Capabilities preference page were displayed in a list. If you wanted to edit them, you had to open an extra dialog.
Now you can directly enable or disable the capabilities from the preference page, as depicted in the following screenshot.
Since this dialog has API to prevent advanced editing, if the property ALLOW_ADVANCED is set to false, the original list is maintained and will be shown, which allows you to enable/disable only the main categories (not individual capabilities).
|Quick Access improvements||
Quick Access (Ctrl+3) is a small text field in the toolbar. You can use it to trigger any command in the Eclipse IDE.
You can now restrict the search to Views, Commands, etc. by typing the category name followed by a colon.
For example, to filter the list of all the views, start typing
A few usability bugs have been fixed: The tooltip shows the keyboard shortcut, the number of search results per category is independent of the size of the proposals window, and the list with previous choices already opens when you click the field with the mouse.
|Workspace name shown in window title by default||
The workspace name is now shown at the beginning of the window title by default.
The initial name is the name of the workspace directory.
This the name can be changed or cleared in Preferences > General > Workspace.
The Full Screen feature is now also available on Windows and Linux. You can toggle the mode via shortcut (Alt+F11) or menu (Window > Appearance > Toggle Full Screen).
When Full Screen is activated, you'll see a dialog which tells you how to turn it off again.
|Automatic Save of dirty editors||
Auto-save of dirty editors is now available in Eclipse. The autosave option is disabled by default.
A new autosave preference page (Preferences > General > Editors > Autosave) is available and allows to enable/disable the autosave and change the interval of autosave.
The countdown is reset on keyboard activity, mouse click, or when a popup is displayed (e.g. content assist, preference page, ...).
|Terminate and Relaunch from history||
A Terminate and Relaunch option is now available while launching from history.
The default setting is to launch without terminating previous launches. To enable automatic termination,
select the option "Terminate and Relaunch while launching from history" on
Preferences > Run/Debug > Launching.
The behavior not selected on the preference page can also be activated on-demand by holding the Shift key while launching the configuration from history.
Hint: You can still open the dialog to edit a launch configuration by holding the Ctrl key while selecting the configuration from history.
|Solaris builds are now 64-bit only||
The 32-bit builds of Solaris (both x86 and SPARC) have been discontinued as there is no 32-bit Java 8 JRE available on Solaris.
These builds are instead being replaced by the corresponding 64-bit builds. The 64-bit build for Solaris x86 is already available in M7 and the 64-bit SPARC build will be available soon.
|Grouping of referenced libraries in Project Explorer||
The Project Explorer view now groups referenced libraries in a new container node.
|Hiding empty library containers in Project Explorer||
You can now hide empty library containers in the Project Explorer view by selecting the new filter in its Customize View... dialog.
|Adding meta-annotations while creating a new Java annotation type||
You can now choose to add
|Create new fields from method parameters||
You can now assign all parameters of a method or constructor to new fields at once using the new Quick Assist (Ctrl+1):
|Search on multi-selections||
You can now select multiple elements in views like Package Explorer and Outline and then search for References, Declarations, Implementors, and Read/Write Access (where applicable):
You can even select results in the Search view and start a new search for those elements. To follow method call chains, you'd probably use Open Call Hierarchy, though.
|Enabled assertions for new JUnit launch configurations||
Assertions are now enabled by default for new JUnit launch configurations. You can disable this on Preferences > Java > JUnit page:
|Quick Fix to add @NonNull to local variable||
When a "potential null pointer access" problem is raised against a local variable,
the reason is not always obvious.
Perhaps null is assigned somewhere deep inside a complex control flow.
If annotation-based null analysis is enabled, a new Quick Fix is offered (Ctrl+1),
that adds a
While this may not produce correct code, it tells the compiler your intention to not
|New options in code formatter||
A few new options have been added in the formatter profile editor.
(1) In the new Parentheses tab, you can order the formatter to keep parentheses of various Java elements on separate lines, i.e. put a line break after the opening parenthesis and before the closing parenthesis. This can be done always, only when parentheses are not empty, or when their content is wrapped. There's also an option to preserve existing positions, if you want to manually manage parentheses positions on a case-by-case basis.
(2) In the Line Wrapping tab, you can set the wrapping policy for parameterized types.
(3) Also in the Line Wrapping tab, you can decide to wrap before or after operators in assignments and conditional expressions.
|Installing breakpoints from unrelated projects||
Multiple versions of the same Java type can be available in a workspace, and each version can
have breakpoints configured at different source locations. When debugging, JDT tries to
determine the "right" set of breakpoints to install in the target VM. This analysis
now uses Java project dependencies by default.
To always install all enabled breakpoints, you can disable the new option Preferences > Java > Debug > Do not install breakpoints from unrelated projects
Note that not all projects use explicit Java project dependencies. E.g. OSGi bundles typically use a dynamically computed classpath where project dependencies are computed by PDE.
|New Plug-in wizard does not create activator by default||By default, the new plug-in wizard does not suggest the creation of an activator class anymore. Functionality in activators can in most cases be replaced with other means (e.g. OSGi declarative services), and activators can slow down the startup of an application.|
|Multi-version support for API analysis builder||The API Analysis Builder now supports API baselines with multi-version bundles. While doing API analysis for a bundle for which multiple versions exist in the baseline, the comparisons are performed with the bundle in the baseline which best matches the development bundle that is being built.|
|DS Annotations Bundle-ActivationPolicy generation||
The Declarative Service Annotations support added with M6 can now be configured to generate the bundle header for lazy activation.
|Disable drag and drop for toolbars||
You can disable drag and drop of toolbars and tool components by tagging the corresponding model element with the
|Support for setting the help ID in Eclipse 4 application||
To enable help entries for menus, you can define an ID for the help system for your
|Different package for ISideEffect||
|ISideEffectFactory for composite ISideEffects||
You can use the
For example, all
ISWTObservableValue personFirstNameTextObservable = WidgetProperties.text(SWT.Modify) .observe(personFirstNameText); ISWTObservableValue personLastNameTextObservable = WidgetProperties.text(SWT.Modify) .observe(personLastNameText); ISideEffectFactory sideEffectFactory = WidgetSideEffects.createFactory(personFirstNameText); sideEffectFactory.create(person::getFirstName, personFirstNameText::setText); sideEffectFactory.create(personFirstNameTextObservable::getValue, person::setFirstName); sideEffectFactory.create(person::getLastName, personLastNameText::setText); sideEffectFactory.create(personLastNameTextObservable::getValue, person::setLastName);
|SWT device zoom||
SWT exposes the device zoom level at which it is currently operating via the system property
Note: This is a read-only value, so setting it on the command line doesn't make sense.
Furthermore, SWT doesn't use the deviceZoom when HighDPI support is disabled via
The above features are just the ones that are new since the previous milestone build. Summaries for earlier Neon milestone builds: