| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta http-equiv="Content-Language" content="en-us" /> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| <link rel="stylesheet" href="style.css" type="text/css" title="main" media="screen" /> |
| <title>Eclipse Project Neon (4.6) M7 News</title> |
| </head> |
| <body> |
| <h1>Eclipse Project Neon (4.6) M7 - New and Noteworthy</h1> |
| <p>Here are some of the more noteworthy things available in the Neon milestone build M7 |
| which is now available for <a href="http://download.eclipse.org/eclipse/downloads/#4.6_Stable_Builds" target="_top">download</a>. |
| <br/> |
| We also recommend to read the Tips and Tricks, either via <b>Help > Tips and Tricks...</b> or online for |
| <a href="http://help.eclipse.org/topic/org.eclipse.platform.doc.user/tips/platform_tips.html">Platform</a>, |
| <a href="http://help.eclipse.org/topic/org.eclipse.jdt.doc.user/tips/jdt_tips.html">JDT</a>, and |
| <a href="http://help.eclipse.org/topic/org.eclipse.pde.doc.user/tips/pde_tips.htm">PDE</a>. |
| </p> |
| |
| <ul> |
| <li><a href="#Platform">Platform</a></li> |
| <li><a href="#JDT">JDT</a></li> |
| <li><a href="#PDE">PDE</a></li> |
| <li><a href="#Platform-Dev">Platform Developers</a></li> |
| </ul> |
| |
| <table class="news"> |
| <colgroup> |
| <col class="title" /> |
| <col /> |
| </colgroup> |
| |
| <tr> |
| <td colspan="2" class="section" id="Platform">Platform</td> |
| </tr> |
| |
| <tr id="improved-performance-reduced-memory"> |
| <td class="title">Improved interactive performance and reduced memory consumption</td> |
| <td class="content"> |
| 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. |
| </td> |
| </tr> |
| |
| <tr id="import-projects"> |
| <td class="title">Import projects</td> |
| <td class="content"> |
| A new <b>Import Projects</b> wizard is available via the <b>File > Open Projects...</b> menu and via the general |
| <b>Import...</b> command under <b>General > Projects from Folder or Archive</b>. |
| <p> |
| 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. |
| </p> |
| <p> |
| <img src="images/import-projects.png" alt="" /> |
| </p> |
| <p> |
| 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. |
| </p> |
| <p> |
| The import strategies are contributed via the new extension point <code>org.eclipse.ui.ide.projectConfigurator</code>, so that other IDE components |
| can contribute detection and configuration specific to the technology they're supporting. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="dark-theme-styled-links"> |
| <td class="title">Link widget background color can be styled via CSS</td> |
| <td class="content"> |
| You can now style the background color of the SWT Link widget. This is used in |
| the default dark theme provided by Eclipse. |
| <p> |
| <img src="images/themed-links.png" alt="" /> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="dark-theme-styled-text-scrollbar"> |
| <td class="title">Themed scroll bar enabled for editors in dark theme</td> |
| <td class="content"> |
| 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. |
| <p> |
| <img src="images/themed-scroll-bar.png" alt="" /> |
| </p> |
| <p> |
| This feature can be disabled in the Windows dark theme by setting the <code>swt.enable.themedScrollBar</code> |
| VM argument to <code>false</code> (or enabled on the dark theme for other platforms by setting it to true) |
| in eclipse.ini or on the command line after <code>-vmargs</code>: |
| </p> |
| <p> |
| <b>-Dswt.enable.themedScrollBar=false</b> |
| </p> |
| <p> |
| Note that it may be added through css to any theme (see |
| <a href="http://git.eclipse.org/c/platform/eclipse.platform.ui.git/diff/bundles/org.eclipse.e4.ui.css.swt/plugin.xml?id=742d2e990765d5bbf9be61ff3f047105f8102bd3"> |
| properties available for customization</a> and a <a href="http://git.eclipse.org/c/platform/eclipse.platform.ui.git/diff/bundles/org.eclipse.ui.themes/css/e4-dark_win.css?id=742d2e990765d5bbf9be61ff3f047105f8102bd3">css example</a>) |
| -- the user may always override the theme setting by using the <code>swt.enable.themedScrollBar</code> VM argument. |
| </p> |
| <p> |
| <b>Caveats</b>: 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. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="simplified-capabilities-preference-page"> |
| <td class="title">Advanced capabilities preferences are now displayed in place (no extra dialog) </td> |
| <td class="content"> |
| Previously, the entries in the <b>Capabilities</b> 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. |
| <p> |
| <img src="images/simplified-capabilities-page.png" alt="" /> |
| </p> |
| <p> |
| 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). |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="quick-access-improvements"> |
| <td class="title">Quick Access improvements</td> |
| <td class="content"> |
| <b>Quick Access</b> (<b>Ctrl+3</b>) is a small text field in the toolbar. You can use it to trigger any command in the Eclipse IDE. |
| <p><img src="images/eclipse-quick-access-improved-search.png" alt="" /></p> |
| <p>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 <code>"Views: "</code> in the search-box.</p> |
| <p> |
| 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. |
| </p> |
| </td> |
| </tr> |
| <tr id="workspace-name-in-window-title"> |
| <td class="title">Workspace name shown in window title by default</td> |
| <td class="content"> |
| 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. |
| <p> |
| This the name can be changed or cleared in <b>Preferences > General > Workspace</b>. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="full-screen-feature"> |
| <td class="title">Full Screen</td> |
| <td class="content"> |
| The <b>Full Screen</b> feature is now also available on Windows and Linux. You can toggle the mode via shortcut (<b>Alt+F11</b>) or menu (<b>Window > Appearance > Toggle Full Screen</b>). |
| <p>When Full Screen is activated, you'll see a dialog which tells you how to turn it off again.</p> |
| </td> |
| </tr> |
| |
| <tr id="autosave-dirty-editors"> |
| <td class="title">Automatic Save of dirty editors</td> |
| <td class="content"> |
| Auto-save of dirty editors is now available in Eclipse. The autosave option is <b>disabled by default</b>. |
| A new autosave preference page (<b>Preferences > General > Editors > Autosave</b>) 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, ...). |
| <p><img src="images/autosave-preference-page.png" alt="" /></p> |
| </td> |
| </tr> |
| |
| <tr id="terminate-relaunch-history"> |
| <td class="title">Terminate and Relaunch from history</td> |
| <td class="content"> |
| A <b>Terminate and Relaunch</b> 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 |
| <b>Preferences > Run/Debug > Launching</b>. |
| |
| <p> |
| The behavior not selected on the preference page can also be activated on-demand by holding |
| the <b>Shift</b> key while launching the configuration from history. |
| </p> |
| <p><img src="images/launch-preference-history-relaunch.png" alt="" /></p> |
| <p> |
| Hint: You can still open the dialog to <b>edit a launch configuration</b> by holding |
| the <b>Ctrl</b> key while selecting the configuration from history. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="solaris-64-bit-builds"> |
| <td class="title">Solaris builds are now 64-bit only</td> |
| <td class="content"> |
| 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. |
| <p> 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. </p> |
| </td> |
| </tr> |
| |
| <tr> |
| <td colspan="2" class="section" id="JDT">JDT</td> |
| </tr> |
| |
| <tr id="show-referenced-libraries-node-project-explorer"> |
| <td class="title">Grouping of referenced libraries in Project Explorer</td> |
| <td class="content"> |
| The Project Explorer view now groups referenced libraries in a new container node. |
| <p> |
| <img src="images/show-referenced-libraries-node-project-explorer.png" alt="View menu > Show 'Referenced Libraries' node" /> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="hide-empty-library-containers-project-explorer"> |
| <td class="title">Hiding empty library containers in Project Explorer</td> |
| <td class="content"> |
| You can now hide empty library containers in the Project Explorer view by selecting the new filter in its <b>Customize View...</b> dialog. |
| <p> |
| <img src="images/hide-empty-library-containers-project-explorer.png" alt="" /> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="add-meta-annotations"> |
| <td class="title">Adding meta-annotations while creating a new Java annotation type</td> |
| <td class="content"> |
| You can now choose to add <code>@Retention</code>, <code>@Target</code> and <code>@Documented</code> meta-annotations along with their applicable values while creating a new Java annotation type. |
| <p> |
| <img src="images/add-meta-annotations.png" alt="" /> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="assign-all-params-to-new-fields"> |
| <td class="title">Create new fields from method parameters</td> |
| <td class="content"> |
| You can now assign all parameters of a method or constructor to new fields at once using the new <b>Quick Assist</b> (<b>Ctrl+1</b>): |
| <p> |
| <img src="images/assign-all-params-to-new-fields.png" alt="Assign all parameters to new fields" /> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="search-on-multi-selections"> |
| <td class="title">Search on multi-selections</td> |
| <td class="content"> |
| 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): |
| <p><img src="images/search-on-multi-selections.png" alt="" /></p> |
| 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 <b>Open Call Hierarchy</b>, though. |
| </td> |
| </tr> |
| |
| <tr id="enabled-junit-assertions"> |
| <td class="title">Enabled assertions for new JUnit launch configurations</td> |
| <td class="content"> |
| Assertions are now enabled by default for new JUnit launch configurations. You can disable this on <b>Preferences > Java > JUnit</b> page: |
| <p> |
| <img src="images/enabled-junit-assertions.png" alt="" /> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="add-nonnull"> |
| <td class="title">Quick Fix to add @NonNull to local variable</td> |
| <td class="content"> |
| 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 <b>Quick Fix</b> is offered (<b>Ctrl+1</b>), |
| that adds a <code>@NonNull</code> annotation to the local variable. |
| <p> |
| <img src="images/add-nonnull1.png" alt="" /> |
| </p> |
| <p> |
| While this may not produce correct code, it tells the compiler your intention to not |
| allow <code>null</code> in this variable, and subsequently the compiler will answer |
| with more helpful warnings or errors pointing to the root problem. |
| In the given example, it will alert you of subtleties about using unconstrained |
| type variables (see also <a href="https://www.eclipse.org/eclipse/news/4.6/M6/#null-analysis-generics">Improved null analysis with generics (M6)</a>): |
| </p> |
| <p> |
| <img src="images/add-nonnull2.png" alt="" /> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="formatter"> |
| <td class="title">New options in code formatter</td> |
| <td class="content"> |
| A few new options have been added in the formatter profile editor. |
| <p><b>(1)</b> In the new <b>Parentheses</b> tab, you can order the formatter to <b>keep |
| parentheses</b> of various Java elements <b>on separate lines</b>, 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 <b>preserve existing |
| positions</b>, if you want to manually manage parentheses positions on a case-by-case basis.</p> |
| <p><img src="images/formatter-parentheses.png" alt="" /></p> |
| <p><b>(2)</b> In the <b>Line Wrapping</b> tab, you can set the wrapping policy for |
| <b>parameterized types</b>.</p> |
| <p><img src="images/formatter-wrap-parameterized.png" alt="" /></p> |
| <p><b>(3)</b> Also in the <b>Line Wrapping</b> tab, you can decide to wrap <b>before |
| or after operators</b> in <b>assignments</b> and <b>conditional expressions</b>.</p> |
| <p><img src="images/formatter-wrap-before-assignment.png" alt="" /></p> |
| <p><img src="images/formatter-wrap-before-conditional.png" alt="" /></p> |
| </td> |
| </tr> |
| |
| <tr id="breakpoint-unrelated-project"> |
| <td class="title">Installing breakpoints from unrelated projects</td> |
| <td class="content"> |
| 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. |
| <p> |
| To always install all enabled breakpoints, you can disable the new option |
| <b>Preferences > Java > Debug > Do not install breakpoints from unrelated projects</b> |
| </p> |
| <p> |
| <img src="images/breakpoint-unrelated-project.png" alt="" /> |
| </p> |
| <p> |
| 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. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td colspan="2" class="section" id="PDE">PDE</td> |
| </tr> |
| |
| <tr id="plugin-wizard-activator-creation"> |
| <td class="title">New Plug-in wizard does not create activator by default</td> |
| <td class="content"> |
| 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. |
| </td> |
| </tr> |
| |
| <tr id="multi-version-baseline-support"> |
| <td class="title">Multi-version support for API analysis builder</td> |
| <td class="content"> |
| 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. |
| </td> |
| </tr> |
| |
| <tr id="ds-annotation-bapl"> |
| <td class="title">DS Annotations Bundle-ActivationPolicy generation</td> |
| <td class="content"> |
| The Declarative Service Annotations support added with M6 can now be configured to generate the bundle header for lazy activation. |
| The <code>Bundle-ActivationPolicy: lazy</code> header is necessary when starting an Eclipse application that uses the Equinox launcher. |
| Otherwise, the bundle that provides the declarative service will not be started automatically and therefore the service won't be available. |
| In a plain OSGi environment, this header is not necessary and might not have any effect. Therefore, it can be configured via preferences |
| whether the header should be generated or not. |
| <p> |
| <img src="images/ds-annotations.png" alt="" /> |
| </p> |
| </td> |
| </tr> |
| |
| |
| <tr> |
| <td colspan="2" class="section" id="Platform-Dev">Platform Developers</td> |
| </tr> |
| |
| <tr id="disable-toolbar-dnd"> |
| <td class="title">Disable drag and drop for toolbars</td> |
| <td class="content"> |
| You can disable drag and drop of toolbars and tool components by tagging the corresponding model element with the <code>'NoMove'</code> tag. |
| <p> |
| <img src="images/toolbar-disable-drag-and-drop-with-NoMove-tag.png" alt=""/> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="e4-help-support"> |
| <td class="title">Support for setting the help ID in Eclipse 4 application</td> |
| <td class="content"> |
| To enable help entries for menus, you can define an ID for the help system for your <code>MCommand</code>, your <code>MHandledMenuItem</code> or your <code>MDirectMenuItem</code> model elements by adding an entry to the <code>Persisted State</code> Map with the key <code>'HelpContextId'</code> and your help context id as the value. |
| <p> |
| <img src="images/e4-help-support.png" alt=""/> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="sideeffect-package"> |
| <td class="title">Different package for ISideEffect</td> |
| <td class="content"> |
| The <code>ISideEffect</code> and <code>ISideEffectFactory</code> interfaces and the <code>CompositeSideEffect</code> class |
| have been moved to a new package <code>org.eclipse.core.databinding.observable.sideeffect</code>. |
| </td> |
| </tr> |
| |
| <tr id="sideeffect-factory"> |
| <td class="title">ISideEffectFactory for composite ISideEffects</td> |
| <td class="content"> |
| You can use the <code>ISideEffectFactory</code> to create several <code>ISideEffect</code> instances that share the same life cycle. |
| <p> |
| For example, all <code>ISideEffect</code> instances that are created by the <code>ISideEffectFactory</code> obtained from the <code>WidgetSideEffects#createFactory(Widget disposableWidget)</code> method are automatically disposed once the corresponding widget is disposed. |
| </p> |
| <p>Example:</p> |
| <pre> |
| 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); |
| </pre> |
| </td> |
| </tr> |
| |
| <tr id="swt-device-zoom"> |
| <td class="title">SWT device zoom</td> |
| <td class="content"> |
| SWT exposes the device zoom level at which it is currently operating via the system property |
| <p><code>"org.eclipse.swt.internal.deviceZoom"</code></p> |
| <p>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 <code>-Dswt.enable.autoScale=false</code></p> |
| </td> |
| </tr> |
| |
| |
| <tr> |
| <td colspan="2"/> |
| </tr> |
| </table> |
| |
| <p>The above features are just the ones that are new since the previous milestone |
| build. Summaries for earlier Neon milestone builds:</p> |
| <ul> |
| <li><a href="https://www.eclipse.org/eclipse/news/4.6/M6/">News for Eclipse Neon milestone build M6</a></li> |
| <li><a href="https://www.eclipse.org/eclipse/news/4.6/M5/">News for Eclipse Neon milestone build M5</a></li> |
| <li><a href="https://www.eclipse.org/eclipse/news/4.6/M4/">News for Eclipse Neon milestone build M4</a></li> |
| <li><a href="https://www.eclipse.org/eclipse/news/4.6/M3/">News for Eclipse Neon milestone build M3</a></li> |
| <li><a href="https://www.eclipse.org/eclipse/news/4.6/M2/">News for Eclipse Neon milestone build M2</a></li> |
| <li><a href="https://www.eclipse.org/eclipse/news/4.6/M1/">News for Eclipse Neon milestone build M1</a></li> |
| </ul> |
| |
| </body> |
| </html> |